版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第9章 分頻電路的設(shè)計硬件描述語言和數(shù)字系統(tǒng)設(shè)計2主要內(nèi)容:9.1 2n分頻電路的設(shè)計9.2 2N分頻電路的Verilog描述9.3 5分頻電路設(shè)計常見錯誤分析9.4 奇數(shù)次分頻電路的Verilog描述39.1 2n分頻電路的設(shè)計知識點:9.1.1 D觸發(fā)器搭建的16分頻電路原理圖49.1.1 D觸發(fā)器搭建的16分頻電路原理圖5電路要點:1.本級的輸出端Q_接入D輸入端;2.本級的輸出Q或者Q_接入下級的CLK輸入端;3.經(jīng)過一個D觸發(fā)器進行21分頻;4.與16進制異步計數(shù)器電路圖是否相同?69.2 2N分頻電路的Verilog描述(以10分頻為例)知識點:9.2.1 10分頻的Verilog
2、描述9.2.2 10分頻的仿真波形9.2.3 10分頻綜合的RTL電路圖79.2.1 10分頻的Verilog描述/假設(shè)占空比為50%module clk10f (preclk, rst,clk10f);input preclk, rst;output clk10f;reg clk10f;reg 3:0 count;always (posedge preclk or posedge rst) if (rst) count = 4b0000; else if( count = 4b0100) count = 4b0000; else count = count + 4b0001;8always
3、(posedge preclk or posedge rst) if (rst) clk10f= 1b0; else if( count = 4b0100) clk10f = clk10f;endmodule 99.2.2 10分頻的仿真波形109.2.3 10分頻綜合的RTL電路圖119.3 5分頻電路設(shè)計常見錯誤分析知識點:error1-5分頻電路的電平描述error2-5分頻電路的兩個邊沿觸發(fā)error3-5分頻電路的多驅(qū)動問題129.3.1 error1-5分頻電路的電平描述/假設(shè)占空比為50%module divide5error(rst,clk,clk5);input rst,cl
4、k;output clk5;reg clk5;reg 2:0 counter; always (clk or rst) if (!rst) counter =3b000;else if(counter=3b100) counter =3b000;else counter = counter+1; always (rst or counter) if (!rst) clk5=1b0; else if(counter=3b100) clk5=clk5;endmodule13仿真波形分析: 從仿真波形上看,滿足5分頻要求,但是,綜合的電路情況是否同樣滿足呢?14Leonardo工具綜合的電路圖綜合時
5、報告的Warning:1. Warning, input clk is never used.2.Warning, clk5 is not always assigned. Storage may be needed.3.Warning, Design contains combinatorial loop through net counter(0), counter(1), counter(2).15分析-電平觸發(fā)簡化情況module seqorcombin(rst,clk,d,q);input rst,clk;input d;output q;reg q;always (clk or r
6、st)if (!rst)q=1b0;else q=d;Endmodule這是時序邏輯還是組合邏輯?或者你覺得它應(yīng)該是什么?16電平觸發(fā)的過程塊綜合結(jié)果綜合過程中的warning:1. E:/seqorcombin.v,line 2: Warning, input clk is never used.2. E:/seqorcombin.v,line 12: Warning, d should be present in the always condition.17module divide5error(rst,clk,clk5);input rst,clk;output clk5;reg cl
7、k5;reg 2:0 counter;always (posedge clk or negedge clk or negedge rst)if (!rst) counter =3b000;else if(counter=3b100)counter =3b000;else counter = counter+1; always (rst or counter) if (!rst) clk5=1b0;else if(counter=3b100) clk5=clk5;endmodule9.3.2 error2-5分頻電路的兩個邊沿觸發(fā)18仿真波形分析: 從仿真波形上看,滿足5分頻要求,但是,綜合的電
8、路情況是否同樣滿足呢?19 Leonardo工具綜合的電路圖綜合時報告的ERROR:E:/divide5_error/divide5error.v, line 28: Error, Always block sensitive to both positive and negative edge of clk and clk can not be synthesized為什么?(以D觸發(fā)器說明,上跳沿和下跳沿同時觸發(fā)可以嗎?)always (posedge clk or negedge clk or negedge rst)if (!rst)q=1b0;else q=d;20 9.3.3 Er
9、ror3- 5分頻電路的多驅(qū)動問題module divide5 (rst,clk,clk5);input rst,clk;output clk5;reg clk5;reg 2:0 counter; always (rst or counter) if (!rst) clk5=1b0;else if(counter=3b100) clk5=clk5;21always (posedge clk or negedge rst)if (!rst) counter =3b000;else if(counter=3b100)counter =3b000;else counter = counter+1;a
10、lways (negedge clk or negedge rst)if (!rst) counter =3b000;else if(counter=3b100)counter =3b000;else counter = counter+1;endmodule22仿真波形(滿足5分頻占空比為50%的要求)但是綜合結(jié)果呢?239.4 奇數(shù)次分頻電路的Verilog描述(以5分頻為例)知識點:5分頻的Verilog描述-正確方法一5分頻的Verilog描述-正確方法一 testbench5分頻的Verilog描述-正確方法二5進制計數(shù)器的Verilog錯誤表達15進制計數(shù)器的Verilog錯誤表達
11、25進制計數(shù)器的Verilog錯誤表達3249.4.1 5分頻的Verilog描述-正確方法一/假設(shè)占空比為50%module d5f(clk,rst,clk5f); input clk,rst; output clk5f; wire clk0; wire clk5f; reg 2:0 counter1,counter2; reg clk5f1,clk5f2; assign clk0=clk;25 always (posedge clk or negedge rst) if(!rst) counter1=0; else if(counter1=3b100) counter1=0; else c
12、ounter1=counter1+1; always (posedge clk or negedge rst) if(!rst) clk5f1=0; elseif(counter1=3b100)|(counter1=3b010) clk5f1=clk5f1; 26 always (posedge clk0 or negedge rst) if(!rst) counter2=0; else if(counter2=3b100) counter2=0; else counter2=counter2+1; always (posedge clk0 or negedge rst) if(!rst) c
13、lk5f2=0; else if(counter2=3b100)|(counter2=3b010) clk5f2=clk5f2; assign clk5f=clk5f1|clk5f2; endmodule 275分頻的仿真波形285分頻綜合后的電路圖29 module tb_G5f; reg clk,rst; wire clk5f; always #50 clk=clk; initial begin clk=0; rst=1; #5 rst=0; #5 rst=1; end /module d5f(clk,rst,clk5f); d5f hw(.clk(clk),.rst(rst),.clk5
14、f(clk5f);endmodule 9.4.2 5分頻的Verilog描述-正確方法一testbench30 9.4.3 5分頻的Verilog描述-正確方法二 /假設(shè)占空比為50%思想方法: 能否利用偶數(shù)分頻2N設(shè)計思想(轉(zhuǎn)化為對時鐘信號的N計數(shù)器設(shè)計,在計時器計滿一次N時, 2N分頻信號反向一次); 如果能對奇數(shù)分頻M進行時鐘信號半周期的M計數(shù),那么當計時器計滿一次M時,分頻信號M反向一次)31 5進制計數(shù)器的Verilog描述 要求:對時鐘信號clk半周期記一次數(shù)32/假設(shè)占空比為50%module d5f(clk,rst,clk5f); input clk,rst; output c
15、lk5f; reg clk5f; reg 3:0 counter1,counter2; reg 4:0 counter_temp, counter;33 always (posedge clk or negedge rst) if(!rst) counter1=0; else if(counter1=4b1001) counter1=0; else counter1=counter1+1;34 always (negedge clk or negedge rst) if(!rst) counter2=0; else if(counter2=4b1001) counter2=0; else co
16、unter2=10) counter=counter_temp-10; else counter=counter_temp;36 always (rst or counter) if(!rst) clk5f=0; else if(counter=4b0) clk5f=0; else if(counter=4b0101) clk5f=1;endmodule 37 5進制計數(shù)器方法二-仿真波形38 5進制計數(shù)器方法二-綜合結(jié)果綜合結(jié)果:Clk5f 會有鎖存器產(chǎn)生分析: 此處Clk5f需要鎖存器。39 9.4.4 5進制計數(shù)器的Verilog錯誤表達1module counter_error1(cl
17、k, rst, counter); input clk, rst; output 2:0 counter; reg 2:0 counter; always (clk or rst) if (rst) counter =3b000; else if (counter=3b100) counter = 3b000; else counter = counter+ 3b001;endmodule問題:這是時序邏輯還是組合邏輯?40 5進制計數(shù)器的Verilog錯誤表達1-仿真波形分析:仿真波形滿足要求,但是綜合結(jié)果呢?41 5進制計數(shù)器的Verilog錯誤表達1-綜合結(jié)果綜合時報告的Warning:
18、 1.Warning, input clk is never used.2.Warning, Design contains combinatorial loop through net counter(0),counter(1), counter(2), counter(3).42 5進制計數(shù)器的Verilog錯誤表達1-綜合結(jié)果 錯誤原因:過程塊使用電平觸發(fā)方式,在綜合時被映射成組合邏輯電路; 描述計數(shù)器這樣的時序邏輯,其敏感量不能采用電平觸發(fā)方式!439.4.5 5進制計數(shù)器的Verilog錯誤表達2module counter_error2(clk, rst, counter); in
19、put clk, rst; output 2:0 counter; reg 2:0 counter; always (posedge clk or negedge clk or posedge rst) if (rst) counter =3b000; else if(counter=3b100) counter = 3b000;else counter = counter+ 3b001;endmodule問題:這種描述方式問題出在什么地方?44 5進制計數(shù)器的Verilog錯誤表達2-仿真波形分析:仿真波形滿足要求,但是綜合結(jié)果呢?45綜合工具不能映射成電路,報告的錯誤信息: Error:
20、Always block sensitive to both positive and negative edge of clk and clk can not be synthesized!錯誤原因分析:同一個D觸發(fā)器能夠既用時鐘信號的上升沿又用下降沿來觸發(fā)嗎? 所以,應(yīng)改正為: always (posedge clk or posedge rst)或者 always (negedge clk or posedge rst)469.4.6 5進制計數(shù)器的Verilog錯誤表達3module counter_error3(clk, rst, counter); input clk, rst; output 2:0 counter; reg 2:0 counter; always (posedge clk or posedge rst) if (rst) counter =3b000; else if(count
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國集裝箱航運價格波動因素與中長期供需平衡預(yù)測分析報告
- 2026浙江溫州大學(xué)國際教育學(xué)院招聘1人備考題庫及答案詳解(奪冠系列)
- 2026年三向叉車考試題庫及完整答案1套
- 2026年廠內(nèi)叉車安全考試題庫及答案1套
- 2026年叉車司機電子考試題庫及答案1套
- 2026年叉車等級考試題庫及完整答案1套
- 2026福建水投集團漳浦水務(wù)有限公司招聘23人備考題庫帶答案詳解
- 2026湖南婁底低空經(jīng)濟發(fā)展公司招聘5人備考題庫及參考答案詳解1套
- 2026福建泉州南安市城鄉(xiāng)水務(wù)集團有限公司招聘30人備考題庫及一套參考答案詳解
- 2026四川巴中市通江產(chǎn)業(yè)投資集團有限公司及下屬企業(yè)招聘11人備考題庫附答案詳解(培優(yōu)b卷)
- 2025年江蘇省蘇州市中考數(shù)學(xué)模擬試卷(含答案)
- GB/T 45133-2025氣體分析混合氣體組成的測定基于單點和兩點校準的比較法
- 九年級下冊語文必背古詩文(字帖描紅)
- 北京市行業(yè)用水定額匯編(2024年版)
- 婚內(nèi)財產(chǎn)協(xié)議書標準版
- 基于大數(shù)據(jù)的金融風(fēng)險評估模型構(gòu)建
- 供應(yīng)鏈與生產(chǎn)制造L1-L4級高階流程規(guī)劃框架 相關(guān)兩份資料
- 光伏電站施工管理要點培訓(xùn)
- 國際貿(mào)易合同履行中的運輸保險索賠程序與操作指南
- 龍澤滴灌帶生產(chǎn)項目可行性研究報告
- 運動系統(tǒng)疾病
評論
0/150
提交評論