精华内容
下载资源
问答
  • 移位寄存器内的数据可以在移位脉冲(时钟信号)的作用下依次左移或右移。移位寄存器不仅可以存储数据,还可以用来实现数据的串并转换、分频,构成序列码发生器、序列码检测器,进行数值运算以及数据处理等,它也是...

    1 概念

    移位寄存器内的数据可以在移位脉冲(时钟信号)的作用下依次左移或右移。移位寄存器不仅可以存储数据,还可以用来实现数据的串并转换、分频,构成序列码发生器、序列码检测器,进行数值运算以及数据处理等,它也是数字系统中应用非常广泛的时序逻辑部件之一。

    有四种不同类型的移位寄存器可用数据输入和输出设备的方式不同:

    串行输入,串行输出

    串行输入,并行输出

    并行输入,串行输出

    并行输入,并行输出
    在这里插入图片描述
    右移位寄存器的特点是右边寄存器的次态等于左边触发器的现态。串行输出数据从触发器FD的QD端输出,并行数据从个触发器的QA~QD端输出,两种输出方式都属于同向输出。各触发器都采用同一时钟信号,所以它们工作在同步状态。如果将FD的输出端QD接到FA的输入端DI,则可以构成循环移位的右移位寄存器。

    右移寄存器

    并行输入串行输出

    module right_shift_pin_sout(
        clk    ,
        rst_n  ,
        //其他信号,举例dout
        sout,
        pin    
        );
    
        //参数定义
        parameter      DATA_W =         4;
        parameter    CNT_W=2;
    
        //输入信号定义
        input               clk    ;
        input               rst_n  ;
        input [DATA_W-1: 0] pin    ;
    
        //输出信号定义
        output  sout   ;
    
    
    
        //中间信号定义
        reg[CNT_W-1: 0]     cnt    ;
        wire [DATA_W-1: 0]   D    ;
    
        reg [DATA_W-1: 0]   Q    ;
        //计数
        always@(posedge clk or negedge rst_n)begin
            if(rst_n==1'b0)begin
                cnt<=0;
            end
            else begin
                if(cnt==DATA_W-1)begin
                    cnt<=0;
                end
                else begin
                    cnt<=cnt+1;
                end
             end
        end
        //D
        assign D=(cnt==0)?pin:4'b0;
        assign sout=Q[3];
        //sout
        always  @(posedge clk or negedge rst_n)begin
            if(rst_n==1'b0)begin
                sout<=0;
            end
            else begin
                sout<=Q[3];
            end
        end
    //Q
        always  @(posedge clk or negedge rst_n)begin
            if(rst_n==1'b0)begin
                Q<=0;
            end
            else if(cnt==0)begin
                Q<=D;
            end
            else begin
                Q[3:1]<=Q[2:0]; 
            end
        end
    
    
    
        endmodule
    
    
    

    tb

     `timescale 1 ns/1 ns
    
    module testbench_name();
    parameter      DATA_W =         4;
    parameter    CNT_W=2;
    //时钟和复位
    reg clk  ;
    reg rst_n;
     
    wire sout;  
    reg[DATA_W-1: 0]  pin ; 
            //时钟周期,单位为ns,可在此修改时钟周期。
            parameter CYCLE    = 20;
    
            //复位时间,此时表示复位3个时钟周期的时间。
            parameter RST_TIME = 3 ;
    
            //待测试的模块例化
            right_shift_pin_sout 
            #(.DATA_W(DATA_W),.CNT_W(CNT_W))  uut(
           .clk    (   clk    ), 
           .rst_n  (   rst_n  ), 
           .sout   (  sout   ),
           .pin    (   pin    ) 
                )  ;  
            
    
                //生成本地时钟50M
                initial begin
                    clk = 0;
                    forever
                    #(CYCLE/2)
                    clk=~clk;
                end
    
                //产生复位信号
                initial begin
                    rst_n = 1;
                    #2;
                    rst_n = 0;
                    #(CYCLE*RST_TIME);
                    rst_n = 1;
                end
    
                //输入信号pin赋值方式
                initial begin
                    #1;
                    //赋初值
                    pin =4'b1111;
                    #(9*CYCLE);
                    pin=4'b1000;
                    #(9*CYCLE);
                    pin=4'b0010;
                    #(9*CYCLE);
                    pin=4'b0001;
                    //开始赋值
    
                end
    
    endmodule
    
    
    
    展开全文
  • 1 Verilog描述 module shift_p2s( input clk, input [7:0] din, input load, output reg q ); reg [7:0] tmp; always@(posedge clk)begin if(load == 1...

    1 Verilog描述

    module shift_p2s(
        input         clk,
        input [7:0]    din,
        input         load,
        output reg     q
    );
        reg [7:0] tmp;
        
        always@(posedge clk)begin
            if(load == 1'b1)
                tmp <= din;
            else begin
                q <= tmp[7];
                tmp <= {tmp[6:0],1'b0};
            end
        end

    endmodule

    2 RTL视图

    3 功能仿真

    展开全文
  • 并行存取的移位寄存器的设计

    千次阅读 2020-12-10 00:08:14
    在Logisim中,构建由4个D触发器构成的4位并行存取的移位寄存器,要求: 1.具有异步复位功能; 2.能够并行数据同步加载、并行输出(基本寄存); 3.能够右移串行输入、右移串行输出(移位寄存); 4.能够右移串行输入...

    在Logisim中,构建由4个D触发器构成的4位并行存取的移位寄存器,要求:
    1.具有异步复位功能;
    2.能够并行数据同步加载、并行输出(基本寄存);
    3.能够右移串行输入、右移串行输出(移位寄存);
    4.能够右移串行输入、并行输出(串并转换);
    5.能够并行输入、右移串行输出(并串转换)。

    相关知识
    寄存器(Register)的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
    并行存取的移位寄存器的结构相对要复杂一些,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出。如下图所示。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 8 位串行输入输出或者并行输出移位寄存器 74HC595芯片 英文资料
  • 要求实现 带进位的循环左移 循环左移 带进位的循环右移 循环右移,采用系统50MHz,用分频分至1Hz,并用一个输入实现控制寄存方式。
  • 74HC165驱动程序 74HC165并行输入串行输出移位寄存器的简单AVR驱动程序
  • 1 Verilog描述 module shift_s2s( input din, input clk, output reg dout ); reg tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,...//串行输入串行输出移位寄存器 /*8位移位寄存器由8个D触发器串联构成,在时钟 信号的作用...

    1 Verilog描述

    module shift_s2s(
        input         din,
        input         clk,
        output reg     dout
    );

        reg tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7;
        
    //串行输入串行输出移位寄存器
    /*8位移位寄存器由8个D触发器串联构成,在时钟
    信号的作用下,前一级的数据向后移动*/

        always@(posedge clk)begin
            tmp1 <= din;
            tmp2 <= tmp1;
            tmp3 <= tmp2;
            tmp4 <= tmp3;
            tmp5 <= tmp4;
            tmp6 <= tmp5;
            tmp7 <= tmp6;
            dout <= tmp7;
        end

    endmodule

    2 RTL级视图

    3 功能仿真

    展开全文
  • 8 位串行输入输出或者并行输出移位寄存器 74HC595芯片 中文资料.rar
  • 本关任务:在Logisim中,构建由4个D触发器构成的4位循环右移移位寄存器,要求上升沿触发,具有异步复位功能以及并行数据同步加载功能。 相关知识???? 寄存器(Register)的功能是存储二进制代码,它是由具有存储功能...
  • 四位循环移位寄存器代码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 要求设计一个具有同步清零、并行输出的8位逻辑左移移位寄存器,(高位为左,低位为右,)其引脚名称和逻辑功能如下表所示。 library ieee; use ieee.std_logic_1164.all; entity L_shifter8 is port ( clk,clr,si...
  • 按照传统的串行输入/并行输出寄存器来解决,不考虑满时钟域到快时钟域的同步打拍问题。 源代码: module chuan_bing( input clka,clkb,//clka串行输入时钟,clkb并行输出时钟 input da,//串行输入数据 input ...
  • 面向可重构并行化处理的线性反馈移位寄存器统一架构研究
  •  在数字电路中,移位寄存器(英语:shift register)是一种在若干相同时间脉冲下工作的触发器为基础的器件,数据以并行或串行的方式输入到该器件中,然后每个时间脉冲依次向左或右移动一个比特,在输出端进行输出。...
  • 题: 试用D触发器和必要的门电路(或最小数量的中规模集成电路芯片)设计两位串行输入并行输出双向移位寄存器. 寄存器有X、K两个输入端, K控制移位方向, X输入数据. K=0时, 寄存器数据从高位移向低位, X往寄存器高位...
  • VHDL 含并行置位的移位寄存器,使用VHDL语言
  • 移位寄存器

    2020-12-09 01:57:52
    移位寄存器是暂时存放数据的部件,同时它还具有移位功能。 一、特点和分类 从逻辑结构上看,移位寄存器...移位寄存器的数据输入方式有串行输入并行输入之分。串行输入就是在时钟脉冲作用下,把要输入的数据从一个
  • 移位寄存器专题(verilog HDL设计)

    万次阅读 多人点赞 2018-05-19 21:09:11
    4、并行输入串行输出移位寄存器 移位寄存器简介 移位寄存器内的数据可以在移位脉冲(时钟信号)的作用下依次左移或右移。移位寄存器不仅可以存储数据,还可以用来实现数据的串并转换、分频,构成序列码发生器、...
  • 对于串入并出移位寄存器以下是我个人的理解和实际开发工程中得出的经验。一个8位串入数据输入, 8位并行输出。可以看出先移的是高位,就是第一个位进去的到最后会在最高位。
  • 寄存器与移位寄存器(数字电路)

    千次阅读 2021-06-12 22:23:29
    寄存器的功能: 暂时存放计算机的数据或者指令。 基本构成: D触发器 0 时钟上升沿 0 1 1 ...
  • 实验六 移位寄存器及其应用

    千次阅读 2021-05-20 20:37:58
    1、复习有关寄存器的内容,弄懂移位寄存器工作的基本原理。 2、查阅74LS194(或CC40194)的有关资料,熟悉其逻辑功能及引脚排列。 3、绘出实验内容的详细电路图,并拟出实验所需的测试记录表格。 二、实验目的 1、...
  • 1 串转并功能,通过移位寄存器输出锁存器实现 2 FPGA需要通过74HC595这个芯片把16位的数据(sel+seg)变为并行端口用来驱动数码管 3 3.3V供电情况下,取SHCP时钟频率位12.5MHz(50-20ns,25-40ns,12.5-80ns),让...
  • 串行工作模式之同步移位寄存器输入输出方式 主要用于扩展并行输入或输出口。数据有RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接受均为8位数据。低位在前,高位在后。 //串行口...
  • 51实现74HC165并行转串行输出
  •  【例】 用VHDL语言设计一个8位的移位寄存器,使其具有左移一位或右移一位、并行输入和同步复位的功能,并使用MAX+p1us Ⅱ进行仿真。  仿真结果如图所示。  如图 移位寄存器SHIFT_REG的仿真图 :
  • LFSR主要用于通信加扰解...线性反馈移位寄存器(LFSR)是内测试电路中最基本的标准模块结构,既用作伪随机测试码产生器,也作为压缩测试结果数据的特征分析器。 一个n阶的LFSR由n个触发器和若干个异或门组成。在实际...
  • [EDA]8位双向移位寄存器的设计

    千次阅读 2019-06-30 00:05:59
    设计一个8位双向移位寄存器,实现并行输入数据、数据左移、右移、清空数据的功能。 设计要求 (1)可以并行置数(用4位拨码开关置数两次得到8位数据); (2)并行输出(8个led显示)功能; (3)具有双向移位输出...
  • 基于VHDL移位寄存器程序设计

    千次阅读 2020-04-23 17:43:36
    该实验设计的是串行输入并行输出的左移位寄存器,由顶层文件模块及D触发器模块组成。 实验内容 (1) 用VHDL编写移位寄存器源程序。 (2) 将源程序进行综合、优化及功能仿真。 (3)软件说明:ModelSimSetup-13.1.0.162,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,451
精华内容 2,980
关键字:

并行输入并行输出移位寄存器