版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、流水燈1. 流水燈: 頂層模塊(例化各個模塊) 分頻模塊(得到固定頻率10HZ)顯示模塊 (隨固定頻率來操作led)2. 代碼設(shè)計:water_led.v module water_led(clk,rst_n,led_data) Clk_design(clk,rst_n,led_en) Led_display(clk,rst_n,led_en)任意分頻ps/2標準接口1) DATA 數(shù)據(jù)信號2) N.C 不連接3) GND 數(shù)字地4) VCC +5v電源5) CLK 時鐘信號6) N.C 不連接2. 幀格式Clk下降沿鎖存 數(shù)據(jù)Data 1bit起始位 8bit數(shù)據(jù)位 1bit校驗位 1bit
2、停止位 1bit校驗位3. 鍵盤編碼返回值1) 按下或按住 發(fā)送通碼2) 釋放 發(fā)送斷碼3) 掃描碼集 現(xiàn)代的鍵盤默認使用第二套掃描碼4. ps/2接口5. 頂成模塊接口定義乘法器1. 組合邏輯設(shè)計 : 電路事先將所有的乘積項計算出來,再加法運算2. 時序邏輯設(shè)計 : 電路將部分已經(jīng)得到的結(jié)果右移,然后與乘積項相加并保存和值,反復(fù)迭代上述步驟知道計算出乘積。3. 接口定義串口通信 & 模塊化設(shè)計 1.接口定義注:Rs232_rx input 2. 模塊化設(shè)計1) .頂層文件 + 底層文件 頂層文件只作例化 底層文件實現(xiàn)各個功能模塊 2) 例化 模塊名 例化名 接口例化 (.clk(cl
3、k), .rst(rst)); 3) 端口沒有與外部接口連接的 即從一個模塊傳到另一個模塊 的端口 在頂層模塊中 為Wire型 3. 波特率控制收/發(fā) 發(fā)送模塊 接收模塊 基于Altera Quartus II的模塊化設(shè)計應(yīng)用 和ISE不一樣,Quartus II代碼的模塊化視圖并不是你把子模塊例化到頂層模塊以后就能馬上在工程代碼窗口看到一個清晰的層次圖。而是必須在你編譯后才能夠看到層次化的視圖。 我在這里列舉一個串口通信(實驗10)的實例: 編寫完該HDL的代碼,還沒有編譯,此時在Project Navigator窗口中只有頂層模塊my_uart_top。 頂層模塊如下(詳細的注釋代碼請參考
4、相關(guān)實驗):/module my_uart_top( clk,rst_n, rs232_rx,rs232_tx );input clk;input rst_n;input rs232_rx;output rs232_tx; wire bps_start1,bps_start2;wire clk_bps1,clk_bps2;wire7:0 rx_data;wire rx_int; /speed_select speed_rx( .clk(clk), .rst_n(rst_n), .bps_start(bps_start1), .clk_bps(clk_bps1) ); my_uart_rx my
5、_uart_rx( .clk(clk), .rst_n(rst_n), .rs232_rx(rs232_rx), .rx_data(rx_data), .rx_int(rx_int), .clk_bps(clk_bps1), .bps_start(bps_start1) ); / speed_select speed_tx( .clk(clk), .rst_n(rst_n), .bps_start(bps_start2), .clk_bps(clk_bps2) ); my_uart_tx my_uart_tx( .clk(clk), .rst_n(rst_n), .rx_data(rx_dat
6、a), .rx_int(rx_int), .rs232_tx(rs232_tx), .clk_bps(clk_bps2), .bps_start(bps_start2) );Endmodule 我們一般不在頂層模塊做任何邏輯設(shè)計,哪怕只是一個邏輯與操作。比較好的設(shè)計會明確的區(qū)分每一個模塊單元。在上面這個設(shè)計中,是要實現(xiàn)一個串口自收發(fā)通信的功能。具體說就是不斷的檢測串口接收信號rs232_rx是否有數(shù)據(jù),如果接收到起始位就把數(shù)據(jù)保存,然后再轉(zhuǎn)手把接收到的數(shù)據(jù)通過串口發(fā)送信號rs232_tx發(fā)回給對方。即使是這樣一個還不算太復(fù)雜的功能,如果都堆到一個模塊里,代碼不僅又臭又長,編寫代碼者如果不理好思
7、路很容易自己就寫暈了,以后維護起來或者要移植就更難了。所以,模塊化的設(shè)計勢在必行。上面的代碼把這個設(shè)計分成了四個模塊:1、My_uart_tx:串口數(shù)據(jù)接收模塊;2、Speed_tx:串口數(shù)據(jù)接收時鐘校準模塊;3、My_uart_rx:串口數(shù)據(jù)發(fā)送模塊;4、Speed_rx:串口數(shù)據(jù)發(fā)送時鐘校準模塊。 如此劃分,層次清晰而且思路明確,寫起代碼來更是游刃有余。先來說模塊例化的一些細節(jié)吧。就拿speed_select模塊例化來看。第一行的speed_select speed_rx,其中speed_select是要例化的模塊名,是固定的;而speed_rx則是你任意給這個模塊取的名字,它是用于區(qū)分例
8、化多個相同的模塊。就如speed_tx和speed_rx兩個模塊,因為它們的邏輯設(shè)計都是一樣的,所以寫一個模塊,然后在例化的時候給個不同的名稱就可以了。這有點類似軟件設(shè)計中的子程序調(diào)用,但又有不同,由于硬件設(shè)計的并行性,這里的邏輯復(fù)制實際上在最后的硬件上是實現(xiàn)了兩個一模一樣的speed_select設(shè)計原型,可以說它們是完全獨立的。即便是對于硬件資源的消耗沒有減少,采用模塊化設(shè)計以后也能從很大程度上減少設(shè)計者的重復(fù)勞動。 信號的例化是這樣的.clk(clk),點號后的clk代表例化模塊內(nèi)部的信號(是固定的,必須和內(nèi)部的信號名一致),而括號內(nèi)的clk則是例化模塊的外部連接,可以例化模塊內(nèi)的信號名
9、不同。 在編譯后,可以從Project Navigator窗口中看到例化的子模塊: 另外,從Quartus II提供的RTL視圖里,我們能夠更深刻的感受到模塊化帶來的層次感: IIC協(xié)議1,了解 用verilog 實現(xiàn) iic時序2. iic : scl sda 3. Start : scl高電平時 拉低sda 4. 鎖存數(shù)據(jù) : scl 上升沿 5. ACK :應(yīng)答 從機拉低sda6. STOP : scl高電平時 拉高 sda 7. Iic通信接口8. 雙向IO inout sda; sda = sda_link ? Sda_r : 1bz; sda_link 輸入輸出控制位 0輸入 高阻
10、 讀時 賦給某個寄存器 1輸出 sda_r輸出值內(nèi)部振蕩時鐘(MAXII)1. osc_ena內(nèi)部晶振 使能信號 高電平有效 output :osc 晶振13.33MHz 22.22MHz OSC 是經(jīng)過4分頻的時鐘 頻率:3.3MHz 5.5MHz2. MAXII內(nèi)嵌存儲器 UFM(內(nèi)部晶振 flash) 使用晶振時 不需要例化UFM 晶振可單獨使用3. .新建工程 ufm_osc 頂層文件 ufm_osc 配置內(nèi)部振蕩器的宏功能在頂層文件中 例化 模塊代碼示例 仿真 Modelsim1. RTL smulatian 功能仿真 :代碼唄 綜合過 沒有時序信息 庫:需要文件: 測試腳本.v +
11、 器件文件.v /硬件信息+ modelsim_test.vo /綜合后的網(wǎng)表2. GATE_LEVEL simulatian 時序仿真 仿真時序信息 延時的情況庫: 需要文件 : 額外+.sdo/器件延時信息 仿真流程(SE版本): 1. 功能仿真 :新建library 添加文件 (3) 編譯 雙擊xxx_test 右鍵添加到波形窗口(add to wave)2. 時序仿真 :新建工程(new project) 添加文件(add file to project)(modelsim 3+1) 編譯 (compile all) 在庫中雙擊xxx_test 右鍵添加到波形窗口(add to wave) 仿真 注 : 如果不用時序信息 打開.vo文件 注釋掉 調(diào)用.sdo 的語句 從新編譯 開發(fā)流程 DSS與嵌入式邏輯分析儀的調(diào)用一DSS1. DSS : 直接數(shù)字頻率合成器,DDFS。·DSS是從相位的概念直接合成所需波形的一種頻率合成技術(shù)。·
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 塑造獨特定制新我
- 旅游行業(yè)創(chuàng)新驅(qū)動
- 2落花生說課稿-2024-2025學(xué)年五年級上冊語文統(tǒng)編版
- 外聘勞務(wù)合同(2篇)
- 培訓(xùn)機構(gòu)受單位委托培訓(xùn)合同(2篇)
- 大宗礦產(chǎn)品銷售代理合同(2篇)
- 2024版二手房買賣協(xié)議(含裝修情況)2篇
- 2024氣體購銷合同范本
- 專業(yè)油罐儲存服務(wù)協(xié)議模板(2024年)版
- 物業(yè)管理裝修協(xié)議書
- (完整版)《安全標志及其使用導(dǎo)則規(guī)范》
- 挑戰(zhàn)杯生命科學(xué)獲獎作品范例
- 微信如何進行視頻聊天
- T∕CNFMA B003-2018 林火防撲機械 以汽油機為動力的便攜式化學(xué)泡沫滅火機
- 全貼合OCA工藝簡介
- 部編版八上語文古代詩歌鑒賞對比閱讀(含答案)
- 帶壓堵漏夾具及規(guī)范化設(shè)計和選擇
- 單人簡易呼吸球囊操作流程1
- 標書密封條格式模板大全(共33頁)
- 鐵路交通事故分類表
- 維修確認單(共4頁)
評論
0/150
提交評論