欢迎来到天天文库
浏览记录
ID:19265296
大小:293.07 KB
页数:24页
时间:2018-09-30
《verilog经典内容讲解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、有关verilog算法及建模1有关C、VeilogHDL、VHDL11.1C与Verilog11.2VerilogHDL与VHDL32有关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有
2、关总线和时钟224.1I2C双向二线制串行总线协议224.2时钟发生器的形成(分频的另外一种实现方式)221有关C、VeilogHDL、VHDL1.1C与VerilogC语言配合VerilogHDL来设计算法的硬件电路块时考虑的三个主要问题:?为什么选择C语言与VerilogHDL配合使用??C语言与VerilogHDL的使用有何限制??如何利用C来加速硬件的设计和故障检测?1)为什么选择C语言与Verilog配合使用首先,C语言很灵活,查错功能强,还可以通过PLI(编程语言接口)编写自己的系任务直接与硬件仿真器(如Verilog-XL)结合使
3、用。C语言是目前世界上应用最为广泛的一种编程语言,因而C程序的设计环境比VerilogHDL的完整。此外,C语言可应用于许多领域,有可靠的编译环境,语法完备,缺陷较少。比较起来,Verilog语言只是针对硬件描述的,在别处使用(如用于算法表达等)并不方便。而且Verilog的仿真、综合、查错工具等大部分软件都是商业软件,与C语言相比缺乏长期大量的使用,可靠性较差,亦有很多缺陷。所以,只有在C语言的配合使用下,Verilog才能更好地发挥作用。24解决方法:面对上述问题,最好的方法是C语言与Verilog语言相辅相成,互相配合使用。这就是既要利用
4、C语言的完整性,又要结合Verilog对硬件描述的精确性,来更快更好地设计出符合性能要求的硬件电路系统。利用C语言完善的查错和编译环境,设计者可以先设计出一个功能正确的设计单元,以此作为设计比较的标准。然后,把C程序一段一段地改写成用并型结构(类似于Verilog)描述的C程序,此时还是在C的环境里,使用的依然是C语言。如果运行结果都正确,就将C语言关键字用Verilog相应的关键字替换,进入Verilog的环境。将测试输入同时加到C与Verilog两个单元,将其输出做比较。这样很容易发现问题的所在,然后更正,再做测试,直至正确无误。剩下的工作
5、就交给后面的设计工程师继续做。2)C语言与Verilog语言互相转换中存在的问题这样的混合语言设计流程往往会在两种语言的转换中会遇到许多难题。例如,怎样把C程序转换成类似Verilog结构的C程序,来增加并行度,以保证用硬件实现时运行速度达到设计要求;又如怎样不使用C中较抽象的语法:例如迭代,指针,不确定次数的循环等等,也能来表示算法(因为转换的目的是要用可综合的Verilog语句来代替C程序中的语句,而可用于综合的Verilog语法是相当有限的,往往找不到相应的关键字来替换)。C程序是一行接一行依次执行的,属于顺序结构,而Verilog描述的
6、硬件是可以在同一时间同时运行的,属于并行结构。这两者之间有很大的冲突。而Verilog的仿真软件也是顺序执行的,在时间关系上同实际的硬件是有差异的,可能会出现一些无法发现的问题。Verilog可用的输出输入函数很少。C语言的花样则很多,转换过程中会遇到一些困难。C语言的函数调用与Verilog中模块的调用也有区别。C程序调用函数是没有延时特性的,一个函数是唯一确定的,对同一个函数的不同调用是一样的。而Verilog中对模块的不同调用是不同的,即使调用的是同一个模块,必须用不同的名字来指定。Verilog的语法规则很死,限制很多,能用的判断语句有
7、限。仿真速度较慢,查错功能差,错误信息不完整。仿真软件通常也很昂贵,而且不一定可靠。C语言没有时间关系,转换后的Verilog程序必须要能做到没有任何外加的人工延时信号,也就是必须表达为有限状态机,即RTL级的Verilog,否则将无法使用综合工具把Verilog源代码转化为门级逻辑。3)如何利用C语言来加快硬件的设计和查错下表中列出了常用的C与Verilog相对应的关键字与控制结构下表中,列出了C与Verilog相对应的运算符24从上面的讨论我们可以总结如下:?C语言与Verilog硬件描述语言可以配合使用,辅助设计硬件?C语言与Verilo
8、g硬件描述语言很象,只要稍加限制,C语言的程序很容易转成Verilog的程序1.2VerilogHDL与VHDLVerilogHDL和VHDL都是用于
此文档下载收益归作者所有