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

歡迎光臨散文網(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手撕代碼-序列檢測(移位寄存器寫法)的評論 (共 條)

分享到微博請遵守國家法律
雷州市| 江永县| 湘阴县| 昭苏县| 甘孜县| 隆化县| 新余市| 宽甸| 通渭县| 东宁县| 来安县| 兴和县| 南靖县| 祁门县| 根河市| 孝昌县| 威宁| 政和县| 泾源县| 肃宁县| 海安县| 台中县| 兴仁县| 宁波市| 湟源县| 福清市| 婺源县| 蒲江县| 平潭县| 叙永县| 萝北县| 白银市| 南安市| 历史| 织金县| 饶河县| 龙南县| 贡嘎县| 太谷县| 淮安市| 南川市|