C语言与verilog
- 格式:pdf
- 大小:80.60 KB
- 文档页数:1
C语⾔与verilog 的区别及相互转化
1,⾯对C语⾔⽐verilogHDL更加成熟,⽽且更加可靠,因为verilog 的编译,查错⼯具⼤都是商业软件,因此没有像C语⾔⼀样
得到⼴泛的应⽤,各种缺陷也较C来说 较多。基于这样的原因,在设计算法的硬件电路块时,⼀般采⽤C语⾔和verilog相结合
的⽅式,利⽤C语⾔完善的查错和编译环境,设计者可以先设计出⼀个功能正确的设计单元,以此作为设计⽐较的标准。然
后,把C程序⼀段⼀段地改写成⽤并型结构(类似于Verilog)描述的C程序,此时还是在C的环境⾥,使⽤的依然是C语⾔。
如果运⾏结果都正确,就将C语⾔关键字⽤Verilog相应的关键字替换,进⼊Verilog的环境。将测试输⼊同时加到C与Verilog
两个单元,将其输出做⽐较。这样很容易发现问题的所在,然后更正,再做测试,直⾄正确⽆误。
2,C语⾔的代码是⼀⾏⼀⾏执⾏的,属于顺序结构,⽽verilog是⼀种硬件描述语⾔,语句同时进⾏,属于并⾏结构,并且
verilog的仿真软件⼤多都是顺序结构的,所以有很多的问题没有办法发现。
3,verilog的输⼊输出函数较少,⽽C却多种多样,因此在转化上存在很⼤的问题。C函数调⽤是没有时间延时特性的,不同
时间调⽤同⼀个函数的功能是⼀样的,⽽Verilog中对模块的不同调⽤是不同的,即使调⽤的是同⼀个模块,必须⽤不同的名
字来指定。Verilog的语法规则很死,限制很多,能⽤的判断语句有限。仿真速度较慢,查错功能差,错误信息不完整。仿真
软件通常也很昂贵,⽽且不⼀定可靠。C语⾔没有时间关系,转换后的Verilog程序必须要能做到没有任何外加的⼈⼯延时信
号,也就是必须表达为有限状态机,即RTL级的Verilog,否则将⽆法使⽤综合⼯具把Verilog源代码转化为门级逻辑。
4,verilog与C的常⽤关键字相互转化如下: