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

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

數(shù)字IC手撕代碼-分頻器(任意奇數(shù)分頻)

2022-02-27 10:23 作者:不吃蔥的酸菜魚(yú)  | 我要投稿

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

往期題目:

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

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

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

什么是分頻

? ? ? ? 分頻就是生成一個(gè)新時(shí)鐘,該新時(shí)鐘的頻率是原有時(shí)鐘頻率的整數(shù)分之一倍,新周期是原有周期的整數(shù)倍。


? ? ? ? 再簡(jiǎn)單來(lái)說(shuō),讓你手撕一個(gè)四分頻電路,就是寫(xiě)代碼生成一個(gè)周期是原來(lái)四倍的時(shí)鐘,如果手撕一個(gè)三分頻電路,就是寫(xiě)代碼生成一個(gè)周期是原來(lái)三倍的時(shí)鐘。

如上圖所示,就是一個(gè)四分頻電路的波形,四分頻后,新的clk_out的頻率是原來(lái)的1/4,也即周期是原來(lái)的4倍,從圖中可以看到,clk每過(guò)4個(gè)周期,clk_out過(guò)1個(gè)周期。

奇數(shù)分頻?

????????先易后難,拿三分頻舉例再推廣到任意奇數(shù)分頻。怎么寫(xiě)一個(gè)三分頻呢?一個(gè)占空比不是50%的三分頻是好寫(xiě)的,同樣利用一個(gè)cnt變量對(duì)上升沿計(jì)數(shù)來(lái)實(shí)現(xiàn)。比如實(shí)現(xiàn)占空比為1/3的三分頻,那么只要數(shù)一個(gè)上升沿,輸出高電平,數(shù)兩個(gè)上升沿輸出低電平就能解決。?

三分頻代碼

? ? ? ? 代碼如上,除去rstn信號(hào)操作外,其實(shí)寫(xiě)一個(gè)三分頻就幾行,容易出錯(cuò)的點(diǎn)是:什么時(shí)候把 clk_out 拉高,什么時(shí)候把 clk_out 拉低,才能實(shí)現(xiàn)題目要求的占空比?!

? ? ? ? 最不容易出錯(cuò)的方法,就是自己畫(huà)波形,畫(huà)出波形后,自己多演算幾個(gè)周期,剛開(kāi)始寫(xiě)要畫(huà)畫(huà)波形,之后熟練了可能在腦子里過(guò)一下就知道寫(xiě)多少,所以還不熟悉的情況下不要偷懶,畫(huà)波形,就像下面貼出的波形圖一樣,寫(xiě)出計(jì)數(shù)器 cnt 的值以及對(duì)應(yīng)的波形走勢(shì)就不會(huì)出錯(cuò)。

占空比為1/3的三分頻波形?

? ? ? ? 那么如何實(shí)現(xiàn)一個(gè)占空比50%的三分頻呢?

? ? ? ? 答:將一個(gè)占空比1/3 上升沿采樣的三分頻和一個(gè)占空比1/3下降沿采樣的三分頻結(jié)果,做或運(yùn)算。

? ? ? ? 什么意思?怎么想到這樣做的?下面來(lái)解答!

? ? ? ? 任何奇數(shù) 2N-1 (除1分頻外)分頻都可以表示由 N-1個(gè)高電平周期和 N個(gè)低電平周期組成。(占空比最接近50%,但小于50%)

? ? ? ? 寫(xiě)兩個(gè)這樣的分頻器,一個(gè)上升沿采樣的分頻器——div1,一個(gè)下降沿采樣的分頻器——div2,在相同 cnt 判斷切換高低電平的條件下,就一定有 div1 領(lǐng)先(或滯后)于 div2 半個(gè)參考周期,這樣他們相與后會(huì)使得新的結(jié)果還是 2N-1 分頻,但是高電平周期變?yōu)?N-1+1/2,低電平周期變?yōu)?N-1/2,從而高低電平持續(xù)時(shí)間相等,實(shí)現(xiàn)50%占空比的任意奇數(shù)分頻器。?

占空比為50%的七分頻器 作者:不吃蔥的酸菜魚(yú) https://www.bilibili.com/read/cv15389344 出處:bilibili

????????如上圖所示,從上往下分別為,原始時(shí)鐘信號(hào)clk,或運(yùn)算結(jié)果 clk_out,上升沿采樣七分頻信號(hào) clk_out1,下降沿采樣七分頻信號(hào) clk_out2。(assign clk_out = clk_out1 | clk_out2)

? ? ? ? 下面就以七分頻為例,寫(xiě)一個(gè)占空比為50%的奇數(shù)分頻器。?

代碼:

50%占空比七分頻?

testbench:

50%占空比七分頻?

?????????到此,我們就實(shí)現(xiàn)了任意50%占空比的奇數(shù)分頻器,總結(jié)一下。說(shuō)了那么多我們已經(jīng)可以獨(dú)立寫(xiě)出任意合理占空比的偶數(shù)分頻器,以及任意50%占空比的技術(shù)分頻器。但是,如果讓手撕一個(gè)不是50%占空比的奇數(shù)分頻器怎么辦??

? ? ? ? 我在看2022數(shù)字IC秋招面經(jīng)的時(shí)候,就看到有個(gè)人面試被問(wèn)了一個(gè)非常規(guī)占空比的奇數(shù)分頻器,比如 3/10占空比的五分頻, 5/18占空比的九分頻?怎么做呢。

? ? ? ? 其實(shí)聰明的人已經(jīng)想到了,這個(gè)和上面實(shí)現(xiàn)50%任意奇數(shù)分頻器的原理是類(lèi)似的,但是采用與運(yùn)算。用占空比為 2/5 上升沿采樣的信號(hào)和 2/5占空比下降沿采樣的信號(hào)相與,這樣由于下降沿采樣信號(hào)滯后上升沿采樣信號(hào)半個(gè)參考周期。

? ? ? ? 所以相與后,占空比就為 2/5 - 1/10 = 3/10 ,示意圖如下:

3/10占空比五分頻波形圖

????????明白了這個(gè)原理,那么同樣的道理5/18占空比的九分頻也不在話(huà)下了。

? ? ? ? 下面給出 5/18 占空比的九分頻代碼:

代碼:?

5/18占空比九分頻代碼

testbench:?

5/18占空比九分頻測(cè)試代碼

????5/18占空比的九分頻就是用上升沿采樣的3/9占空比九分頻 和下降沿采樣的3/9占空比九分頻相與,最后結(jié)果為3/9-1/18 = 5/18 占空比。具體修改只需要改cnt判斷數(shù)值以及把clk_out 的賦值從clk_out1,clk_out2相或改成相與。?

5/18占空比的九分頻波形

????????具體波形如上,和我們的分析一致,任意占空比的小數(shù)分頻手撕代碼到此結(jié)束。

數(shù)字IC手撕代碼-分頻器(任意奇數(shù)分頻)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
鹿泉市| 丘北县| 南皮县| 武乡县| 泰州市| 江津市| 夹江县| 信丰县| 临颍县| 柞水县| 赤水市| 广昌县| 资兴市| 太谷县| 林口县| 二连浩特市| 荣昌县| 维西| 黄梅县| 宁安市| 阿拉善右旗| 刚察县| 南昌县| 瓮安县| 高雄县| 临泉县| 阿坝| 垦利县| 军事| 许昌市| 汉阴县| 安泽县| 碌曲县| 化隆| 宁晋县| 宽甸| 河曲县| 封丘县| 广丰县| 贵州省| 屏东市|