并串/串并转换在数字电路的设计,特别是在通信接口方面尤为重要,如uart串口协议,iic串口协议都需要用到并串/串并转换,下面我们首先设计一个简单的并转串的电路。
并转串的设计思想是这样的,首先准备好一组寄存器,把需要发送的数据放到这个寄存器里面,然后通过位拼接的移位方式把数据一位一位地发送出去。设计代码如下:
编写测试代码如下:
仿真波形如下所示:
由仿真图可以看出,每次counter计够八个数,sda_buf寄存器恢复原始数据,不断循环,sda按照顺序分别为sda_buf的每一位。由此可知我们设计的并串转换逻辑正确。
接下来,我们需要学习串转并的设计实现技巧,由于我们已经有一个并转串的模块,不断输出串行数据,所以我们可以巧妙的利用这个模块。
我们在测试代码中加入一个串并转换模块,修改测试代码如下:
当标志信号en有效时,sda_reg通过位拼接的方式依次将并串转换模块输出的串行数据sda移入到sda_reg的每一位,从而实现串并转换。
仿真结果:
由仿真图可看到,当标志信号en变为低电平,串并转换刚好结束,所得结果sda_buf的值与并串转换模块待发送的并行数据一致,因此说明逻辑设计正确。