FPGA实验三——计数器的实现并用SignalTap验证
實(shí)驗(yàn)三
? 1、參照代碼,設(shè)計(jì)一個(gè)0-17的計(jì)數(shù)器,當(dāng)計(jì)數(shù)值為17的時(shí)候, OV輸出1,其他輸出0,注意設(shè)定合理的信號(hào)位寬。
? 2、針對(duì)以上計(jì)數(shù)器,修改輸出邏輯,當(dāng)計(jì)數(shù)值為0-8時(shí), OV輸出0,9-17時(shí)OV輸出1
? 用SignalTap驗(yàn)證
? 嘗試并思考,如果時(shí)鐘是50MHz,把OV接到一個(gè)LED上,能看見(jiàn)什么現(xiàn)象,為什么?
1.設(shè)計(jì)一個(gè)0-17的計(jì)數(shù)器,當(dāng)計(jì)數(shù)值為17的時(shí)候, OV輸出1,其他輸出0,注意設(shè)定合理的信號(hào)位寬。
設(shè)計(jì)過(guò)程如下:
由上圖可以看到時(shí)序仿真存在毛刺。我們放大來(lái)看,由2變到3的時(shí)候是正常的,但是由3變到4的時(shí)候中間卻出現(xiàn)了2和6,這是因?yàn)?(010)到3(011)只發(fā)生最低位從0到1變化一次即可,但是3(011)到4(100)卻要三位全都改變,這在計(jì)算機(jī)處理的時(shí)候需要一個(gè)過(guò)程先要最低位的1變?yōu)?(出現(xiàn)2(010)),再把最高位的0變成1(出現(xiàn)6(110)),再把第二位的1變成0,就是最終的結(jié)果4了!
用SignalTap驗(yàn)證:
2、針對(duì)以上計(jì)數(shù)器,修改輸出邏輯,當(dāng)計(jì)數(shù)值為0-8時(shí), OV輸出0,9-17時(shí)OV輸出1
嘗試并思考,如果時(shí)鐘是50MHz,把OV接到一個(gè)LED上,能看見(jiàn)什么現(xiàn)象,為什么?
如果時(shí)鐘是50MHz,那么一個(gè)周期就是20ns,再執(zhí)行上面的程序,也就是說(shuō)LED燈會(huì)在9-17這個(gè)過(guò)程變亮,其余時(shí)間是滅的,但是亮的持續(xù)時(shí)間只有9*20=180ns,用肉眼分辨不出來(lái),看到的是常亮的狀態(tài)。如下圖所示:
1
總結(jié)
以上是生活随笔為你收集整理的FPGA实验三——计数器的实现并用SignalTap验证的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LimeSDR性能参数介绍及如何用它实现
- 下一篇: FPGA实验四——时间基准电路和带使能的