寄存器传输级设计
集成电路设计常常在寄存器传输级上进行, 利用硬件描述语言来描述数字集成电路的信号储存以及信号在寄存器、存储器、组合逻辑装置和总线等逻辑单元之间传输的情况 。 在设计寄存器传输级代码时, 设计人员会将系统定义转换为寄存器传输级的描述 。 设计人员在这一抽象层次最常使用的两种硬件描述语言是Verilog、VHDL, 二者分别于1995年和1987年由电气电子工程师学会(IEEE)标准化 。 正由于有着硬件描述语言, 设计人员可以把更多的精力放在功能的实现上, 这比以往直接设计逻辑门级连线的方法学(使用硬件描述语言仍然可以直接设计门级网表, 但是少有人如此工作)具有更高的效率 。
设计验证
设计人员完成寄存器传输级设计之后, 会利用测试平台、断言等方式来进行功能验证, 检验项目设计是否与之前的功能定义相符, 如果有误, 则需要检测之前设计文件中存在的漏洞 。 现代超大规模集成电路的整个设计过程中, 验证所需的时间和精力越来越多, 甚至都超过了寄存器传输级设计本身, 人们设置些专门针对验证开发了新的工具和语言 。
例如, 要实现简单的加法器或者更加复杂的算术逻辑单元, 或利用触发器实现有限状态机, 设计人员可能会编写不同规模的硬件描述语言代码 。 功能验证是项复杂的任务, 验证人员需要为待测设计创建一个虚拟的外部环境, 为待测设计提供输入信号(这种人为添加的信号常用“激励”这个术语来表示), 然后观察待测设计输出端口的功能是否合乎设计规范 。
当所设计的电路并非简单的几个输入端口、输出端口时, 由于验证需要尽可能地考虑到所有的输入情况, 因此对于激励信号的定义会变得更加复杂 。 有时工程师会使用某些脚本语言(如Perl、Tcl)来编写验证程序, 借助计算机程序的高速处理来实现更大的测试覆盖率 。 现代的硬件验证语言可以提供一些专门针对验证的特性, 例如带有约束的随机化变量、覆盖等等 。 作为硬件设计、验证统一语言, SystemVerilog是以Verilog为基础发展而来的, 因此它同时具备了设计的特性和测试平台的特性, 并引入了面向对象程序设计的思想, 因此测试平台的编写更加接近软件测试 。 诸如通用验证方法学的标准化验证平台开发框架也得到了主流电子设计自动化软件厂商的支持 。 针对高级综合, 关于高级验证的电子设计自动化工具也处于研究中 。
逻辑综合
工程师设计的硬件描述语言代码一般是寄存器传输级的, 在进行物理设计之前, 需要使用逻辑综合工具将寄存器传输级代码转换到针对特定工艺的逻辑门级网表, 并完成逻辑化简 。
和人工进行逻辑优化需要借助卡诺图等类似, 电子设计自动化工具来完成逻辑综合也需要特定的算法(如奎因-麦克拉斯基算法等)来化简设计人员定义的逻辑函数 。 输入到自动综合工具中的文件包括寄存器传输级硬件描述语言代码、工艺库(可以由第三方晶圆代工服务机构提供)、设计约束文件三大类, 这些文件在不同的电子设计自动化工具包系统中的格式可能不尽相同 。 逻辑综合工具会产生一个优化后的门级网表, 但是这个网表仍然是基于硬件描述语言的, 这个网表在半导体芯片中的走线将在物理设计中来完成 。
选择不同器件(如专用集成电路或者现场可编程门阵列等)对应的工艺库来进行逻辑综合, 或者在综合时设置了不同的约束策略, 将产生不同的综合结果 。 寄存器传输级代码对于设计项目的逻计划分、语言结构风格等因素会影响综合后网表的效率 。 大多数成熟的综合工具大多数是基于寄存器传输级描述的, 而基于系统级描述的高级综合工具还处在发展阶段 。
猜你喜欢
- 电工基础知识!如何进行电路分析?
- 三 硬件安全系列 逻辑电路基础知识介绍
- 音响电路基本概念和基础知识
- 如何设计电路板?pcb电路设计基础知识
- 电工技能基础知识
- 电子电路设计的基础知识
- 初中物理电路基础知识归纳
- 关于安全电路的基础知识
- 电子电路基础知识-电感
- 电工基础知识,电工39个专业术语,你知道几个?
