1、FPGA结构
其采用了逻辑单元陈列的概念,内部包括:可配置逻辑模块CLB、输出输入模块IOB、内部连线。
2、软核、硬核以及固核的概念
IP核(Intellectual Property core)是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体中工艺中。
软核(soft IP core):软核在EDA设计领域指的是综合之前的寄存器传输级(RTL)模型;具体在FPGA设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。
固核(Firm IP core):在FPGA设计中可以看做带有布局规划的软核,通常以RTL代码和对应具体工艺网表的混合形式提供。
硬核(Hard IP core):在FPGA设计中,指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。
3、FPGA是可编程芯片,因此FPGA的设计方法包括硬件设计和软件设计两部分。
4、FPGA设计采取“自顶向下”的设计理念:系统级设计→二级单元→...→基本模块或IP核
5、布局布线:利用实现工具,把逻辑映射到目标器件结构的资源中,即将综合生成的逻辑网表配置到具体的FPGA芯片上。
6、FPGA器件选型有以下7个原则:
- 器件的供货渠道和开发工具的支持;
- 器件的硬件资源:逻辑资源、I/O资源、布线资源、DSP资源、存储器资源、 锁相环资源、串行收发器资源和硬核微处理器资源等。
- 器件的电气接口标准;
- 器件的速度等级;
- 器件的温度登记;
- 器件的封装和器件的价格。
7、保持时间:不要让CLK和输入对齐。
8、Verilog HDL模块可以分为两种类型:一种是为了让模块最终能生成电路的结构;另一种只是为了测试所设计电路的逻辑功能是否正确。
9、如果不用initial块,是否能产生测试时钟?不能。
10、initial块和always块有什么不同?initial执行一次,不可综合;always循环执行,可综合。
11、verilog的基本设计单元是“模块”。
即定义输入是如何影响输出的。
12、Verilog程序包括4个主要部分:端口定义、I/O说明、内部信号声明、功能定义。
13、采用“assign”语句是描述组合逻辑最常用的方法之一,而“always”块既可用于描述组合逻辑,也可用于描述时序逻辑。
14、在数字电路中,X表示不定值,Z代表高阻值。
15、在一个模块中改变另一个模块的参数时,需要使用defparam命令。
16、网络数据类型wire或tri表示结构实体(例如门)之间的物理连接。网络类型的变量不能储存值,而且它必须受到驱动器(例如门或连续赋值语句)的驱动。如果没有驱动器连接到网络类型的变量上,则该变量就是高阻的。
reg类型数据的默认初始值为不定值X。
2020.09.26 本笔记皆来自夏宇闻《verilog数字系统设计教程》