目录

  1. 概述
  2. 基本逻辑门
  3. 组合逻辑电路
  4. 时序逻辑电路
  5. 存储器
  6. 数字逻辑优化
  7. FPGA 设计
  8. 参考资料

1. 概述

数字逻辑设计 是构建 计算机、通信系统、控制系统 等数字设备的基础,主要涉及 二进制运算、逻辑门、组合逻辑、时序逻辑 及 可编程逻辑


2. 基本逻辑门

2.1 基本逻辑门

逻辑门符号真值表
ANDA·B只有 A 和 B 均为 1 时输出 1
ORA+B只要 A 或 B 为 1,则输出 1
NOTA’输入 1 输出 0,输入 0 输出 1
NAND(A·B)’AND 的反向
NOR(A+B)’OR 的反向
XORA ⊕ BA 和 B 不同则输出 1
XNOR(A ⊕ B)’XOR 的反向

示例 Verilog 代码:

module logic_gates(
    input A, B,
    output AND_out, OR_out, NOT_out
);
    assign AND_out = A & B;
    assign OR_out = A | B;
    assign NOT_out = ~A;
endmodule


3. 组合逻辑电路

组合逻辑 是没有时钟控制的电路,主要用于 加法器、比较器、编码器、解码器、MUX(多路复用器) 等。

3.1 加法器

module half_adder(
    input A, B,
    output SUM, CARRY
);
    assign SUM = A ^ B;     // 异或求和
    assign CARRY = A & B;   // AND 求进位
endmodule

3.2 多路复用器(MUX)

module mux2to1(
    input A, B, Sel,
    output Y
);
    assign Y = Sel ? B : A;
endmodule


4. 时序逻辑电路

时序逻辑 依赖 时钟信号(Clock),包括 寄存器、移位寄存器、计数器、状态机 等。

4.1 D 触发器

module d_flipflop (
    input D, clk, rst,
    output reg Q
);
    always @(posedge clk or posedge rst) begin
        if (rst) 
            Q <= 0;
        else 
            Q <= D;
    end
endmodule

4.2 同步计数器

module counter (
    input clk, rst,
    output reg [3:0] count
);
    always @(posedge clk) begin
        if (rst)
            count <= 0;
        else
            count <= count + 1;
    end
endmodule


5. 存储器

5.1 RAM

module ram (
    input clk, we,
    input [3:0] addr,
    input [7:0] din,
    output reg [7:0] dout
);
    reg [7:0] mem [15:0];
    always @(posedge clk) begin
        if (we)
            mem[addr] <= din;
        dout <= mem[addr];
    end
endmodule


6. 数字逻辑优化

  1. 逻辑优化
    • 采用 卡诺图(K-map) 进行最简化
    • 通过 逻辑代数 进行表达式优化
  2. 硬件优化
    • 共享逻辑资源,减少重复计算
    • 流水线设计,提高并行度
  3. 功耗优化
    • 使用 时钟门控 降低功耗
    • 采用 低功耗 FPGA 资源

7. FPGA 设计

  1. 使用 Verilog 进行 RTL 设计
  2. 采用 FPGA IP 核(如 Xilinx、Intel)
  3. 时序分析,确保 Setup/Hold 约束满足
  4. 利用 FPGA DSP 资源优化计算
  5. 通过 HDL 综合工具优化电路(Vivado、Quartus)

8. 参考资料

  1. Digital Design – M. Morris Mano
  2. Xilinx FPGA Handbook
  3. Verilog HDL Guide
  4. FPGA Optimization Techniques