引言
FPGA设计中一旦遇到数据位宽转换的问题,比如外部UART通信送入的数据位宽为8,但是在后续模块使用时可能需要12位宽(1.5倍位宽转换),或者16位宽 (2倍位宽转换)。那么此时大家可能直接想到的就是使用 RAM IP核或者 FIFO IP 核实现位宽转换。但是既然准备写这个博客那肯定是要自己来弄,哈哈。本文基于移位寄存器设计该功能模块,并编写TEST BENCH进行验证。
本文主要是先做整数倍位宽变换的程序(小位宽——>大位宽)。
思路与时序分析
以移位寄存器为基本思路,以8位宽——>24位宽为例:
哈哈,绘图可以说明一切~~,有问题可以在评论区交流呀。
设计
设计文件:
// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- // | // | 功能说明: // | -1- 实现数据位宽转换(