您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > verilog 学习笔记
1有关verilog算法及建模1有关C、VeilogHDL、VHDL........................................................................................................11.1C与Verilog.....................................................................................................................11.2VerilogHDL与VHDL.......................................................................................................32有关Verilog中的一些语法......................................................................................................52.1运算符...............................................................................................................................52.2Wire、reg、tri、memory型........................................................................................62.3assign和always语句....................................................................................................62.4阻塞赋值和非阻塞赋值...................................................................................................82.5Verilog中使用的一些关键字........................................................................................92.6其他.................................................................................................................................133有关Verilog建模.....................................................................................................................153.1软核、固核、硬核..........................................................................................................153.2模块设计流程.................................................................................................................153.3门级结构.........................................................................................................................163.4基本逻辑运算.................................................................................................................163.5控制逻辑.........................................................................................................................163.6同步和异步.....................................................................................................................173.7有限状态机.....................................................................................................................183.8综合的一般原则.............................................................................................................214有关总线和时钟.........................................................................................................................224.1I2C双向二线制串行总线协议....................................................................................224.2时钟发生器的形成(分频的另外一种实现方式)......................................................221有关C、VeilogHDL、VHDL1.1C与VerilogC语言配合VerilogHDL来设计算法的硬件电路块时考虑的三个主要问题:�为什么选择C语言与VerilogHDL配合使用?�C语言与VerilogHDL的使用有何限制?�如何利用C来加速硬件的设计和故障检测?1)为什么选择C语言与Verilog配合使用首先,C语言很灵活,查错功能强,还可以通过PLI(编程语言接口)编写自己的系任务直接与硬件仿真器(如Verilog-XL)结合使用。C语言是目前世界上应用最为广泛的一种编程语言,因而C程序的设计环境比VerilogHDL的完整。此外,C语言可应用于许多领域,有可靠的编译环境,语法完备,缺陷较少。比较起来,Verilog语言只是针对硬件描述的,在别处使用(如用于算法表达等)并不方便。而且Verilog的仿真、综合、查错工具等大部分软件都是商业软件,与C语言相比缺乏长期大量的使用,可靠性较差,亦有很多缺陷。所以,只有在C语言的配合使用下,Verilog才能更好地发挥作用。2解决方法:面对上述问题,最好的方法是C语言与Verilog语言相辅相成,互相配合使用。这就是既要利用C语言的完整性,又要结合Verilog对硬件描述的精确性,来更快更好地设计出符合性能要求的硬件电路系统。利用C语言完善的查错和编译环境,设计者可以先设计出一个功能正确的设计单元,以此作为设计比较的标准。然后,把C程序一段一段地改写成用并型结构(类似于Verilog)描述的C程序,此时还是在C的环境里,使用的依然是C语言。如果运行结果都正确,就将C语言关键字用Verilog相应的关键字替换,进入Verilog的环境。将测试输入同时加到C与Verilog两个单元,将其输出做比较。这样很容易发现问题的所在,然后更正,再做测试,直至正确无误。剩下的工作就交给后面的设计工程师继续做。2)C语言与Verilog语言互相转换中存在的问题这样的混合语言设计流程往往会在两种语言的转换中会遇到许多难题。例如,怎样把C程序转换成类似Verilog结构的C程序,来增加并行度,以保证用硬件实现时运行速度达到设计要求;又如怎样不使用C中较抽象的语法:例如迭代,指针,不确定次数的循环等等,也能来表示算法(因为转换的目的是要用可综合的Verilog语句来代替C程序中的语句,而可用于综合的Verilog语法是相当有限的,往往找不到相应的关键字来替换)。C程序是一行接一行依次执行的,属于顺序结构,而Verilog描述的硬件是可以在同一时间同时运行的,属于并行结构。这两者之间有很大的冲突。而Verilog的仿真软件也是顺序执行的,在时间关系上同实际的硬件是有差异的,可能会出现一些无法发现的问题。Verilog可用的输出输入函数很少。C语言的花样则很多,转换过程中会遇到一些困难。C语言的函数调用与Verilog中模块的调用也有区别。C程序调用函数是没有延时特性的,一个函数是唯一确定的,对同一个函数的不同调用是一样的。而Verilog中对模块的不同调用是不同的,即使调用的是同一个模块,必须用不同的名字来指定。Verilog的语法规则很死,限制很多,能用的判断语句有限。仿真速度较慢,查错功能差,错误信息不完整。仿真软件通常也很昂贵,而且不一定可靠。C语言没有时间关系,转换后的Verilog程序必须要能做到没有任何外加的人工延时信号,也就是必须表达为有限状态机,即RTL级的Verilog,否则将无法使用综合工具把Verilog源代码转化为门级逻辑。3)如何利用C语言来加快硬件的设计和查错下表中列出了常用的C与Verilog相对应的关键字与控制结构下表中,列出了C与Verilog相对应的运算符3从上面的讨论我们可以总结如下:�C语言与Verilog硬件描述语言可以配合使用,辅助设计硬件�C语言与Verilog硬件描述语言很象,只要稍加限制,C语言的程序很容易转成Verilog的程序1.2VerilogHDL与VHDLVerilogHDL和VHDL都是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准。VHDL是在1987年成为IEEE标准,VerilogHDL则在1995年才正式成为IEEE标准。之所以VHDL比VerilogHDL早成为IEEE标准,这是因为VHDL是美国军方组织开发的,而VerilogHDL则是从一个普通的民间公司的私有财产转化而来,基于VerilogHDL的优越性,才成为的IEEE标准,因而有更强的生命力。VHDL其英文全名为VHSICHardwareDescriptionLanguage,而VHSIC则是VeryHighSpeedIntegeratedCircuit的缩写词,意为甚高速集成电路,故VHDL其准确的中文译名为甚高速集成电路的硬件描述语言。4VerilogHDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表示电路的结构和行为、支持逻辑设计中层次与领域的描述、可借用高级语言的精巧结构来简化电路的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去)、便于文档管理、易于理解和设计重用。但是VerilogHDL和VHDL又各有其自己的特点。由于VerilogHDL早在1983年就已推出,至今已有十三年的应用历史,因而VerilogHDL拥有更广泛的设计群体,成熟的资源也远比VHDL丰富。与VHDL相比VerilogHDL的最大优点是:它是一种非常容易掌握的硬件描述语言,只要有C语
本文标题:verilog 学习笔记
链接地址:https://www.777doc.com/doc-5471770 .html