EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——并串/串并转换之战
& A, s2 q, V2 r3 m1 v. G8 l+ o5 K- ^& s, h' P- W
并串/串并转换在数字电路的设计,特别是在通信接口方面尤为重要,如uart串口协议,iic串口协议都需要用到并串/串并转换,下面我们首先设计一个简单的并转串的电路。 并转串的设计思想是这样的,首先准备好一组寄存器,把需要发送的数据放到这个寄存器里面,然后通过位拼接的移位方式把数据一位一位地发送出去。设计代码如下: ![]() 3 o( n. h3 M+ x! [* B( L/ y0 o
编写测试代码如下: % B! e6 K% b% P" J- i
仿真波形如下所示: 1 s3 ^* N: A" U( o( e
由仿真图可以看出,每次counter计够八个数,sda_buf寄存器恢复原始数据,不断循环,sda按照顺序分别为sda_buf的每一位。由此可知我们设计的并串转换逻辑正确。 接下来,我们需要学习串转并的设计实现技巧,由于我们已经有一个并转串的模块,不断输出串行数据,所以我们可以巧妙的利用这个模块。 我们在测试代码中加入一个串并转换模块,修改测试代码如下:
4 L* x! A4 a9 h! d% ~# |0 o 1 [( S) f& @( u, `
当标志信号en有效时,sda_reg通过位拼接的方式依次将并串转换模块输出的串行数据sda移入到sda_reg的每一位,从而实现串并转换。 仿真结果: " s& c9 @5 A/ G2 C$ n9 h
由仿真图可看到,当标志信号en变为低电平,串并转换刚好结束,所得结果sda_buf的值与并串转换模块待发送的并行数据一致,因此说明逻辑设计正确。
5 N4 y' y+ D6 B: g4 U' I6 W0 R |