電類綜合實驗操作記錄:Quartus進行多功能數字鍾的設計


課程設計可參考:http://www.doc88.com/p-8931275491532.html
 
1.計時電路
秒位,分位
 
1.1 接時鍾:控制數值顯示的頻率
 
1.2 個位滿10進位,個位清零:
①Nand2接LDN
Nand2 用於個位滿10進1,接入芯片的LDN,LDN作用:LDN為1時,芯片不輸出QD,QC,QB,QA二進制轉化成的十進制,而換成輸出DCBA二進制轉化成的十進制數字,可用於秒位滿10置0,和分位滿6置0
②GND:始終輸出低電平0
 
1.3 個位滿10進位,分位加1
個位使能端的作用:控制計數器開始計數,連接外部電路箱開關
分位使能端的作用:如果使能端變為1,則表示時鍾來了計數芯片開始計數。可以用非門連接到個位的…與非門(條件判斷),個位每次滿足使en1為1的條件,則時鍾信號來了就加1
 
1.4 個位滿10,分位滿6,分位清零
①Nand3接LDN
Nand3 用於個位滿10,分位滿6,時位進1,接入芯片的LDN,
LDN作用:LDN為1時,芯片不輸出QD,QC,QB,QA二進制轉化成的十進制,而換成輸出DCBA二進制轉化成的十進制數字,可用於秒位滿10置0,和分位滿6置0
②GND:始終輸出低電平0

1.5 個位滿10,分位滿6,時位進1
分位使能端的作用:如果使能端變為1,則表示時鍾來了計數芯片開始計數。可以用非門連接到個位的…與非門(條件判斷),個位每次滿足使en1為1的條件,則時鍾信號來了就加1
 
1.6.輸出模塊:
三個輸出:總線形式:ql[3..0], qh[3..0],qhh[3..0]
 
2.編譯:黑色三角形
 
3.simulator 檢查運行結果【目的:為了在直接連到外部電路前,先在電腦上進行仿真,檢查clock, clear, en信號對芯片的控制是不是成功(成功即達到你想要的效果)】
3.1 實際操作:
①創建一個仿真文件:new-verification-waveform文件 => 右鍵 insert => finder => all => list => '=>' =>
②修改仿真時間:默認仿真時間是1us(從頭到尾的仿真時間), 可以在edit-end Time中修改為 3us
③逐一檢查clock, cr, en信號的輸出效果和 控制效果!
i)設置時鍾信號:選中clk行,在左側菜單欄中找到overwrite clock

點擊左側菜單欄,放大,箭頭,選中要清零的區域,設置為0
Iii) 設置使能信號:使能信號為0是保持,為1是遇到時鍾計數(因為84161遇到clock的功能就是計數)
所以可以通過將en置0,看輸出是否保持不變,如果保持不變,則電路控制正確。
Iv) 剩下的為輸出端,不用編輯,只需要運行程序,用來檢查所設計的電路是否實現想要的功能
v)保存文件
④進行仿真
Processing-simulator
【可以嘗試以下兩種仿真形式,查看效果
Timing形式:實時仿真
functional形式:只從數學理論角度進行仿真】
先嘗試functional,
點擊省略號,選中剛剛創建的waveform文件
記住選中overwrite simulation input file… results;
然后點擊第一行:generate functional simulation netlist

然后往下拉,點擊start,運行后點擊open
顯示以下結果:

對結果進行分析:

1)ql[0]和ql[3]同時達到1,之后ql[3..0]全部清零,qh[0]變為高電平1,實現秒位滿10清零和分位進1功能
2)之后cr信號起作用,qh,qhh,ql在cr=0期間全部為0
3)cr信號結束,秒位從0開始重新計數,滿10進1,qh為分位,進到[2]時,遇到en置0,實現保持功能,所以en置0期間,ql,qhh,qhh均保持為當前數字。ql位顯示為6表示此時ql[3..0]的二進制轉化為十進制后為6。保持信號結束,en重新為1,在當前信號的基礎上,繼續計數。
4)分位由5變0表示分位滿6清零,同時十位+1,表示分位滿6進1,說明實現了想要的功能。

5)觀察發現
如果是functional仿真的話:各個信號和時鍾信號之間的關系,每個信號如果有累加,則+1發生在時鍾脈沖的上升邊沿。
如果是Timing實時仿真的話:則+不會發生在時鍾脈沖的上升邊沿,並且波形不干凈,從9到0之間的信號會夾雜一些雜質信號,這是由於由0111轉變為1000時,四個二進制數字不能夠同時轉變,轉變肯定會有先后,所以會夾雜其他比如6,4,2等等的數值
=>所以在電路設計中會有采用循環碼而不是二進制碼的原因。
⑤回到原理圖,對所設計的電路進行封裝,封裝成小模塊。
File- create&update - (第二個)create symbol files , 保存為test1.bsf文件(名字可以隨便取)
⑥如何找到已封裝的模塊:
關閉所有文件;
File-new-創建原理圖文件- 雙擊csf文件空白處-出現libraries-project-test1, 得到所封裝的模塊;用所封裝的模塊時,注意需要重新接外部輸入輸出端口,
 
2.分配引腳
菜單欄Assignment-pin,雙擊location一列對應空格,出現下拉的黑色三角形,對應分配引腳的文件進行分配即可(location是選擇FPGA管腳的編號 )

之后通過操縱外部實驗板的開關,信號就可以通過對應的FPGA的管腳輸入到內部的程序中,實現程序的功能。【開關往上為0,往下為1】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM