Verilog基础之十一、移位寄存器实现

这篇具有很好参考价值的文章主要介绍了Verilog基础之十一、移位寄存器实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前言

二、工程设计

​2.1 工程代码

2.2 综合结果

2.3 仿真结果


一、前言

    移位寄存器SRL在工程中属于使用频率较高个模块,可用于存储数据,实现串并转换;根据数据移动方向可分为左移寄存器,右移寄存器,左移是向数据高位移动,右移是向数据低位移动。 

二、工程设计

​2.1 工程代码

工程中包含了左移,右移,循环移位的设计,输出为8位。左移即输入不断从右边进入,同理,右移为输入不断从左边加入,循环移位此处为右循环,每一次变化都是第一位移到最高位,其他位都右移一位。

module SRL(clk,in,out_l,out_r,out_c,rst );
input clk,in,rst;
output reg [7:0] out_l,out_r,out_c=8'b00011001;
always@(posedge clk or negedge rst)  //左移
begin
if(!rst)
out_l<=8'b0;
else
out_l<={out_l[6:0],in};
end

always@(posedge clk or negedge rst) //右移
begin
if(!rst)
out_r<=8'b0;
else
out_r<={in,out_r[7:1]};
end

always@(posedge clk or negedge rst) //循环移位
begin
if(!rst)
out_c<=8'b00011001;
else
begin
out_c[7]<=out_c[0];
out_c[6:0]<=out_c[7:1];
end
end
endmodule

测试代码如下,使用系统random生成随机数作为输入

`timescale 1ns/1ps
module SRL_tb( );
reg clk,in,rst;
wire [7:0] out_l,out_r,out_c;
initial
begin
clk=0;
in=0;
rst=1;
#50 rst=0;
#100 rst=1;
end
always #1 clk=~clk;
always #2 in={$random}%(2);  //每隔2秒随意生成一次0或1
SRL srl_test(.clk(clk),.in(in),.rst(rst),.out_l(out_l),.out_r(out_r),.out_c(out_c));
endmodule

2.2 综合结果

根据综合结果,左移和右移实现上为位置的对调,循环移位因为无需输入,故综合后只有输出

verilog移位寄存器,Verilog学习笔记,Vivado,FPGA所知所见所解,Verilog,移位寄存器,modelsim

2.3 仿真结果

    ​    ​在红框1所在的时刻,输入in为0,out_l为10011111,out_r为11111001,out_c为10001100。在时钟clk的上升沿到来时,进行移位,左移out_l右边加0变为00111110,右移out_r左边加0变为01111100,out_c循环移位变为01000110。

    ​    ​红框2所在的时刻,输入in为1,在第二个时钟clk的上升沿到来时out_l变为01111101,out_r变为10111110,out_c循环移位变为00100011。符合预期

verilog移位寄存器,Verilog学习笔记,Vivado,FPGA所知所见所解,Verilog,移位寄存器,modelsim文章来源地址https://www.toymoban.com/news/detail-667141.html

到了这里,关于Verilog基础之十一、移位寄存器实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hdlbits系列verilog解答(8位宽移位寄存器)-24

    这项练习是module_shift移位寄存器的延伸。模块端口不是只有单个引脚,我们现在有以向量作为端口的模块,您将在其上附加线向量而不是普通线网数据。与 Verilog 中的其他位置一样,端口的向量长度不必与连接到它的导线匹配,但这会导致向量的零填充或截断。本练习不使用

    2024年02月08日
    浏览(39)
  • 【Verilog编程】线性反馈移位寄存器(LFSR)原理及Verilog代码实现

    移位寄存器 :指若干个寄存器排成一列,每个寄存器中存放1bit二进制数据(0或1),每个时钟周期向左或向右移动一个bit。下图所示为一个向右移动的移位寄存器。 反馈移位寄存器(Feedback Shift Register,FSR) :每个时钟脉冲,移位寄存器向右移动一位,则移位寄存器的左左侧就

    2024年02月15日
    浏览(55)
  • Verilog 实现伪随机数生成器(线性反馈移位寄存器)

    参考文献1 不简单的进行移位,而是在移位的基础上加上异或门,如题目所示,这就相当于每进行一次移位,寄存器中的值会发生改变,一直移动,一直改变,就形成了伪随机数。

    2024年02月09日
    浏览(59)
  • m基于FPGA的桶形移位寄存器verilog实现,包含testbench

    目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1、桶形移位寄存器的基本原理 2.2、桶形移位寄存器的数学模型 2.3、桶形移位寄存器的实现步骤 3.Verilog核心程序 4.完整算法代码文件 本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera 6.6d  Starter Edition 其

    2024年02月04日
    浏览(55)
  • 【FPGA】Verilog:时序电路设计 | 自循环移位寄存器 | 环形计数 | 扭环计数 | 约翰逊计数器

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用IO:Switch :

    2024年02月10日
    浏览(102)
  • 北邮22级信通院数电:Verilog-FPGA(10)第十周实验 实现移位寄存器74LS595

    北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.代码部分  二.管脚分配 三.实现过程讲解及效果 shift_register.v d

    2024年02月05日
    浏览(62)
  • 【FPGA零基础学习之旅#12】三线制数码管驱动(74HC595)串行移位寄存器驱动

    🎉欢迎来到FPGA专栏~三线制数码管驱动 ☆* o(≧▽≦)o *☆ 嗨 ~我是 小夏与酒 🍹 ✨ 博客主页: 小夏与酒的博客 🎈该系列 文章专栏: FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 📜 欢迎大家关注! ❤️ 🥝 ISSP调试演示: 程序配置完成:

    2024年02月09日
    浏览(49)
  • FPGA之移位寄存器

            SLICEM中的LUT可以配置为32位移位寄存器,而无需使用slice中可用的触发器。以这种方式使用,每个LUT 可以将串 行数据延迟 1 到 32 个时钟周期。移入D (DI1 LUT 引脚)和移出 Q31(MC31 LUT 引脚)线路将LUT级联,以形成更大的移位寄存器。因此,SLICEM 中的四个 LUT 被级联以

    2024年02月19日
    浏览(51)
  • LABVIEW的移位寄存器

    移位寄存器是数据的容器,可以包含任何数据类型。 添加移位寄存器后,在循环结构左右两侧的平行位置将各增加一个包含三角形的方框。左侧的方框代表上一次循环的运行结果,而右侧的代表本次循环要输入的结果。  最终得到5次循环后的结果。 接下来我们做一个通过移

    2024年02月11日
    浏览(49)
  • Verilog基础:寄存器输出的两种风格

    相关文章 Verilog基础 https://blog.csdn.net/weixin_45791458/category_12263729.html?spm=1001.2014.3001.5482         Verilog中的寄存器操作一般指的是那些对时钟沿敏感而且使用非阻塞赋值的操作。例如状态机中的状态转移,实际上就是一种寄存器操作,因为这相当于将下一状态的组合逻辑连接至

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包