移位寄存matlab,8位移位寄存的器的设计.doc

8位移位寄存的器的设计

实验七8位移位寄存器的设计

班级 信息安全2班 姓名 张亮 学号20110806228

一、实验目的

熟悉QuartusⅡ仿真软件的基本操作,并用VHDL语言设计8位移位寄存器。并且掌握组合逻辑电路的功能测试和时序仿真;学会运用逻辑图设计电路。

二、实验内容

用VHDL语言设计由边沿触发式D触发器构成的8位串入并出移位寄存器,并进行仿真与分析;

(查找相应资料)

三、实验原理

逻辑电路的原理

8位移位寄存器的设计

在数字电路中,用来存放二进制数据或代码的电路称为寄存器。寄存器是由具有存储功能的触发器组合起来构成的。一个触发器可以存储一位二进制代码,存放N位二进制代码的寄存器,需用n个触发器来构成。按功能可分为:基本寄存器和移位寄存器。移位寄存器中的数据可以在移位脉冲作用下一次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,串行输入、并行输出,十分灵活,用途也很广。

目前常用的集成移位寄存器种类很多,如74164、74165、74166、74595均为八位单向移位寄存器,74195为四位单向移存器,74194为四位双向移存器,74198为八位双向移存器。

逻辑图如图所示:

逻辑功能表

Inputs输入Outputs输出CLRCLKABQAQB ...QHLXXXLLLHLXXQA0QB0QH0H↑HHHQAnQGnH↑LXLQAnQGnH↑XLLQAnQGn…点击保存按钮保存。

五、实验结果与分析

编译过程

8位移位寄存器的设计

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Verilog 中的移位寄存器加法(Shift-Register Adder)是一种硬件电路,可以将两个二进制数相加。它的工作原理是先将两个二进制数通过移位寄存器进行对齐,然后逐位相加,并将结果存储在一个寄存中。以下是一个简单的 4 位移位寄存器加法的 Verilog 代码: ```verilog module shift_register_adder(input [3:0] a, input [3:0] b, input cin, output [3:0] sum, output cout); reg [3:0] sr; // 移位寄存器 reg [3:0] sra; // 移位寄存器 a reg [3:0] srb; // 移位寄存器 b always @(*) begin sra[0] = a[0]; sra[1] = a[1]; sra[2] = a[2]; sra[3] = a[3]; srb[0] = b[0]; srb[1] = b[1]; srb[2] = b[2]; srb[3] = b[3]; end always @(posedge clk) begin sr <= {sr[2:0], cin}; // 向左移位并将进位信号放到最右边 sum <= sr + sra + srb; // 逐位相加 cout <= sum[4]; // 计算进位信号 end endmodule ``` 在这个代码中,我们首先定义了三个寄存,分别是移位寄存器 sr、移位寄存器 a sra 和移位寄存器 b srb。移位寄存器 sr 用于存储逐位相加的结果,移位寄存器 a 和移位寄存器 b 用于将输入的二进制数进行对齐。 在 always @(*) 块中,我们将输入的二进制数 a 和 b 分别存储到移位寄存器 a 和移位寄存器 b 中。在 always @(posedge clk) 块中,我们首先将移位寄存器 sr 向左移位并将进位信号放到最右边,然后逐位计算相加的结果,并将结果存储到 sum 中。最后,我们计算进位信号并将其存储到 cout 中。 请注意,这个移位寄存器加法只能处理 4 位二进制数。如果需要处理更多位的二进制数,需要相应地修改代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值