推荐答案
测试一下
题目
2.4 至简设计
参考答案与知识点
参考答案
至简设计法(明德扬)倡导FPGA设计中最简资源、最规范结构。核心是使用统一计数器模板:always@(posedge clk or negedge rst_n) if (!rst_n) cnt <= 0; else if (add_cnt) begin if (end_cnt) cnt <= 0; else cnt <= cnt + 1; end。计数器的启动(add_cnt)和结束(end_cnt)用wire定义,实现各种时序功能。例如边沿检测:设计一个计数器,当输入信号为高时add_cnt有效,end_cnt为1时输出一个时钟高电平脉冲并清零。此方法避免使用组合逻辑,减少毛刺。状态机推荐单进程写法,将状态转移和输出合在一个always块中,代码简洁且避免竞争。易错点:复位信号缺失导致初始状态不定;add_cnt和end_cnt逻辑不完整造成计数器死锁;组合逻辑输出可能产生毛刺,应使用时序赋值。至简设计不仅适用于简单模块,也推广到复杂系统,如串口、SPI等,强调代码可读性和复用性。
涉及知识点
- 至简设计法核心思想
- 计数器设计模板
- 状态机单进程写法
- 边沿检测实现
- 时序逻辑输出避免毛刺