數(shù)字IC手撕代碼-串轉(zhuǎn)并、并轉(zhuǎn)串
????????大家好我是酸菜魚(yú),這個(gè)系列著重講解數(shù)字IC或FPGA實(shí)習(xí)面試及秋招面試的高頻手撕代碼題 。?
往期手撕代碼題:?
數(shù)字ic手撕代碼-導(dǎo)覽目錄 - 嗶哩嗶哩 (bilibili.com)
數(shù)字IC手撕代碼-分頻器(任意奇數(shù)分頻) - 嗶哩嗶哩 (bilibili.com)
數(shù)字IC手撕代碼-序列檢測(cè)(狀態(tài)機(jī)寫法) - 嗶哩嗶哩 (bilibili.com)
數(shù)字IC手撕代碼-分頻器(任意小數(shù)分頻) - 嗶哩嗶哩 (bilibili.com)
......
完全內(nèi)容,請(qǐng)前往導(dǎo)覽目錄查看。
串并轉(zhuǎn)換:
????????串轉(zhuǎn)并的使用環(huán)境非常多,在接口處用到最多,在某些模塊的輸入僅允許串行輸入時(shí),而總線上的數(shù)時(shí)并行的,那就需要通過(guò)串并轉(zhuǎn)換,把并行的數(shù)據(jù)轉(zhuǎn)換成串行的數(shù)據(jù),包括在輸出的時(shí)候,需要把串行的數(shù)據(jù)轉(zhuǎn)換成并行的數(shù)據(jù),才能送到總線中,使用方法都是用一個(gè)計(jì)數(shù)器來(lái)計(jì)數(shù)實(shí)現(xiàn)?。???
1.串轉(zhuǎn)并
用一個(gè)計(jì)數(shù)器count,每輸入8個(gè)數(shù),就輸出一次,每周期輸入的數(shù)存入dout_temp的低位。
代碼:

Testbench:


????????看這波形,真漂亮!
2.并轉(zhuǎn)串:
????????并轉(zhuǎn)串的原理和串轉(zhuǎn)并差不多,
代碼:

Testbench:

波形:

????????由此我們就實(shí)現(xiàn)了串并轉(zhuǎn)換,其中valid信號(hào)表示有效信號(hào),當(dāng)輸入有效的時(shí)候,輸入的valid信號(hào)就拉高,輸出有效的時(shí)候,輸出valid就拉高,這有利于我們看波形,同時(shí)也有利于模塊和外部通信。