用移位寄存器实现序列发生器

一、序列发生器电路图

基本部件全部采用lpm定制。
lpm_shift为右移位寄存器,为了直观的仿真和在数码管上显示,
用左移位寄存器是更好的选择。

序列发生器

序列发生器

 

lpm_shift是LPM定制的7位右移位寄存器,带串入串出和并入并出。
load端为置数端,当load端为1时,寄存器置数,并行输出为data[6..0],当load无效,即load为0时,右
移位输出,具体过程如下:假设data[6..0]为 1110010,右移入0,则序列右端(q[0])依次被弹出
(shiftout即为q[0]端,即q[0]端产生串行输出序列),序列为 0100111。
当移入7个0时,经band7到load端输入为1,则寄存器置数,q[6..0]重新置数为data[6..0],开始下一轮
序列。注:q[6..0]是data[6..0]依次右移0的序列,并非所求序列并行输出,如果要接数码管,需再接一
个串入并出移位寄存器。
仿真测试如下:

序列发生器仿真

序列发生器仿真

 

 

 

正确生成了0100111序列。

关于band:
band2真值表:

band2真值表

即只有输入全为0时输出才为1,这样就会出现问题,考虑序列0000011(生成序列为1100000,更一般的情况:生成序列最后一位位0时,此时应考虑移入1而不是0),当右移入2个0时,就已经是全0了,此时经band7输出为1,即load开始置数,不能得到预定序列:

 

序列发生器

序列发生器

修改电路图如下:

修改后序列发生器

修改后序列发生器

仿真结果:

仿真结果

仿真结果

消除置数延时的修改电路:

修改后电路

修改后电路

修改后电路仿真结果:

修改后仿真

修改后仿真

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注