最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

數(shù)字ic手撕代碼-邊沿檢測(上升沿、下降沿、雙邊沿)

2022-02-27 17:59 作者:不吃蔥的酸菜魚  | 我要投稿

????????大家好我是酸菜魚,這個(gè)系列著重講解數(shù)字ic或FPGA實(shí)習(xí)面試及秋招面試的高頻手撕代碼題。

往期專欄:

數(shù)字IC手撕代碼-分頻器(任意偶數(shù)分頻) - 嗶哩嗶哩 (bilibili.com)

數(shù)字IC手撕代碼-分頻器(任意奇數(shù)分頻) - 嗶哩嗶哩 (bilibili.com)

數(shù)字IC手撕代碼-分頻器(任意小數(shù)分頻) - 嗶哩嗶哩 (bilibili.com)

數(shù)字IC手撕代碼-序列檢測(狀態(tài)機(jī)寫法) - 嗶哩嗶哩 (bilibili.com)

數(shù)字IC手撕代碼-序列檢測(移位寄存器寫法) - 嗶哩嗶哩 (bilibili.com)


邊沿檢測

????????在使用FIFO進(jìn)行數(shù)據(jù)讀寫的時(shí)候,我們會(huì)用到邊沿檢測,比如當(dāng)FIFO內(nèi)的數(shù)據(jù)被讀空了,這樣 empty 信號(hào)就會(huì)從0→1,產(chǎn)生一個(gè)上升沿,當(dāng)這個(gè)上升沿到來的時(shí)候代表FIFO內(nèi)孔,我們就可以對(duì)FIFO進(jìn)行一個(gè)寫操作(把寫使能拉高,往FIFO寫數(shù)據(jù)),所以邊沿檢測是十分常用的東西,下面我們來講講邊沿檢測的原理、代碼以及對(duì)應(yīng)仿真。

原理:

??????? 比如我們要檢測信號(hào) signal 的上升沿,我們使用兩個(gè)寄存器,級(jí)聯(lián)記錄 signal 的值,這樣由于寄存器延遲一拍的特性,第二個(gè)寄存器永遠(yuǎn)會(huì)延遲第一個(gè)寄存器。

????????當(dāng) signal 上升沿到來時(shí),會(huì)有:第一個(gè)寄存器檢測為高,第二個(gè)寄存器檢測為低。

????????這樣,我們只要把第二個(gè)寄存器取反,然后和第一個(gè)寄存器做與運(yùn)算,這樣當(dāng)計(jì)算的數(shù)值為 1 時(shí),就檢測到了上升邊沿。

????代碼:

Testbench:

上升邊沿 邊沿檢測波形:

????????從圖中我們可以看到,跟我們預(yù)料的一樣,當(dāng)上升沿到來的時(shí)候,reg1和 reg2 信號(hào)錯(cuò)一拍,這樣利用這個(gè)特性,讓signal_edge = ~reg2 & reg1 就能檢測到上升邊沿。

????????檢測下降沿也是一個(gè)道理,代碼完全一致,就是把最后邊沿檢測信號(hào)改為:

????????assign signal_edge = ~reg1?&?reg2;

下降邊沿 邊沿檢測波形:


雙邊沿 邊沿檢測波形:

? ? ? ? 雙邊沿檢測,就是上升沿和下降沿,檢測信號(hào)都要輸出一次高電平。這我們可以用異或?qū)崿F(xiàn),同樣是只需要在上升沿檢測的代碼里改最后一條賦值語句即可,改為:

????????assign signal_edge = reg1 ^reg2 ;

?波形如下:

????結(jié)果和我們?cè)O(shè)計(jì)的一致。




數(shù)字ic手撕代碼-邊沿檢測(上升沿、下降沿、雙邊沿)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
邓州市| 瓦房店市| 乐昌市| 周宁县| 兴义市| 大同市| 东源县| 辽阳县| 呼玛县| 平南县| 辽宁省| 北碚区| 二手房| 金门县| 仁化县| 平山县| 徐州市| 长春市| 桓台县| 大新县| 腾冲县| 当雄县| 湟中县| 西贡区| 陕西省| 荥经县| 安义县| 南昌县| 十堰市| 闽清县| 土默特右旗| 会宁县| 兴义市| 白玉县| 桂林市| 成武县| 五原县| 都兰县| 麻江县| 德清县| 灵武市|