精华内容
下载资源
问答
  • 串行/并行转换的具体过程如下:转换前,RC端加低电平,使1、2两片寄存器的内容清0,此时S1S0=11,寄存器执行并行输入工作方式。当第一个CP脉冲到来后,寄存器的输出状态Q0~Q7为01111111,与此同时S1S0变为01,转换...

    串行/并行转换的具体过程如下:

    转换前,RC端加低电平,使1、2两片寄存器的内容清0,此时S1S0=11,寄存器执行并行输入工作方式。当第一个CP脉冲到来后,寄存器的输出状态Q0~Q7为01111111,与此同时S1S0变为01,转换电路变为执行串入右移工作方式,串行输入数据由1片的SR端加入。随着CP脉冲的依次加入,输出状态的变化可列成表7-3所示。

    由表7-3可见,右移操作七次之后,Q7变为0,S1S0又变为11,说明串行输入结束。这时,串行输入的数码已经转换成了并行输出了。

    当再来一个CP脉冲时,电路又重新执行一次并行输入,为第二组串行数码转换作好了准备。

    ②并行/串行转换器

    并行/串行转换器是指并行输入的数码经转换电路之后,换成串行输出。

    图7-4是用两片CC40194(74LS194)组成的七位并行/串行转换电路,它比图7-3多了两只与非门G1和G2,电路工作方式同样为右移。

    寄存器清“0”后,加一个转换起动信号(负脉冲或低电平)。此时,由于方式控制S1S0为11,转换电路执行并行输入操作。当第一个CP脉冲到来后,Q0Q1Q2Q3Q4Q5Q6Q7的状态为0D1D2D3D4D5D6D7,并行输入数码存入寄存器。从而使得G1输出为1,G2输出为0,结果,S1S2变为01,转换电路随着CP脉冲的加入,开始执行右移串行输出,随着CP脉冲的依次加入,输出状态依次右移,待右移操作七次后,Q0~Q6的状态都为高电平1,与非门G1输出为低电平,G2门输出为高电平,S1S2又变为11,表示并/串行转换结束,且为第二次并行输入创造了条件。转换过程如表7-4所示。

    中规模集成移位寄存器,其位数往往以4位居多,当需要的位数多于4位时,可把几片移位寄存器用级连的方法来扩展位数。

    展开全文
  • 按照传统的串行输入/并行输出寄存器来解决,不考虑满时钟域到快时钟域的同步打拍问题。 源代码: module chuan_bing( input clka,clkb,//clka串行输入时钟,clkb并行输出时钟 input da,//串行输入数据 input ...

    题目如下:用Verilog 设计一个接口转换电路,接口timing如下图所示,假设clka频率为clkb频率的两倍(不同源,注意图中clock关系仅为示意),且两次有效访问(wra_n)的间隔时间足够长。

     方法一

    按照传统的串行输入/并行输出寄存器来解决,不考虑满时钟域到快时钟域的同步打拍问题。

    源代码:

    module chuan_bing(
    
    	input clka,clkb,//clka串行输入时钟,clkb并行输出时钟
    	input da,//串行输入数据
    	input rst_n,//异步复位低电平有效
    	input wra_n,//输入使能低电平有效
    	
    	output [7:0]db,//并行输出
    	output reg[2:0] cnt,//计数器:记录da输入的次数,从0计数,满7,wrb有效,输出并行数据
    	output reg wrb//输出
    );
    	reg [7:0]db_reg;
    //	reg wra_1,wra_2;
    	assign db = (wrb)?(db_reg):8'hxx;//如果wrb有效,则db输出寄存器的值,否则输出0;
    	
    	//a时钟域
    	//串行数据输入及存储
    	always @(posedge clka, negedge rst_n) begin
    		if(!rst_n) begin//如果复位,输出为0,计数器清零
    			cnt <= 'b0;
    			db_reg <= 8'hxx;
    		end
    		else if(!wra_n) begin//只在wra_n为0时 才计数
    			cnt <= cnt + 'b1;
    			db_reg <= {db_reg[6:0],da};
    		end
    	end
    	
    	//并行数据输出
    	//快时钟域到慢时钟域需要打拍
    	always @(posedge clkb, negedge rst_n) begin
    		if(!rst_n)
    			wrb <= 'b0;
    		else if(wra_n && cnt=='b0) begin//wrb只在cnt计满值并溢出,且wra_n无效时输出
    			wrb <= 'b1;
    			cnt <= 'bxxx;
    		end
    		else if(wrb)//只让wrb有效一个周期,即输出只输出一个周期
    			wrb <= 'b0;
    	end
    	
    /*	always @(posedge clkb) begin
    		wra_1 <= wra_n;
    		wra_2 <= wra_1;
    	end*/
    	
    endmodule

    测试代码:

    `timescale 1ns/1ns
    module tb_chuan_bing;
    
    	reg clka,clkb,da,rst_n,wra_n;
    	wire [7:0] db;
    	wire [2:0] cnt;
    	wire wrb;
    	
    chuan_bing U1(
    	.clka(clka),
    	.clkb(clkb),
    	.da(da),
    	.rst_n(rst_n),
    	.wra_n(wra_n),
    	.db(db),
    	.cnt(cnt),
    	.wrb(wrb)
    );
    	initial begin
    		clka = 0;
    		clkb = 0;
    		rst_n = 0;
    		#5 rst_n = 1;
    	end
    	
    			always begin 
    			#10 clkb = ~clkb;
    			end
    			always begin 
    			#5 clka = ~clka;
    			end
    
    	
    	initial 
    		begin
    			wra_n = 1;
    			#5 wra_n = 0;
    			
    			da = 1;#10;
    			da = 1;#10;
    			da = 0;#10;
    			da = 0;#10;
    			da = 0;#10;
    			da = 0;#10;
    			da = 1;#10;
    			da = 1;#10;
    			da = 'bx;
    			wra_n = 1;
    			#100;
    			$stop;
    		end
    
    endmodule

    仿真结果:

     仅从波形图上来看,实现了基本功能,但是没有考虑异步时钟域问题。


    方法二

     源代码

    module chuan_bing(
    
    	input clka,clkb,//clka串行输入时钟,clkb并行输出时钟
    	input da,//串行输入数据
    	input wra_n,//输入使能低电平有效
    	output reg wra_n_reg1, wra_n_reg2,
    	output [7:0]db,//并行输出
    	output wrb//输出
    );
    	reg [7:0]db_reg = 0;
    //	reg wra_1,wra_2;
    
    	
    	//a时钟域
    	//串行数据输入及存储
    	always @(posedge clka) begin
    		if(!wra_n) begin//只在wra_n为0时 才计数
    			db_reg <= {db_reg[6:0],da};
    		end
    	end
    	
    	//并行数据输出
    	//快时钟域到慢时钟域需要打拍
    	//reg wra_n_reg1, wra_n_reg2;
    	always @(posedge clkb) begin
    		wra_n_reg1 <= wra_n ;
    		wra_n_reg2 <= wra_n_reg1 ;
    	end
    	
    	
    	wire wra_n_check ; 
    	assign wra_n_check = wra_n_reg1 &&(!wra_n_reg2); //异或亦可以
    	assign wrb = wra_n_check ; 
    	assign db = (wra_n_check == 1'b1) ? db_reg : 0;
    
    	
    endmodule

     仿真代码:

    `timescale 1ns/1ns
    module tb_chuan_bing;
    	reg clka ;
    	reg wra_n;
    	reg da ;
    	reg clkb ;
    	wire [7:0] db ;
    	wire wrb ;
    	wire wra_n_reg1, wra_n_reg2;
    
    	initial begin
    		clka  = 0 ;
    		#3 ;
    		clkb  = 0 ; 
    	end
    	initial begin
    		wra_n = 1 ;
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 1;
    
    	end
    always #5 clka = ~clka ; 
    always #10 clkb = ~clkb ; 
    
    
    chuan_bing my_chuan_bing (
    	.clka(clka) ,
    	.wra_n(wra_n),
    	.da(da) , 
    	.clkb(clkb) ,
    	.db(db) , 
    	.wrb(wrb),
    	.wra_n_reg1(wra_n_reg1), 
    	.wra_n_reg2(wra_n_reg2)
    );
    
    
    endmodule

    仿真结果:

    展开全文
  • 本关任务:在Logisim中,构建由4个D触发器构成的4位循环右移移位寄存器,要求上升沿触发,具有异步复位功能以及并行数据同步加载功能。 相关知识???? 寄存器(Register)的功能是存储二进制代码,它是由具有存储功能...

    欢迎来到数电专题🍿🌭

    循环移位寄存器

    任务描述🍕🥯
    本关任务:在Logisim中,构建由4个D触发器构成的4位循环右移移位寄存器,要求上升沿触发,具有异步复位功能以及并行数据同步加载功能。
    相关知识🍔
    寄存器(Register)的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
    移位寄存器(Shift Register)的结构也比较简单,其中的数据可以在移位脉冲作用下依次逐位右移、左移或者循环移位。

    🍤🍤🍤🍤🍤🍤🍤🍤🍤🍤🍤🍤🍤🍤🍤
    引脚说明
    信号 I/O 位宽 说明
    Clock 输入 1 位 时钟脉冲,上升沿有效
    Reset 输入 1 位 异步复位端:Reset=1时复位,Q=0,Out=0
    Load 输入 1 位 并行数据同步加载控制端:Load=1并行加载,Load=0循环右移
    Din 输入 4 位 并行数据输入端:Load=1,Clock↑时Q=Din
    Out 输出 1 位 右移数据输出端

    在这里插入图片描述

    并行存取的移位寄存器的设计

    任务描述🥗🥗
    本关任务:在Logisim中,构建由4个D触发器构成的4位并行存取的移位寄存器,要求:
    1.具有异步复位功能;
    2.能够并行数据同步加载、并行输出(基本寄存);
    3.能够右移串行输入、右移串行输出(移位寄存);
    4.能够右移串行输入、并行输出(串并转换);
    5.能够并行输入、右移串行输出(并串转换)。
    相关知识🥪🥪
    寄存器(Register)的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
    并行存取的移位寄存器的结构相对要复杂一些,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出。如下图所示。

    psr

    此时,触发器的D端有两个数据来源(串行输入和并行输入),用一个二选一选择器即可,而nshift/Load就是选择信号!

    在这里插入图片描述
    欢迎订阅本专题学习更多只是噢~~

    在这里插入图片描述

    展开全文
  • 移位寄存器

    千次阅读 2020-12-29 09:08:06
    (5) 保持:寄存器予置任意4位二进制数码abcd,令=1,S1=S0=0,加CP脉冲,...1.实现数据的串、并行转换(1)串行输入、并行输出按图8-3-3-3接线,进行右移串入、并出实验,串入数码自定;改接线路用左移方式实现并...

    (5) 保持:寄存器予置任意4位二进制数码abcd,令=1,

    S1=S0=0,加CP脉冲,观察寄存器输出状态,记录之。

    2、环形计数器

    自拟实验线路用并行送数法予置寄存器为某二进制数码(如0100),然后进行右移循环,观察寄存器输出端状态的变化,记入表8-3-3-6中。

    1.实现数据的串、并行转换

    (1)串行输入、并行输出按图8-3-3-3接线,进行右移串入、并出实验,串入数码自定;改接线路用左移方式实现并行输出。自拟表格,记录之。

    (2)并行输入、串行输出

    按图8-3-3-4接线,进行右移并入、串出实验,并入数码自定。再改接线路用左移方式实现串行输出。自拟表格,记录之。

    表8-3-3-6 环形计数器功能测试表

    五、实验报告

    1、在对CC40194进行送数后,若要使输出端改成另外的数码,是否一定要使寄存器清零?

    2、使寄存器清零,除采用输入低电平外,可否采用右或左移的方法?可否使用并行送数法?若可行,如何进行操作?

    3、若进行循环左移,图8-3-3-4接线应如何改接?

    4、分析表8-3-3-4的实验结果,总结移位寄存器CC40194的逻辑功能并写入表格功能总结一栏中。

    5、分析串/ 并、并/ 串转换器所得结果的正确性。

    展开全文
  • 简述寄存器种类及其功能

    千次阅读 2021-03-22 10:48:46
    说起寄存器可能你暂时没有印象,但是提到CPU,即使是没有计算机基础的人也知道一些,而寄存器(Cache)是中央处理器(CPU)的重要...按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两大类。基本寄存器只能并行
  • 目录摘要 .................................................................................................................................... 11 多功能双向移位寄存器 .....................................
  • 串行FIR实现 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Create Date: 2021/03/13 17:28:28 // Design Name: FIR滤波器全串行结构实现仿真 /...
  • /* 名称:串行数据转换为并行数据说明:串行数据由 RXD 发送给串并转换芯片 74164,TXD 则用于输出移位时钟脉冲,74164 将串行输入的 1 字节转换为并行数据,并将转换的数据通过 8 只 LED 显示出来。本例串口工作...
  • 目录摘要..................................................................................................................................................11多功能双向移位寄存器...........................
  • 具有串行=转并功能,通过移位寄存器和输出锁存器实现。驱动开发板上的8位数码管。 FPGA需要通过74HC595这个芯片把16位的数据(SEL + SEG)变为并行端口用来驱动数码管 74HC595的波形图 如图可知: 输入数据DS,先...
  • 1.串行口方式0应用编程 8051单片机串行口方式0为移位寄存器方式,外接一个串入并出的移位寄存器,就能扩展一个并行口。例:用8051单片机串行口外接CD4094扩展8位并行输出口,如图所示,8位并行口的各位都接一个发光...
  • 2021考研408计算机组成原理:串行加法器和并行加法器2020-01-14 20:05|考研集训营统考408中的计算机组成原理,在试卷中所占45分。因此,备考2021计算机考研学子们,一定要一丝不苟地认真复习该科目知识。下面,文都...
  • 尤其是计算机产业的日新月异,作为计算机一个非常重要的部件——移位寄存器,从最早只能简单的左右移动功能的寄存器到现在广泛应用的具有寄存代码、实现数据的串行并行转换、数据运算数据处理功能的移位寄存...
  • 运算器arithmetic unit计算机中执行各种算术逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较传送等操作,亦称算术逻辑部件(ALU)。计算机运行时,...
  • 寄存器是由触发器组成的,一个触发器...1缓冲寄存器它是用来暂存某个数据,以便在适当的时间节拍给定的计算步骤将数据输入或输出到其它记忆单元中去,下图是一个并行输入、并行输出的4位缓冲器的电路原理图,它由...
  • 移位寄存器在实验中的应用.pdf· 24· 实验科学与技术 2007年12月移位寄存器在实验中的应用’孙 红”(电子科技大学电子工程学院,成都 610054)摘要:移位寄存器是用来寄存二进制数字信息,并能将存储的信息移位的...
  • 数据寄存器(USART_DR)数据寄存器USART_DR的DR[8:0]包含了发送或接收...RDR寄存器提供了输入移位寄存器和内部总线之间的并行接口。(移位寄存器:它里面的数据可以在移位脉冲作用下一次逐位右移或左移)状态寄存器(USAR...
  • 实验六 移位寄存器及其应用

    千次阅读 2021-05-20 20:37:58
    1、掌握中规模4位双向移位寄存器的逻辑功能测试使用方法。 2、学会移位寄存器的应用,如实现数据的串/并转换、构成环形计数器等。 三、实验原理 1、移位寄存器 寄存器是一种用于寄存在二进制数码或指令的时序逻辑...
  • 寄存器电路

    2021-07-28 06:44:41
    在数字电路系统工作过程中,把正在处理的二进制数据或代码暂时存储起来的操作叫做寄存,寄存器电路就是实现寄存功能的电路,是数字逻辑电路的基础模块。[1]中文名寄存器电路外文名register circuit拼音jì cún qì ...
  • RobeiEDA 8位移位寄存器

    2021-01-12 21:23:27
    其中data_indata_out为8bit,set为3bit,通过不同的set值来确定移动的位数。 二、shift module核心代码 编译后生成.v文件 三、测试模块shift_test 新建测试文件,保存在同一目录下后将module模块移入再连线,...
  • 中间寄存器、描述字寄存器、B寄存器。1、中间寄存器:其长度为 128 位,其通过操作数来决定实际长度。IR 在“进栈并取数”指令中发挥重要作用,在执行该指令过程中,将ACC的内容发送于IR,之后将操作数取到ACC,后将...
  • VHDL主要用于描述数字系统的结构,行为,功能接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工...
  • NXP-74HC595移位寄存器

    2021-09-13 20:31:16
    74HC595移位寄存器
  • 描述在51单片机内部一个CPU用来运算、控制,四个并行I/O口,分别是P0、P1、P2、P3,ROM,用来存放程序,RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。...
  • 寄存器与移位寄存器(数字电路)

    千次阅读 2021-06-12 22:23:29
    寄存器的功能: 暂时存放计算机的数据或者指令。 基本构成: D触发器 0 时钟上升沿 0 1 1 ...
  • 实验七-八 寄存器堆实验姓名:陈衍席 学号:1205110125 ...【实验目的】本次实验要求掌握触发器的基本原理,掌握寄存器和寄存器堆的组成原理。【实验要求】本次实验只需要设计并实现8位触发器和32位触发器。【实验原...
  • 了解移位寄存器的使用—实现数据的串行并行转换构成环形计数器。 二、实验原理介绍 1、移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能...
  • 1、8位并行数据输入转串行数据输出,采用移位方式,代码如下: module shift ( clk,rst_n, din,dout ); parameter Num=8; output dout; //串行数据输出 ... //并行数据寄存器 reg [2:0]cnt; //右移

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,447
精华内容 10,178
关键字:

寄存器有串行和并行寄存器