网站建设后怎么,北京网站优化策略,美容院装修,wordpress do_action 返回值2.1综合 Verilog 是硬件描述语言#xff0c;顾名思义#xff0c;就是用代码的形式描述硬件的功能#xff0c;最终在硬件电路上实 现该功能。在Verilog描述出硬件功能后需要使用综合器对Verilog代码进行解释并将代码转化成实际 的电路来表示#xff0c;最终产生实际的电路顾名思义就是用代码的形式描述硬件的功能最终在硬件电路上实 现该功能。在Verilog描述出硬件功能后需要使用综合器对Verilog代码进行解释并将代码转化成实际 的电路来表示最终产生实际的电路也被称为网表。这种将Verilog代码转成网表的工具就是综合 器。 上图左上角是一段Verilog代码该代码实现了一个加法器的功能。在经过综合器解释后该代码 被转化成一个加法器电路。QUARTUS、ISE和VIVADO等FPGA开发工具都是综合器而在集成电 路设计领域常用的综合器是DC。 2.2仿真 在FPGA设计的过程中不可避免会出现各种BUG。如果在编写好代码、综合成电路、烧写到 FPGA后才发现问题此时再去定位问题就会非常地困难。而在综合前设计师可以在电脑里通过仿 真软件对代码进行仿真测试检测出BUG并将其解决最后再将程序烧写进FPGA。一般情况下可 以认为没有经过仿真验证的代码一定是存在BUG的。 为了模拟真实的情况需要编写测试文件。该文件也是用Verilog编写的其描述了仿真对象的 输入激励情况。该激励力求模仿最真实的情况产生最接近的激励信号将该信号的波形输入给仿真 对象查看仿真对象的输出是否与预期一致。需要注意的是在仿真过程中没有将代码转成电路仿真器只是对代码进行仿真验证。至于该代码是否可转成电路仿真器并不关心。 由此可见Verilog的代码不仅可以描述电路还可以用于测试。事实上Verilog定义的语法非 常之多但绝大部分都是为了仿真测试来使用的只有少部分才是用于电路设计详细可以参考本书 的“可综合逻辑设计”一节。Verilog中用于设计的语法是学习的重点掌握好设计的语法并熟练应 用于各种复杂的项目是技能的核心。而其他测试用的语法在需要时查找和参考就已经足够了。本书旨在方便本科、研究生的教学因此将重点讲解设计用的语法。
2.3可综合设计 Verilog 硬件描述语言有类似高级语言的完整语法结构和系统这些语法结构的应用给设计描述 带来很多方便。但是Verilog是描述硬件电路的其建立在硬件电路的基础之上。而有些语法结构 只是以仿真测试为目的是不能与实际硬件电路对应起来的。也就是说在使用这些语法时将一个语 言描述的程序映射成实际硬件电路中的结构是不能实现的也称为不可综合语法。 综合就是把编写的rtl代码转换成对应的实际电路。比如编写代码assign abcEDA综合工 具就会去元件库里调用一个二输入与门将输入端分别接上b和c输出端接上a。 同样地如果设计师编写了一些如下所示的语句 综合工具就会像搭积木一样把这些“逻辑”电路用一些“门”电路来搭起来。当然工具会对必 要的地方做一些优化比如编写一个电路assing ab~b工具就会将a恒接为0而不会去调用一 个与门来搭这个电路。 综述所述“综合”要做的事情有编译rtl代码从库里选择用到的门器件把这些器件按照 “逻辑”搭建成“门”电路。 不可综合是指找不到对应的“门”器件来实现相应的代码。比如“#100”之类的延时功能 简单的门器件是无法实现延时100个单元的还有打印语句等也是门器件无法实现的。在设计的时 候要确保所写的代码是可以综合的这就依赖于设计者的能力知道什么是可综合的代码什么是不 可综合的代码。对于初学者来说最好是先记住规则遵守规则先按规则来设计电路并在这一过程 中逐渐理解这是最好的学习路径。 下面表格中列出了不可综合或者不推荐使用的代码。