EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——并串/串并转换之战
* G }4 E1 z8 l6 o6 z& d6 ?# |. ?# p& ?7 Z% P% b$ O
并串/串并转换在数字电路的设计,特别是在通信接口方面尤为重要,如uart串口协议,iic串口协议都需要用到并串/串并转换,下面我们首先设计一个简单的并转串的电路。 并转串的设计思想是这样的,首先准备好一组寄存器,把需要发送的数据放到这个寄存器里面,然后通过位拼接的移位方式把数据一位一位地发送出去。设计代码如下: ![]() " F( Y. T# e* S; g
编写测试代码如下:
: [; ^8 J( l) @" ^# z( G( K仿真波形如下所示:
1 ]3 m4 h) ~8 Q; [由仿真图可以看出,每次counter计够八个数,sda_buf寄存器恢复原始数据,不断循环,sda按照顺序分别为sda_buf的每一位。由此可知我们设计的并串转换逻辑正确。 接下来,我们需要学习串转并的设计实现技巧,由于我们已经有一个并转串的模块,不断输出串行数据,所以我们可以巧妙的利用这个模块。 我们在测试代码中加入一个串并转换模块,修改测试代码如下:
) m; J0 l. T5 v, Y. B , n& P" E2 Z5 Y1 x
当标志信号en有效时,sda_reg通过位拼接的方式依次将并串转换模块输出的串行数据sda移入到sda_reg的每一位,从而实现串并转换。 仿真结果: ; |+ H; o& d) y: q5 Q
由仿真图可看到,当标志信号en变为低电平,串并转换刚好结束,所得结果sda_buf的值与并串转换模块待发送的并行数据一致,因此说明逻辑设计正确。 2 B% E1 U) v9 y
|