精华内容
下载资源
问答
  • 四位循环移位寄存器代码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 循环移位寄存器的设计

    千次阅读 2020-12-10 00:06:31
    在Logisim中,构建由4个D触发器构成的4位循环右移移位寄存器,要求上升沿触发,具有异步...移位寄存器(Shift Register)的结构也比较简单,其中的数据可以在移位脉冲作用下依次逐位右移、左移或者循环移位。 ...

    在Logisim中,构建由4个D触发器构成的4位循环右移移位寄存器,要求上升沿触发,具有异步复位功能以及并行数据同步加载功能。

    相关知识
    寄存器(Register)的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
    移位寄存器(Shift Register)的结构也比较简单,其中的数据可以在移位脉冲作用下依次逐位右移、左移或者循环移位。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 使用自己定义的包集合,可以多位一起移动,用QUARTUS II仿真过,结果正确
  • H2.vhd: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_1164.ALL; ENTITY H2 IS PORT(CLK,LOAD,M,RESET: IN STD_LOGIC; DATA: IN STD_LOGIC_VECTOR(7 DOWNTO 0);... Q: OUT STD_lOGIC...
    
    

    H2.vhd:

    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    USE IEEE.STD_LOGIC_1164.ALL;
    ENTITY H2 IS
    	PORT(CLK,LOAD,M,RESET: IN STD_LOGIC;
    							DATA: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
    								Q: OUT STD_lOGIC_VECTOR(7 DOWNTO 0));
    END ENTITY H2;
    ARCHITECTURE HBV OF H2 IS
    BEGIN
    PROCESS(CLK,RESET,M,LOAD)
    VARIABLE Q1 : STD_lOGIC_VECTOR(7 DOWNTO 0);
    BEGIN
    	IF RESET = '0' THEN  --RESET低电平有效
    		Q1 := (OTHERS=>'0');
    	ELSIF CLK'EVENT AND CLK='1' THEN
    		IF LOAD = '1' THEN
    			Q1 := DATA;
    		ELSE 
    			IF M ='1' THEN
    				Q1 := TO_STDLOGICVECTOR(TO_BITVECTOR(Q1) ROL(1));
    			ELSIF M ='0' THEN
    				Q1 := TO_STDLOGICVECTOR(TO_BITVECTOR(Q1) ROR(1));
    			END IF;
    		END IF;
    	END IF;
    	Q<=Q1;
    END PROCESS;
    END ARCHITECTURE HBV;
    

    激励程序:

    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    USE IEEE.STD_LOGIC_UNSIGNED.ALL;
    ENTITY TEST IS
    END ENTITY;
    ARCHITECTURE TEST_H2 OF TEST IS
    COMPONENT H2
    	PORT(CLK,LOAD,M,RESET: IN STD_LOGIC;
    							DATA: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
    								Q: OUT STD_lOGIC_VECTOR(7 DOWNTO 0));
    END COMPONENT;
    SIGNAL DATA:STD_LOGIC_VECTOR(7 DOWNTO 0):="00100111";
    SIGNAL CLK,LOAD,M,RESET: STD_LOGIC;
    SIGNAL Q:STD_LOGIC_VECTOR(7 DOWNTO 0);
    constant CLK_period : time := 20 ns;
    BEGIN
    	UUT:H2 PORT MAP(CLK=>CLK,LOAD=>LOAD,M=>M,RESET=>RESET,DATA=>DATA,Q=>Q);
    PROCESS --进程1
    BEGIN
    CLK<='0'; WAIT FOR CLK_period/2;
    CLK<='1'; WAIT FOR CLK_period/2;
    END PROCESS;
    PROCESS --进程2
    BEGIN
    RESET<='0';
    WAIT FOR 100 NS;
    RESET<='1';
    WAIT;
    END PROCESS;
    PROCESS --进程3
    BEGIN
    M<='0'; WAIT FOR 500 NS;
    M<='1'; WAIT FOR 500 NS;
    END PROCESS;
    LOAD<='0','1' AFTER 990 NS,'0' AFTER 1100 NS;
    END ARCHITECTURE TEST_H2;
    

    仿真结果:
    在这里插入图片描述

    展开全文
  • 100 bit循环移位寄存器 算术移位寄存器 4 bit的右移寄存器设计 先给出一个4位右移寄存器的设计题: Build a 4-bit shift register (right shift), with asynchronous reset, synchronous load, and enable. ...

    目录

    4 bit的右移寄存器设计

    100 bit循环移位寄存器

    算术移位寄存器


    4 bit的右移寄存器设计

    先给出一个4位右移寄存器的设计题:

    Build a 4-bit shift register (right shift), with asynchronous reset, synchronous load, and enable.

    • areset: Resets shift register to zero.
    • load: Loads shift register with data[3:0] instead of shifting.
    • ena: Shift right (q[3] becomes zero, q[0] is shifted out and disappears).
    • q: The contents of the shift register.

    If both the load and ena inputs are asserted (1), the load input has higher priority.

    题目过于简单,直接给出我的设计:

    module top_module(
        input clk,
        input areset,  // async active-high reset to zero
        input load,
        input ena,
        input [3:0] data,
        output reg [3:0] q); 
        
        always@(posedge clk or posedge areset) begin
            if(areset) q <= 0;
            else if(load) q <= data;
            else if(ena) begin
                q <= {1'b0, q[3:1]};    
            end
            
        end
    
    endmodule
    

    100 bit循环移位寄存器

    Build a 100-bit left/right rotator, with synchronous load and left/right enable. A rotator shifts-in the shifted-out bit from the other end of the register, unlike a shifter that discards the shifted-out bit and shifts in a zero. If enabled, a rotator rotates the bits around and does not modify/discard them.

    • load: Loads shift register with data[99:0] instead of rotating.
    • ena[1:0]: Chooses whether and which direction to rotate.
      • 2'b01 rotates right by one bit
      • 2'b10 rotates left by one bit
      • 2'b00 and 2'b11 do not rotate.
    • q: The contents of the rotator.

    Module Declaration

    module top_module(
        input clk,
        input load,
        input [1:0] ena,
        input [99:0] data,
        output reg [99:0] q);

    也很简单,直接给出我的设计:

    module top_module(
        input clk,
        input load,
        input [1:0] ena,
        input [99:0] data,
        output reg [99:0] q); 
        
        always@(posedge clk) begin
            if(load) q <= data;
            else begin
                if(ena == 2'b01) q <= {q[0], q[99:1]};
                else if(ena == 2'b10) q <= {q[98:0], q[99]};
                else ;
            end
        end
    
    endmodule
    

    算术移位寄存器

     

    Build a 64-bit arithmetic shift register, with synchronous load. The shifter can shift both left and right, and by 1 or 8 bit positions, selected by amount.

    An arithmetic right shift shifts in the sign bit of the number in the shift register (q[63] in this case) instead of zero as done by a logical right shift. Another way of thinking about an arithmetic right shift is that it assumes the number being shifted is signed and preserves the sign, so that arithmetic right shift divides a signed number by a power of two.

    There is no difference between logical and arithmetic left shifts.

    • load: Loads shift register with data[63:0] instead of shifting.
    • ena: Chooses whether to shift.
    • amount: Chooses which direction and how much to shift.
      • 2'b00: shift left by 1 bit.
      • 2'b01: shift left by 8 bits.
      • 2'b10: shift right by 1 bit.
      • 2'b11: shift right by 8 bits.
    • q: The contents of the shifter.

    Module Declaration

    module top_module(
        input clk,
        input load,
        input ena,
        input [1:0] amount,
        input [63:0] data,
        output reg [63:0] q); 

    不用看题目,都知道要做什么:

    提示:

    A 5-bit number 11000 arithmetic right-shifted by 1 is 11100, while a logical right shift would produce 01100.

    Similarly, a 5-bit number 01000 arithmetic right-shifted by 1 is 00100, and a logical right shift would produce the same result, because the original number was non-negative.

    module top_module(
        input clk,
        input load,
        input ena,
        input [1:0] amount,
        input [63:0] data,
        output reg [63:0] q); 
        always@(posedge clk) begin
            if(load) q <= data;
            else if(ena) begin
                if(amount == 2'b00) q <= {q[62:0],1'b0};
                else if(amount == 2'b01) q <= {q[55:0],{8{1'b0}}};
                else if(amount == 2'b10) q <= {q[63],q[63:1]};
                else if(amount == 2'b11) q <= {{8{q[63]}},q[63:8]};
            end
            else ;
        end
    
    endmodule
    

     

     

     

     

     

    展开全文
  • 移位寄存器

    2021-07-12 16:31:46
    移位寄存器根据输入是串行还是并行而分为四种类型。串行输入并行输出类型(Serial-In...可以通过互连SISO移位寄存器的输入和输出来构造循环移位寄存器。另外,可以配置多维移位寄存器,并且可以执行更复杂的计算。 ...

    移位寄存器根据输入是串行还是并行而分为四种类型。串行输入并行输出类型(Serial-In,Parallel-Out,SIPO)和并行输入串行输出类型(Parallel-In,Serial-Out,PISO)用于转换串行数据和并行数据。还有串行输入串行输出类型(SISO)和并行输入并行输出类型(PIPO)。还有一个双向移位寄存器,可以改变移位方向。可以通过互连SISO移位寄存器的输入和输出来构造循环移位寄存器。另外,可以配置多维移位寄存器,并且可以执行更复杂的计算。

    展开全文
  • 移位寄存器(逻辑移位、算术移位、循环移位
  • LabVIEW的移位寄存器

    2021-01-19 23:05:03
    循环结构中经常用到一种数据处理方式,即把第i次循环执行的结果作为第i+1次循环的输入,LabVIEW循环结构中的移位寄存器可以实现这种功能。在循环结构框左侧或右侧边框单击鼠标右键,在弹出的快捷菜单中选择“添加...
  • 移位寄存器专题(verilog HDL设计)

    万次阅读 多人点赞 2018-05-19 21:09:11
    移位寄存器简介 分类 4位右移位寄存器工作原理 1、16位右移位寄存器 2、16位左移寄存器 3、串行输入并行输出寄存器 4、并行输入串行输出移位寄存器 移位寄存器简介 移位寄存器内的数据可以在移位脉冲(时钟...
  • 移位寄存器应用

    2013-10-10 13:33:49
    LabVIEW图形化编程,在for循环中利用移位寄存器求4个数的平均值
  • 桶形移位寄存器即循环移位寄存器,在浮点加减运算、压缩/解压缩和图像处理算法中有应用,所以稍微说明下: 例如设计一个8位桶形移位器:8位桶形移位器是有8个数据输入位,8个数据输出位和3个控制输入位的组合逻辑...
  • 在LABVIEW的循环体内,传入和传出通道有隧道和移位寄存器两种方式,并且两者可以很方便的互相替换。其中,移位寄存器必须成对出现,否则会编译错误。如下为隧道输出和移位寄存器输出: 经编译运行后,得到的结果...
  • 循环结构中经常用到一种数据处理方式,即把第i次循环执行的结果作为第i+1次循环的输入,LabVIEW循环结构中的移位寄存器可以实现这种功能。在循环结构框左侧或右侧边框单击鼠标右键,在弹出的快捷菜单中选择“添加...
  • 移位寄存器及其应用

    千次阅读 2020-12-02 23:20:45
    移位寄存器及其应用 15号实验台 移位寄存器移位寄存器及其应用一、实验目的二、 实验原理实验器件:三、实验内容四、思考题 一、实验目的 1、进一步掌握时序逻辑电路的设计步骤和方法; 2、熟悉和了解移位寄存器的...
  • 将数据存储在While循环移位寄存器中 共享变量 在通过网络连接的分布式任务间传递数据 布尔控件的局部变量 具有关联局部变量的布尔控件必须使用开关机械动作 布尔触发动作与局部变量不兼容 移位寄存器 应用...
  • 线性反馈移位寄存器

    千次阅读 2020-03-10 10:47:22
    反馈移位寄存器 移位寄存器是流密码产生密钥流的一个主要组成部分。 GF(2)上一个n级反馈移位寄存器由n个二元寄存器与一个反馈函数f(a1,…,an)组成 a1到an占一个bit,都是一个寄存器 工作方式:首先计算反馈函数...
  • 移位寄存器与流水灯

    2019-01-26 20:14:09
    Verilog写的移位寄存器与流水灯,含三个完整的Quartus II工程文件,shifter是简单移位寄存器,led是手动控制移位流水灯,clock&led;是内部时钟信号控制的流水灯
  • 移位寄存器的实现

    2013-12-09 17:21:14
    移位寄存器的具体实现,我自己写的。 输入几个数,可以自动实现移位。
  • 实验六 移位寄存器及其应用

    千次阅读 2021-05-20 20:37:58
    1、复习有关寄存器的内容,弄懂移位寄存器工作的基本原理。 2、查阅74LS194(或CC40194)的有关资料,熟悉其逻辑功能及引脚排列。 3、绘出实验内容的详细电路图,并拟出实验所需的测试记录表格。 二、实验目的 1、...
  • 一个非常简单的实验,使用移位寄存器和PWM在4位7段显示器上循环显示LED。 硬件组件: Arduino UNO和Genuino UNO× 1 面包板(通用)× 1 德州仪器移位寄存器 - 串行到并行× 1 4位7段通用阳极显示× 1 电阻220欧姆× ...
  • 本文主要讲了一下关于八位移位寄存器vhdl程序设计,希望对你的学习有所帮助。
  • 线性反馈移位寄存器LFSR和循环冗余码CRC0 前言1 数学基础1.1 逻辑异或1.2 模2乘法 和 模2除法2 线性反馈移位寄存器LFSR2.1 抽头和特征多项式3 循环冗余码CRC 0 前言 线性反馈移位寄存器(Linear Feedback Shift ...
  • 画出用74ls194a组成16位双向移位寄存器 从逻辑结构上看,移位寄存器有以下两个显著特征:(1)移位寄存器是由相同的寄存单元所组成。一般说来,寄存单元的个数就是移位寄存器的位数。为了完成不同的移位功能,每个寄存...
  • 移位寄存器的用法

    千次阅读 2016-07-13 19:37:11
    移位寄存器可用于将上一次循环的值传递至下一次循环。如下图所示,移位寄存器以一对接线端的形式出现,分别位于循环两侧的边框上,位置相对。 右侧接线端含有一个向上的箭头,用于存储每次循环结束时的数据。...
  • SPI移位寄存器

    千次阅读 2016-09-03 11:02:00
    spi移位寄存器即是spi的数据寄存器,在stm32中数据手册是这样描述的:
  • labview循环-移位寄存器妙用

    万次阅读 2014-07-22 09:38:17
    While循环 1.While循环是一种结构,它重复执行代码片段直到满足某种条件为止。它可比作传统语言中的Do Loop或Repeat-Until循环。它位于编程→结构→While循环。每个While循环都有一个条件端子和一个重复端子。如...
  • 移位寄存器的设计

    千次阅读 2020-12-10 00:04:20
    在Logisim中,构建由4个D触发器构成的4位右移移位寄存器,要求上升沿触发,具有异步复位功能。 相关知识 寄存器(Register)的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储...
  • verilog 移位寄存器与流水灯

    千次阅读 2019-02-03 16:03:51
    用Verilog写一个简单的多功能移位寄存器,并在移位寄存器的基础上进行修改,利用移位功能形成流水灯的效果 基本的功能如下: 寄存器示意图见下方虚拟面板图 有两种改进方式: 第一种是把最后一个功能改成循环右移,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,399
精华内容 5,759
关键字:

循环移位寄存器