位置:51电子网 » 技术资料 » 存 储 器

FBL-VN1-LL01-0移位寄存器的Verilog建模

发布时间:2019/10/19 16:26:21 访问次数:1636

FBL-VN1-LL01-0在4.6节和5.5节分别介绍了用Verilog描述组合电路和触发器的方法,本节将在前几节的理论和实践基础上讨论时序电路的描述方法。

组合电路可以在逻辑门级通过调用内置的逻辑门元件进行描述,也可以使用数据流描述语句和行为级描述语句进行描述,而触发器通常使用行为级描述语句进行描述。由于时序逻辑电路通常由触发器和逻辑门构成,所以可以将数据流描述语句和行为级描述语句结合起来对它的逻辑功能(即行为)进行描述。下面通过几个例子进行介绍。

移位寄存器的Verilog建模,例6.6.1通过行为级描述语句always描述了一个4位双向移位寄存器,它有两个选择输入端、两个串行数据输人端、4个并行数据输入端和4个并行输出端,完成的功能与图6.5.7所示74HCT194类似。它有5种功能:异步置零、同步置数、左移、右移和保持原状态不变。当清零信号CR跳变到低电平时,寄存器的输出被异步置零;否则,当CR=1时,与时钟信号有关的4种功能由case语句中的两个选择输人信号s1、sO决定(在case后面S1、SO被拼接成2位矢量)。移位由串行输入和3个触发器的输出拼接起来进行描述,

例如:

Q<={Ds1,Q[3:1]|;

         

说明了左移操作,即在时钟信号CP上升沿作用下,将左移输入端Dsl的数据直接传给输出Q[3],而触发器输出端的数据左移1位,Q[3:1]传给Q[2:0](即Q[3]一>Q[2],Q[2]->Q[1],Q[1]一>Q[0]),于是,完成将数据左移1位的操作。注意,例6.6,1中所注释的右移和左移方向与图6.5.7中的逻辑图一致,而与Vem。g描述语句中的排列和移动方向正好相反。后者与一般计算机程序一致(即高位在左,低位在右)。

例6.6.1

//Behavioral description of 1.Jniversal shift register

//see IFig.6.5.7 and rrable 6.5.4

module shift74x194(S1、sO、D、Ds1、Dsr、Q、CP、CR)1

input S1,sO;                  //select inputs

input Dsl,Dsr;                //seria1 Data inputs

input CP,CR;               //Clock and Reset

input[3:OlD;               //Parallel Data input

output[3:0]Q;              //Register output

reg[3:0]Q;

always@(posedge CP or negedge CR)

iF(~CR~)Q <=4’b0000;

else

case({s1,SO})

2’b00:Q(=Q;           //No change

21 bO1:Q(={Q[2:0],Dsr}; //shift right

2’b10:Q(={Dsl,Q[3:1]}; //Shift len

2i b11:Q(=D;           //Para11e1 1oad input

endcase

endmnodule



FBL-VN1-LL01-0在4.6节和5.5节分别介绍了用Verilog描述组合电路和触发器的方法,本节将在前几节的理论和实践基础上讨论时序电路的描述方法。

组合电路可以在逻辑门级通过调用内置的逻辑门元件进行描述,也可以使用数据流描述语句和行为级描述语句进行描述,而触发器通常使用行为级描述语句进行描述。由于时序逻辑电路通常由触发器和逻辑门构成,所以可以将数据流描述语句和行为级描述语句结合起来对它的逻辑功能(即行为)进行描述。下面通过几个例子进行介绍。

移位寄存器的Verilog建模,例6.6.1通过行为级描述语句always描述了一个4位双向移位寄存器,它有两个选择输入端、两个串行数据输人端、4个并行数据输入端和4个并行输出端,完成的功能与图6.5.7所示74HCT194类似。它有5种功能:异步置零、同步置数、左移、右移和保持原状态不变。当清零信号CR跳变到低电平时,寄存器的输出被异步置零;否则,当CR=1时,与时钟信号有关的4种功能由case语句中的两个选择输人信号s1、sO决定(在case后面S1、SO被拼接成2位矢量)。移位由串行输入和3个触发器的输出拼接起来进行描述,

例如:

Q<={Ds1,Q[3:1]|;

         

说明了左移操作,即在时钟信号CP上升沿作用下,将左移输入端Dsl的数据直接传给输出Q[3],而触发器输出端的数据左移1位,Q[3:1]传给Q[2:0](即Q[3]一>Q[2],Q[2]->Q[1],Q[1]一>Q[0]),于是,完成将数据左移1位的操作。注意,例6.6,1中所注释的右移和左移方向与图6.5.7中的逻辑图一致,而与Vem。g描述语句中的排列和移动方向正好相反。后者与一般计算机程序一致(即高位在左,低位在右)。

例6.6.1

//Behavioral description of 1.Jniversal shift register

//see IFig.6.5.7 and rrable 6.5.4

module shift74x194(S1、sO、D、Ds1、Dsr、Q、CP、CR)1

input S1,sO;                  //select inputs

input Dsl,Dsr;                //seria1 Data inputs

input CP,CR;               //Clock and Reset

input[3:OlD;               //Parallel Data input

output[3:0]Q;              //Register output

reg[3:0]Q;

always@(posedge CP or negedge CR)

iF(~CR~)Q <=4’b0000;

else

case({s1,SO})

2’b00:Q(=Q;           //No change

21 bO1:Q(={Q[2:0],Dsr}; //shift right

2’b10:Q(={Dsl,Q[3:1]}; //Shift len

2i b11:Q(=D;           //Para11e1 1oad input

endcase

endmnodule



热门点击

 

推荐技术资料

循线机器人是机器人入门和
    循线机器人是机器人入门和比赛最常用的控制方式,E48S... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式