锁存器与寄存器

1. 寄存器
  在实际的数字系统中,通常把能够用来存储一组二进制代码的同步时序逻辑电路称为寄存器.由于触发器内有记忆功能,因此利用触发器可以方便地构成寄存器。由于一个触发器能够存储一位二进制码,所以把n个触发器的时钟端口连接起来就能构成一个存储n位二进制码的寄存器。
2 .  锁存器
       由若干个钟控D触发器构成的一次能存储多位二进制代码的时序逻辑电路。数据有效迟后于时钟信号有效。这意味着时钟信号先到,数据信号后到。在某些运算器电路中有时采用锁存器作为数据暂存器。
 
3. 锁存器与寄存器的区别
(1)寄存器是同步时钟控制,而锁存器是电位信号控制。锁存器一般由电平信号控制,属于电平敏感型。寄存器一般由时钟信号信号控制,属于边沿敏感型。

(2)寄存器的输出端平时不随输入端的变化而变化,只有在时钟有效时才将输入端的数据送输出端(打入寄存器),而锁存器的输出端平时总随输入端变化而变化,只有当锁存器信号到达时,才将输出端的状态锁存起来,使其不再随输入端的变化而变化

   可见,寄存器和锁存器具有不同的应用场合,取决于控制方式以及控制信号 和数据之间的时间关系:若数据有效一定滞后于控制信号有效,则只能使用锁存器;数据提前于控制信号而到达并且要求同步操作,则可用寄存器来存放数据。

 
4. 8位锁存器74LS373
 

 

    Dn 数据输入端 OE 三态允许控制端(低电平有效)LE 锁存允许端 On 输出端

    LE: 当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。

    OE: 当三态允许控制端 OE 为低电平时,O0~O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0~O7 呈高阻态,即不驱动总线

 1 module latch373(le,oe,q,d);
2
3 input le,oe;
4 input [7:0] d;
5 output reg [7:0] q;
6
7 always @(*)
8 begin
9 if(~oe&le)//oe低电平,On正常状态,le高电平
10 q<=d;//O随D
11 else
12 q<=8'bz;
13 end
14
15 endmodule

5. 8位数据寄存器(异步清0) 

  

 1 module regw(dout,din,clk,clr);
2
3 input clk,clr;
4 input [7:0] din;
5 output reg [7:0] dout;
6
7 always @(posedge clk or posedge clr)
8 begin
9 if(clr)//异步清0
10 dout<=0;
11 else
12 dout<=din;
13 end
14
15 endmodule

 

6. 8位移位寄存器

 1 module shiftreg(din,clk,clr,dout);
2
3 input din,clk,clr;
4 output reg [7:0] dout;
5
6 always@(posedge clk)
7 begin
8 if(clr) //同步清0,高电平有效
9 dout<=8'b0;
10 else
11 begin
12 dout<=dout<<1;//输出信号左移一位
13 dout[0]=din;//输入信号补充到输出信号的最低位
14 end
15 end
16
17 endmodule


7. 4位串并转换器

 1 module serialpal(clk,reset,en,in,out);
2
3 input clk,reset,en,in;
4 output reg [3:0] out;
5
6 always @(posedge clk)
7 begin
8 if(reset)
9 out<=4'b0;
10 else if(en)
11 out<={out,in};//拼接运算符
12 end
13
14 endmodule
15
16



  

 

posted on 2011-09-19 20:28  zerine  阅读(5331)  评论(0编辑  收藏  举报

导航