spi進(jìn)階2之write功能練習(xí)參考代碼_第1頁
spi進(jìn)階2之write功能練習(xí)參考代碼_第2頁
spi進(jìn)階2之write功能練習(xí)參考代碼_第3頁
spi進(jìn)階2之write功能練習(xí)參考代碼_第4頁
spi進(jìn)階2之write功能練習(xí)參考代碼_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、明德?lián)P科技教育SPI 進(jìn)階 2 之 WRITE 功能練習(xí)參考代碼官網(wǎng):淘寶:群咨詢1目錄at93c46_write 模塊3test_at93c46_write 模塊72明德?lián)P科技公司主要是以 FPGA 為,專業(yè)從事 FPGA 配套開發(fā)板、FPGA培訓(xùn)班或其他培訓(xùn)、研發(fā) FPGA 技術(shù)開發(fā)、承接 FPGA 項(xiàng)目開發(fā)。歡迎咨詢加入明德?lián)P FPGA和 ASIC97925396。明德?lián)P以PDF 格式提供源代碼,是為了鼓勵(lì)大家多思考,不要拿來就用,否則是學(xué)不好 FPGA 的。本代碼對應(yīng)的設(shè)計(jì)思路,請參考明德?lián)P課程。at93c46_write 模塊module at93c46_write(clk rst_

2、n addr wr wdata rdy dodi cs sk);,/參數(shù)定義 parameterDATA_W =8;/輸入信號(hào)定義 inputinput input 6:0 inputinputclk rst_naddr wrdo;/輸出信號(hào)定義 input DATA_W-1:0 outputoutputoutput outputwdata rdydics sk;3/輸出信號(hào) reg 定義reg reg reg regrdy di cssk;reg 1:0work_flag ;reg 17:0reg 4:0reg 6:0dout cnt_sclk ;cnt_1us;always(edge cl

3、k or negedge rst_n)beginif(rst_n=1b0)begin cnt_1us = 0;endelse if(work_flag!=2b0)begin if(cnt_1us=99)begincnt_1us = 0;endelse begincnt_1us = cnt_1us + 1;endendelse begincnt_1us = 0;endendt_sclkalways(edge clk or negedge rst_n)beginif(rst_n=1b0)begin cnt_sclk = 0;endelse if(work_flag=2b01) begin if(c

4、nt_1us=99 & cnt_sclk=17)begincnt_sclk = 0;endelse if(cnt_1us=99) begin cnt_sclk = cnt_sclk + 1;endendelse begin4cnt_sclk = 0;endendalways(edge clk or negedge rst_n)beginif(rst_n=1b0)begin dout = 0;endelse if(work_flag=2b0 & wr)begin dout = 3b101,addr,wdata;endendalways(edge clk or negedge rst_n)begi

5、nif(rst_n=1b0)begin work_flag = 2b00;endelse if(work_flag=2b0 & wr)begin work_flag = 2b01;endelse if(work_flag=2b01 & cnt_1us=99 & cnt_sclk=17)begin work_flag = 2b10;endelse if(work_flag=2b10 & cnt_1us=99)begin work_flag = 2b11;endelse if(work_flag=2b11 & do=1b1)begin work_flag = 2b00;endendalways(e

6、dge clk or negedge rst_n)beginif(rst_n=1b0)begin sk = 1b0;endelse if(work_flag=2b01) begin if(cnt_1us=49)sk = 1b1;else if(cnt_1us=99) sk = 1b0;end5else beginsk = 1b0;endendalways(edge clk or negedge rst_n)beginif(rst_n=1b0)begin di = 1b0;endelse if(work_flag=2b00 & wr)begin di = 1b1;endelse if(work_

7、flag=2b01 & cnt_1us=99)begin if(cnt_sclk=17)di = 1b0;elsedi = doutt_sclk-1;endendalways(edge clk or negedge rst_n)beginif(rst_n=1b0)begin cs = 1b0;endelse if(work_flag=2b00 & wr)begin cs = 1b1;endelse if(work_flag=2b01 & cnt_1us=99 & cnt_sclk=17)begin cs = 1b0;endelse if(work_flag=2b10 & cnt_1us=99)

8、begin cs = 1b1;endelse if(work_flag=2b11 & do=1b1)begin cs = 1b0;endendalways(*)begin if(wr)rdy = 1b0; else if(|work_flag)rdy = 1b0;else6rdy = 1b1;endendmoduletest_at93c46_write 模塊timescale 1 ns/1 nsmodule test_at93c46_write();parameterDATA_W =8;/輸入信號(hào)定義 regregclk rst_n addr wrdo;regreg reg6:0;/輸出信號(hào)定

9、義reg wire wire wirewireDATA_W-1:0wdata rdydics sk;/時(shí)鐘周期, parameter CYCLE為 ns,可在此修改時(shí)鐘周期。= 10;/復(fù)位時(shí)間,此時(shí)表示復(fù)位 3 個(gè)時(shí)鐘周期的時(shí)間。parameter RST_TIME = 3 ;/待測試的模塊例化 at93c46_writeuut(.clk(clk),7.rst_n.addr.wr.wdata.rdy.do.di.cs.sk);(rst_n (addr(wr),),),(wdata (rdy (do(di(cs(sk),/生成本地時(shí)鐘 50M initial beginclk = 0; forever #(CYCLE/2)clk=clk;end/產(chǎn)生復(fù)位信號(hào) initial beginrst_n = 1;#2;rst_n = 0; #(CYCLE*RST_TIME);rst_n = 1;end/輸入信號(hào) din0 賦值方式initial begin #1;/賦初值 wr = 0;addr = 7h35; wdata = 8ha7; #(10*CYCLE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論