实例七— 8位移位寄存器的设计

本篇博客详细介绍了如何使用Robei工具设计一个8位移位寄存器,包括模型设计、测试文件设计和约束文件设计。通过VIVADO进行后端设计和板级验证,最终在开发板上验证了8位移位寄存器的正确性。
摘要由CSDN通过智能技术生成

实例七 8位移位寄存器的设计(基于Robei工具的8位移位寄存器的设计)

4.1.1. 本章导读

设计目的
要求掌握8位移位寄存器原理,并根据原理设计8位移位寄存器模块以及设计相关testbench,最后在Robei可视化仿真软件进行功能实现和仿真验证。
设计准备
有一个8比特的数据(初值设为10011100)和一个移位设置数据s,根据s的值不同,产生不同的移位。这里规定移位的方向是向右,由于是8比特,因此s的变化范围为0到7。

4.1.2. 设计流程

1. shift模型设计

(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)保存模型到一个文件夹(文件夹路径不能有空格和中文)中,运行并检查有无错误输出。

2. shift_test测试文件设计

(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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值