杂记
- RTL Register Transfer level
- 时序仿真是最接近真实器件运行特性的仿真。
- 综合器总是能综合出唯一的电路网表文件。然而,在实际的数字电路设计中,这种说法是不准确的。综合器在将高级设计描述(如HDL代码)转换为门级网表时,可以基于不同的优化目标(如速度、面积、功耗等)和综合策略产生不同的网表结果。同一个功能的电路描述,根据不同的综合约束和目标,可能会被综合成不同的电路网表。因此,综合出的网表文件并不唯一。
HDL设计风格
行为级描述
数据流描述
结构描述
顺序描述语句(Sequential Statements)
顺序描述语句是在进程(process)、函数(function)和过程(procedure)中使用的。这些语句按照书写的顺序执行,类似于软件编程中的顺序执行。
构造体中的语句是并行执行的,与书写顺序无关
端口的方向
in out inout BUFFER
variable是局部量,只能在process和子程序里面用?
子程序是什么?
/=是不等于,斜杠向左偏
基于FPGA/CPLD的数字系统设计流程包括:
设计输入、综合、适配、仿真、编程下载。
设计输入 综合 适配 仿真 下载
数据建立时间
在时钟跳变之前数据必须保持稳定无跳边的时间
数据保持时间
在时钟跳变之后数据必须保持稳定的时间
entity
类书参数说明
问题
- 门控时钟?
- 状态机重新复习
- variable singal constant区别与联系
基于VHDL的电路设计
组合逻辑电路:基本门电路、多路选择器、编码器、译码器
时序逻辑电路:时钟信号的边沿检测、同步复位信号和异步复位信号的描述、计数器、状态机(枚举数据类型、多进程)
系统设计:任务分析、功能模块划分、分析各个模块之间的联系、利用上述基本模块来实现各个功能模块。
设计时的其他问题和技巧
HDL语句的可综合性
符合HDL语法规范的代码不一定能够综合成对应电路的设计信息
除法 变字长的循环语句 无线循环语句
FPGA的配置问题
主模式(FPGA主动串行方式) 从模式(FPGA被动方式) JTAG配置方式(ISP)
设计优化方法(面积优化和速度优化);
面积优化
- 可以使用更小规模的FPGA器件,节省成本
- 为日后升级留下更多资源
- FPGA资源使用过多会导致功耗上升
- FPGA布线资源有限,占用资源过多会影响电路性能
速度优化
- 流水线设计,时钟周期不得小于数据从输入到输出经过的时间,系统最高频率取决于延时最小的组合逻辑块
- 寄存器配平。
- 关键路径法(优先使用)
- 乒乓操作法
- 加法数法
数据建立和保持时间的要求;
数据建立时间
在时钟跳变之前,数据必须保持稳定的时间
数据保持时间
在时钟跳变之后数据保持稳定的时间
数据的稳定传输必须同时满足数据建立时间和数据保持时间,应当避开在数据建立时间或在其附近读取数据。
冒险现象和毛刺消除技术;
毛刺消除
- 延时方式
- 逻辑方式
- 定时方式
分别用两个独立的Timer对输入信号的高低电平的持续时间进行技术,大于某个阈值再输出对应高低电平
FPGA设计中时钟的种类和不同时钟的特点及优化方法。
时钟种类
- 全局时钟
- 门控时钟
驱动时钟的逻辑必须只包含一个与门或者一个或门
逻辑门的一个输入作为实际的时钟,逻辑门的所有其他输入必须当成地址或者控制线。 - 多级逻辑时钟
- 行波时钟
一个触发器的输出用作另一个触发器的时钟输入