数字逻辑学习笔记05

数字逻辑学习笔记05

exdoubled Lv4

寄存器

寄存器由锁存器和触发器构成,能够存储 n-bits 数据的逻辑电路

大多由 \(D\) 触发器构成,简单可靠

4 位寄存器

每次时钟上升沿,4个输入数据并行预置

预置:将信息传递给寄存器的操作

预置端 load=1 决定哪个时钟预置

预置端 load=0 保持:次态=现态

1
2
3
4
5
6
7
8
9
10
11
12
13
module Reg4Bit2(
input logic clk,
input logic load,
input logic [3:0] D,
output logic [3:0] Q
);
logic [3:0] d;
assign d = Q & {4{~load}} | D & {4{load}};

// D 触发器
always_ff @ (posedge clk)
Q <= d;
endmodule

带输出使能端的寄存器

输出采用三态门控制,适合于挂接在数据总线上

74LS75 寄存器:16引脚4路透明D锁存器

74HC175:CMOS边沿触发4位寄存器

移位寄存器

能对信息进行单向或双向移位操作的寄存器称为移位寄存器。

移位寄存器的逻辑结构包括一串级联的触发器,每个触发器的输出连接到下一个触发器的输入端

串行传输与并行传输

如果数字系统的数据路径每次只传送一位信息,则称它工作在串行方式下

信息从源寄存器移位到目的寄存器中,如果是并行传输,信息的传送是同时进行的

应用:串行传输:每次只传送/移动1位信息

串行加法器:仅用一个全加器

  • 串行速度慢,但器件少
  • 2个加数事先存入寄存器中
  • 进位c反馈到加法器
  • 移位寄存器A保存求和S结果

4位移位寄存器

在同一个时钟上升沿,所有的数值都是同时移位的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module ShiftReg(
input logic clk, clr,
input logic daataIn,
output logic [3:0] q
);

always_ff @ (posedge clk, posedge clr)
begin
if(clr==1) q<=0;
else
begin
q[3] <= dataIn;
q[2:0] <= q[3:1];
end
end
endmodule

通用移位寄存器

如果寄存器既有双向移位,又有并行预置功能,则称这个寄存器为通用移位寄存器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module ShiftReg2
input logic CLK, Clear_b,
input logic sl, s0, // Select inputs
input logic MSB_in, LSB_in,// Serial inputs
input logic [3: 0] I_par,// Parallel input
output logic [3: 0] A_par); // Register output
always_ff @ ( posedge CLK, negedge Clear_b)
if (Clear_b == 0)A_par <= 4'b0000;
else
case ({sl, s0})
2'b00: A_par <= A_par;
2'b01: A_par <= {MSB_in, A_par[3: 1]};
2'b10: A_par <= {A_par[2: 0], LSB_in};
2'b1l: A_par <= I_par;
endcase
endmodule
S1S2功能
000保持
101右移
210左移
311并行输入

74LS194 双向移位寄存器

计数器

对输入(时钟)脉冲信号进行计数[触发器状态组合表示]的时序逻辑电路

广义说,一种能在输入信号作用下依次通过预定状态的时序逻辑电路.

3位 8分频计数器

1
2
3
4
5
6
7
8
9
module Counter3b(
input logic clk, clr,
output logic [2:0] Q
);

always_ff @(posedge clk, posedge clr)
if(clr==1) Q <= 0;
else Q <= Q+1;
endmodule
  • Title: 数字逻辑学习笔记05
  • Author: exdoubled
  • Created at : 2025-12-09 08:00:00
  • Updated at : 2025-12-10 15:47:33
  • Link: https://github.com/exdoubled/exdoubled.github.io.git/szlj/szlj05/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
数字逻辑学习笔记05