EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——并串/串并转换之战 * O7 ]- g2 d; h5 g; ~
8 b n0 C. y4 V4 { W
并串/串并转换在数字电路的设计,特别是在通信接口方面尤为重要,如uart串口协议,iic串口协议都需要用到并串/串并转换,下面我们首先设计一个简单的并转串的电路。 并转串的设计思想是这样的,首先准备好一组寄存器,把需要发送的数据放到这个寄存器里面,然后通过位拼接的移位方式把数据一位一位地发送出去。设计代码如下: ![]()
1 s$ S) A& @9 d% Q. x0 v. D编写测试代码如下: 4 m( l. Y# j; t- ?* v% K( m6 T
仿真波形如下所示:
( ?- t4 c% [, N. z V8 t) N由仿真图可以看出,每次counter计够八个数,sda_buf寄存器恢复原始数据,不断循环,sda按照顺序分别为sda_buf的每一位。由此可知我们设计的并串转换逻辑正确。 接下来,我们需要学习串转并的设计实现技巧,由于我们已经有一个并转串的模块,不断输出串行数据,所以我们可以巧妙的利用这个模块。 我们在测试代码中加入一个串并转换模块,修改测试代码如下: 9 d6 ]0 K$ a. j. h- |
, Y) l! b) b$ U! n, b
当标志信号en有效时,sda_reg通过位拼接的方式依次将并串转换模块输出的串行数据sda移入到sda_reg的每一位,从而实现串并转换。 仿真结果: 2 t) P, z+ v* n+ w& T, R
由仿真图可看到,当标志信号en变为低电平,串并转换刚好结束,所得结果sda_buf的值与并串转换模块待发送的并行数据一致,因此说明逻辑设计正确。
) k1 g6 E+ s3 i8 ^; r |