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

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

數(shù)字IC手撕代碼-泰凌微筆試真題

2022-09-16 16:00 作者:不吃蔥的酸菜魚(yú)  | 我要投稿


以上是泰凌微公司的筆試真題,手撕一個(gè)代碼,題目描述如下:

????????假設(shè)每個(gè)clock cycle輸入是一個(gè)3-bit數(shù)據(jù)信號(hào),現(xiàn)在需要按次序整形成5-bit數(shù)據(jù)信號(hào)輸出,并給出valid信號(hào)。其中LSB First,請(qǐng)用Verilog/VHDL給出代碼。

sample data:

輸入:000,110,011,011,010,010,011...? ?即:(000|11 0|011 |0 11|010|010|01 1)

輸出:00011,00110,11010,01001,1...? ? ?即:(000 11|0 011? 0|11010| 010 01|1)


????????該題目,仔細(xì)閱讀就會(huì)發(fā)現(xiàn),序列都是同一條序列,分割方式不同;說(shuō)白了其實(shí)就是一個(gè)位寬轉(zhuǎn)換題,然后加握手信號(hào)。實(shí)現(xiàn)一個(gè)含握手的3-5bit的位寬轉(zhuǎn)換模塊。這個(gè)題目,華子也考過(guò)類(lèi)似的,或者說(shuō)很多公司愛(ài)考這玩意。

下面解釋下,題目中出現(xiàn)的概念

1、LSB(Least Significant Bit)--最低有效位

? ? LSB代表二進(jìn)制中最小的單位,可以用來(lái)指示數(shù)字很小的變化。也就是說(shuō),LSB是一個(gè)二進(jìn)制數(shù)字中的第0位(即最低位),具有權(quán)值為2^0,可以用來(lái)檢測(cè)數(shù)的奇偶性。

2、MSB(Most Significant Bit)--最高有效位

? ? MSB代表一個(gè)n位二進(jìn)制數(shù)字中的n-1位,具有最高的權(quán)值2^(n-1).對(duì)于有符號(hào)的二進(jìn)制數(shù),負(fù)數(shù)采用反碼或補(bǔ)碼形式,此時(shí)MSB用來(lái)表示符號(hào),msb為1表示負(fù)數(shù),0表示正數(shù)。

????????好的,解釋完概念,題目的意思就非常明白了,實(shí)現(xiàn)一個(gè)含有握手信號(hào)3-5 bit位寬轉(zhuǎn)換器,輸入為3bit,輸出5bit,且輸入的3bit從低位開(kāi)始排,即輸入000,110時(shí),第一個(gè)5bit輸出的是000 11,而不是10 000,也就是題目說(shuō)的LSB First。

思路分析

? ? ? ? ① 輸入第一個(gè)3bit,無(wú)法輸出;

????????② 輸入第二個(gè)3bit,此時(shí)存數(shù)6bit,可以輸出一次5bit,余下1bit;valid=1;

? ? ? ? ③ 輸入第三個(gè)3bit,此時(shí)由于輸出過(guò)一次5bit,余下1bit,加上這第三次輸入的3bit,此時(shí)存數(shù)4bit,無(wú)法輸出;

????????④ 輸入第四個(gè)3bit,此時(shí)存數(shù)7bit,可以輸出一次5bit,余下2bit;valid=1;

????????⑤ 輸入第五個(gè)3bit,此時(shí)存數(shù)5bit,可以輸出一次5bit,存數(shù)為0bit,狀態(tài)循環(huán)可回到初始狀態(tài)。valid=1;

????????顯然每五次輸入是一個(gè)輪回,這是因?yàn)?5bit是3bit和5bit 的最小公倍數(shù),因此每輸入15/3=5次,就輸出15/5=3次。如此反復(fù)循環(huán)。

????????根據(jù)分析我們看到,輸出有效的時(shí)間點(diǎn)是第二次輸入后、第四次輸入后、第五次輸入后,因此我們可以用一個(gè)計(jì)數(shù)器counter來(lái)作為valid信號(hào)的判據(jù),當(dāng)計(jì)數(shù)器為2、4、5時(shí),valid都拉高即可。理清思路,代碼就很好寫(xiě)了。

代碼:

計(jì)數(shù)器,來(lái)計(jì)入總共輸入了幾次3bit數(shù)據(jù):

當(dāng)輸入第二次、第四次、第五次時(shí),valid信號(hào)拉高:

????????case語(yǔ)句內(nèi)的作用是將數(shù)據(jù)進(jìn)行移位。因?yàn)樽疃嗲闆r下是存儲(chǔ)7bit數(shù)據(jù),然后輸出5bit,所以存儲(chǔ)輸入數(shù)據(jù)的空間只需要7bit就夠了。用7bit 的 data_store來(lái)存儲(chǔ)輸入數(shù)據(jù);

第一次輸入的3bit數(shù)據(jù)存儲(chǔ)在data_store的高3位,不輸出5bit數(shù)據(jù);

第二次輸入的3bit數(shù)據(jù)存儲(chǔ)在data_store的高4-6位。此時(shí),valid信號(hào)拉高,然后輸出5bit 數(shù)據(jù) data_out 等于data_store的高5bit即可;

第三次輸入的3bit數(shù)據(jù),讓data_store左移三位,然后存儲(chǔ)在低三位,不輸出5bit數(shù)據(jù);

第四次輸入的3bit數(shù)據(jù),讓data_store左移三位,然后存儲(chǔ)在低三位,此時(shí)7bit空間存滿(mǎn),因?yàn)檫M(jìn)行了兩次“左移三位”,所以此時(shí)7bit數(shù)據(jù)的最高位,就是原來(lái)7bit數(shù)據(jù)的最低位,也就是在第二次輸入數(shù)據(jù)時(shí),存儲(chǔ)6bit輸出5bit后,剩下的那1bit數(shù)據(jù)。再輸出高5bit數(shù)據(jù);余2bit

低五次輸入的3bit數(shù)據(jù),與上一階段余下的2bit數(shù)據(jù),湊5bit,放在data_store的高5位,輸出。

tb:整個(gè)testbench部分的激勵(lì),就按照題目的意思生成。

仿真波形:

輸入:000,110,011,011,010,010,011...? ?即:(000|11 0|011 |0 11|010|010|01 1)

輸出:00011,00110,11010,01001,1...? ? ?即:(000 11|0 011? 0|11010| 010 01|1)

每次輸出數(shù)據(jù)時(shí),valid信號(hào)有效,如波形所示。

ps:由于b站截圖顯示不全,up將完整代碼傳至網(wǎng)盤(pán)自取,總計(jì)代碼量60行左右,題目難度:簡(jiǎn)單。

代碼自取

鏈接:https://pan.baidu.c刪除中文om/s/1KpAE1cQLNa8刪除中文S5b2rZuqDFg?

提取碼:91m5?



數(shù)字IC手撕代碼-泰凌微筆試真題的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
连州市| 孟州市| 固阳县| 宜昌市| 望都县| 尖扎县| 阳山县| 兰州市| 漯河市| 白沙| 纳雍县| 枣庄市| 许昌市| 贞丰县| 徐闻县| 资兴市| 石嘴山市| 高尔夫| 乐安县| 墨脱县| 文山县| 诸暨市| 雷州市| 玉门市| 政和县| 五台县| 肥西县| 桐柏县| 灵武市| 北安市| 大丰市| 喀喇| 安顺市| 云安县| 汨罗市| 东乌珠穆沁旗| 休宁县| 鲜城| 佛坪县| 平顶山市| 昭通市|