Verilog、FPGA学习(一)

第一章 美的设计

1.2美是修养

 文档清晰
设计符合要求
代码书写整洁
验证覆盖全面
环境设计完美
能力日益提升

1.3专业术语

EDA Electronic Design Automation,电子设计自动化
SOC System On Chip,片上系统
ASIC Application Specific Integrated Circuit,专用集成电路
VHDL VHSIC Hardware Description Language,一种硬件描述语言
VSG Verilog Standards Group,Verilog标准化组
IP Intellectual Property,知识产权

ATPG Automatic Test Pattern Genneration,自动生成测试向量
DFT Design For Test,可测性设计
BIST Built-in Self Test,内建自测
BSD Boundary Scan Design,边界扫描测试

DUT Design Under Test,要做测试的设计
RTL Register Transfer Level,寄存器传输级,或者Verilog的可综合子集
FSM Finite State Machine,有限状态机
CGM Clock Generation Module,时钟生成模块

RC Race Condition,竞争条件
LSB Least Significant Bit,最低位
MSB Most Significant Bit,最高位
LHS The Left Hand Side of the equation,表达式左侧
RHS The Right Hand Side of the equation,表达式右侧
BA Blocking Assignment,阻塞赋值
NBA Nonblocking Assignment,非阻塞赋值

STA Static Timing Analysis,静态时钟分析
RTL_SIM 前仿真,RTL仿真
NET_SIM 后仿真,网表仿真
PS_SIM post-synthesis netlist simulation,综合后网表仿真
PL_SIM post-layout netlist simulation,布线后网表仿真

第2章 高效之道

2.1 敏捷开发

敏捷开发强调软件开发应该能够对未来可能出现的变化和不确定性做出全面反应。敏捷开发是一种轻量级的方法,最负盛名的轻量级方法应该是极限编程(Extreme Programming)。重量级方法是与轻量级方法相对应的,它强调以开发过程为中心,而不是以人为中心。

2.2代码质量

代码整洁原则:
1. 好的代码是需要在一定的原则、模式和实践下来保证的。
2. 在遵循一定的原则和模式下,能够使设计人员修改计划、按图索骥、重构代码。
3.整洁的代码只做一件事,意图清晰;糟糕的代码想做太多,意图混乱。
4. 整洁代码是以增量式方式开发出来的,这样可以精炼并结构化代码。
5. 代码的重构在完整的验证下保证。
6. 变量名意义清楚;空行和空格使用得当;逻辑分块清晰;表达式简洁明了。代码能够自我解释,二不用依赖注释。
7.使用注释描述设计意图,但是注释不能代替优秀的代码。
8. 代码简单,便于阅读。
9. 要随时随地地调整代码,让代码始终处于整洁状态,最后达到美好的设计。(切忌拖延症)

2.3版本控制

在项目开发中,要用版本控制(Revision control)统一管理所有的源代码、验证代码和脚本文件。
版本控制是对设计实行全面配置管理的基础,用以保证设计状态的一致性。
版本控制是对设计不同版本进行标识和跟踪的过程。
版本标识的目的是便于对版本加以区分、检索和跟踪,以表明各个版本之间的关系。
版本控制常用软件:CVS、VSS和SVN。

2.4提早集成

代码集成是主要的风险来源,要想规避这个风险,只有提早、持续而有规律地进行集成。成功的集成就意味着系统在不断地通过验证。
提早集成的作用:
1. 可尽早地暴露系统问题,更容易发现系统和模块在设计上的错误。
2. 可推动整个系统的设计,提早展开各项工作,规划时钟、复位和测试等工作,设计综合和时序分析脚本,做出全芯片的管脚列表,做出全芯片效率、功率和面积的分析。
3. 提早集成需要强大的构建系统,编译、仿真和综合的过程都要脚本化和自动化,这样才能把集成的工作变得更容易一些。
4. 提早集成就意味着要使用空模块方法。空模块就是约定好协议和接口,输入信号不关心,输出信号使用默认值,以后用真实模块代替空模块。


                                                     --------《Verilog编程艺术》 魏家明 编著

你可能感兴趣的:(Verilog,FPGA学习)