赞
踩
设计目的
要求掌握8位移位寄存器原理,并根据原理设计8位移位寄存器模块以及设计相关testbench,最后在Robei可视化仿真软件进行功能实现和仿真验证。
设计准备
有一个8比特的数据(初值设为10011100)和一个移位设置数据s,根据s的值不同,产生不同的移位。这里规定移位的方向是向右,由于是8比特,因此s的变化范围为0到7。
(1)新建一个模型命名为shift,类型为module,同时具备5个输入和1个输出,每个引脚的属性和名称参照图4-1-1进行对应的修改。
(2)添加代码。点击模型下方的 Code添加代码。
代码:
always@(posedge clk or negedge clr)
begin: shift_reg
if(clr)
data_out <= 8’b0;
else if(en)
begin
case(set[2:0])
3’b0: data_out <= data_in[7:0];
3’b1: data_out <= {data_in[0],data_in[7:1]};
3’d2: data_out <= {data_in[1:0],data_in[7:2]};
3’d3: data_out <= {data_in[2:0],data_in[7:3]};
3’d4: data_out <= {data_in[3:0],data_in[7:4]};
3’d5: data_out <= {data_in[4:0],data_in[7:5]};
3’d6: data_out <= {data_in[5:0],data_in[7:6]};
3’d7: data_out <= {data_in[6:0],data_in[7]};
default: data_out <= data_in[7:0];
endcase
end
end
(3)保存模型到一个文件夹(文件夹路径不能有空格和中文)中,运行并检查有无错误输出。
(1)新建一个具有5个输入和1个 输出的shift_test测试文件,记得将Module Type设置为“testbench”,各个引脚配置如图4-1-3所示。
(2)另存为测试文件。将测试文件保存到上面创建的模型所在的文件夹下。
(3)加入模型。在 Toolbox工具箱的 Current栏里会出现模型,单击该模型并在shift _test上添加,并连接引脚,如下图4-1-4所示:
(4)输入激励。点击测试模块下方的“Code”,输入激励算法。激励代码在结束的时候要用$finish 结束。
测试代码:
initial begin
clock=0;
clr=0;
en=1;
data=8’b10011100;
set=0;
#1 clr=1;
#2 clr=0;
#4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。