五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

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

2022-02-26 19:18 作者:不吃蔥的酸菜魚  | 我要投稿

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

往期題目:

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

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

本文具體內(nèi)容涉及:利用移位寄存器 寫序列檢測。

????????一說到序列檢測,你腦子里要立馬跳出兩種解法,一種是狀態(tài)機(jī)寫法, 一種是移位寄存器寫法,看過一個(gè)面經(jīng),面試官讓手撕一個(gè)?五位01序列的序列檢測,作者用狀態(tài)機(jī)寫的,寫完被批評代碼太復(fù)雜,再寫一個(gè)簡單的方法(也即移位寄存器方法)最后沒寫出來。雖然第二種方法更簡單更好用,但是我們兩種方法都得會。

序列檢測有什么用?

????????如果讓你實(shí)現(xiàn)一個(gè)電子鎖,輸入密碼,密碼正確就開,密碼錯(cuò)誤就不開,你會如何寫代碼?用if-else嵌套嘛,如果第一個(gè)數(shù)對了,再去判斷第二個(gè)數(shù)?

檢測密碼

????????這種方法在輸入密碼位數(shù)比較少的時(shí)候可行,但是如果密碼位數(shù)很多,if-else 被綜合出來就是一個(gè)MUX,如果循環(huán)嵌套很多,那就是級聯(lián)MUX,一連串長的邏輯會有很大的delay,所以這種方法是不可取的。

移位寄存器寫法

????????移位寄存器寫法的序列檢測,會比狀態(tài)機(jī)寫法的簡單很多,只需要給一組寄存器,用來存儲輸入數(shù)據(jù),再和指定序列比較就行了。比如檢測一長一點(diǎn)的序列,序列檢測:1100_1101

????????具體代碼很簡單,代碼如下

代碼:

????????主要思路就是:每周期讀入一個(gè)信號din,然后存入data信號的最低位一個(gè)周期存一位,如果連續(xù)來的八個(gè)信號正好是我們要檢測的序列1100_1101,那么data里存的就是這個(gè)信號,判斷data就和我們要檢測的信號相等。

Testbench:

波形圖:

detect信號檢測到了序列 1100_1101 信號拉高。結(jié)果和我們預(yù)想的一致,但是代碼簡潔了許多,在沒有要求的情況下,手撕代碼就采用這種移位寄存器的方式。

數(shù)字IC手撕代碼-序列檢測(移位寄存器寫法)的評論 (共 條)

分享到微博請遵守國家法律
涪陵区| 长白| 祁门县| 中牟县| 乌鲁木齐市| 来宾市| 色达县| 会泽县| 凯里市| 富民县| 建昌县| 黄陵县| 新津县| 津市市| 姜堰市| 岳阳市| 安图县| 南安市| 嘉禾县| 宁波市| 灌南县| 杨浦区| 界首市| 湖北省| 武功县| 云南省| 民县| 尼勒克县| 保康县| 崇文区| 钟祥市| 四川省| 个旧市| 普陀区| 江源县| 揭东县| 大厂| 密山市| 原平市| 无棣县| 河源市|