数字集成电路设计核心考点与 Verilog 实战指南

一、 核心理论:填空与简答的高频区

  1. IC 基础概念

    • 摩尔定律:集成电路上可容纳的元器件数目,约每 18-24 个月便会增加一倍 11。

    • 自顶向下(Top-Down)设计:从系统级描述开始,经过行为描述、RTL 描述,最终到物理实现 222。

    • EDA 工具:在现代数字设计中,Vivado 并非简单的编辑器,而是集成电路全生命周期的综合平台 33。

  2. 关键步骤定义

    • 综合(Synthesis):将 HDL 代码转换为与具体器件无关的门级网表,关注逻辑功能和初步优化 44。

    • 实现(Implementation):将网表映射到 FPGA 物理资源,包含翻译、映射、布局布线 55。

    • 比特流文件(.bit):FPGA 烧写配置的核心二进制文件,用于初始化芯片内部的逻辑资源和布线开关 66。


二、 重点实验 1:层次化设计(全加器)

考点直达:大纲"第三层次化设计(15分)"。核心在于理解模块调用(例化)。

1. 逻辑原理

半加器:实现两个二进制位 A、B 求和,不带低位进位。和 Sum = A ^ B,进位 Carry = A & B 。

全加器:由两个半加器和一个或门组成 8。它处理当前位 A、B 和低位进位 C_{in},输出最终和 Sum 与高位进位 Carry 。

  1. 标准代码实现

    // 半加器底层模块
    module half_adder(
    input A, B,
    output Sum, Carry
    );
    assign Sum = A ^ B; // 异或实现求和
    assign Carry = A & B; // 与运算实现进位
    endmodule

    // 全加器顶层模块(层次化集成)
    module full_adder(
    input A, B, Cin,
    output Sum, Carry
    );
    wire Sum1, Carry1, Carry2; // 中间线网

    复制代码
     // 实例化第一级半加器:计算 A+B
     half_adder u1 (.A(A), .B(B), .Sum(Sum1), .Carry(Carry1));
     
     // 实例化第二级半加器:计算 (A+B)+Cin
     half_adder u2 (.A(Sum1), .B(Cin), .Sum(Sum), .Carry(Carry2));
    
     // 最终进位:两级进位进行或运算
     assign Carry = Carry1 | Carry2;

    endmodule


三、 重点实验 2:时序逻辑与非阻塞赋值(4 级串行寄存器)

考点直达:大纲"综合题(40分)"。重点考查异步复位、时钟边沿触发及数据"打拍"延迟。

1. 设计要点

移位逻辑:数据在每个时钟上升沿向后传递一级,4 级串联可实现"延迟 4 拍"输出 111111。

赋值原则 :时序逻辑必须使用非阻塞赋值(<=),以模拟触发器同时采样的物理特性 12121212。组合逻辑(如 MUX 或译码器)则使用阻塞赋值(=) 13131313。

  1. 标准代码实现

    module shift_reg(
    input sys_clk, // 时钟
    input sys_rst_n, // 异步复位,低电平有效
    input a, // 串行输入
    output y // 延迟输出
    );
    reg a_reg1, a_reg2, a_reg3, a_reg4;

    复制代码
     // 响应时钟上升沿和复位下降沿
     always @(posedge sys_clk or negedge sys_rst_n) begin
         if (!sys_rst_n) begin
             // 异步复位清零
             {a_reg1, a_reg2, a_reg3, a_reg4} <= 4'b0;
         end else begin
             // 数据逐级移位
             a_reg1 <= a;
             a_reg2 <= a_reg1;
             a_reg3 <= a_reg2;
             a_reg4 <= a_reg3;
         end
     end
    
     assign y = a_reg4; // 最后一级输出

    endmodule


四、 进阶考点:SoC 与 IP 核(PLL)

考点直达:大纲"第四 15分"。重点在于理解 PLL 的功能及 IP 核的复用。

  1. SoC(片上系统):在单一芯片上集成处理器、存储器、I/O 等众多功能电路 15。

  2. IP 核:预先定义、经验证、可重复使用的功能模块,是构成 SoC 的基本单元 16。

  3. PLL(锁相环)

    • 核心功能:实现时钟倍频、分频、相位偏移和优化时钟抖动(Jitter) 17。

    • 关键信号locked 信号拉高表示 PLL 输出时钟已稳定,是数字逻辑安全复位的关键前提 18。


五、 考前避坑小贴士

  • 组合逻辑死区 :在编写 always @(*) 块时,若忘记 default 或写错赋值符号,易产生竞争冒险 19191919。

  • 约束文件(XDC):端口(Port)必须通过 XDC 绑定到芯片物理引脚(Pin),否则代码无法驱动硬件 20202020。

  • 仿真优化 :在处理大型计数器时,可使用宏定义(如 ```define SIMULATION``)缩短计数周期以提高验证效率 21。

相关推荐
明德扬9 小时前
K7+AD9144 多模式实测|8 种 JESD204B 配置全覆盖验证
fpga开发
xyx-3v18 小时前
SOC相对于版上系统的优势是什么?
fpga开发
Aaron15882 天前
RFSOC+VU13P+GPU 在6G互联网中的技术应用
大数据·人工智能·算法·fpga开发·硬件工程·信息与通信·信号处理
stars-he2 天前
基于 Design Compiler 的 UDP Payload 追加控制模块综合与门级后仿真
笔记·fpga开发·udp
尤老师FPGA2 天前
HDMI数据的接收发送实验(十)
fpga开发
逻辑诗篇2 天前
破核拆解:PCIE719——基于Xilinx Zynq UltraScale+的高性能SAS扩展卡设计
fpga开发·架构
逻辑诗篇2 天前
高性能存储扩展利器|PCIE719 基于Zynq UltraScale+的企业级可编程SAS方案
fpga开发
liuluyang5303 天前
SV主要关键词详解
fpga开发·uvm·sv
happyDogg_3 天前
验证环境采样rtl时序数据遇到的问题
fpga开发
unicrom_深圳市由你创科技3 天前
项目分析和FPGA器件选型外包服务包括哪些内容?别让选错芯片毁了整个项目
fpga开发