数字IC手撕代码-串转并、并转串
大家好我是酸菜鱼,这个系列着重讲解数字IC或FPGA实习面试及秋招面试的高频手撕代码题 。
往期手撕代码题:
数字ic手撕代码-导览目录 - 哔哩哔哩 (bilibili.com)
数字IC手撕代码-分频器(任意奇数分频) - 哔哩哔哩 (bilibili.com)
数字IC手撕代码-序列检测(状态机写法) - 哔哩哔哩 (bilibili.com)
数字IC手撕代码-分频器(任意小数分频) - 哔哩哔哩 (bilibili.com)
......
完全内容,请前往导览目录查看。
串并转换:
串转并的使用环境非常多,在接口处用到最多,在某些模块的输入仅允许串行输入时,而总线上的数时并行的,那就需要通过串并转换,把并行的数据转换成串行的数据,包括在输出的时候,需要把串行的数据转换成并行的数据,才能送到总线中,使用方法都是用一个计数器来计数实现 。
1.串转并
用一个计数器count,每输入8个数,就输出一次,每周期输入的数存入dout_temp的低位。
代码:

Testbench:


看这波形,真漂亮!
2.并转串:
并转串的原理和串转并差不多,
代码:

Testbench:

波形:

由此我们就实现了串并转换,其中valid信号表示有效信号,当输入有效的时候,输入的valid信号就拉高,输出有效的时候,输出valid就拉高,这有利于我们看波形,同时也有利于模块和外部通信。