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的常用关键字相互转化如下:

HDL的综合和c语言的编译区别,C语言与verilog 的区别及相互转化相关推荐

  1. c语言编辑编译链接,C语言的“编译、链接”

    我们写的代码,仅仅是文本文件(txt),不管后缀怎么变,终究是文本文件,计算机只能显示,不能做事(执行). 文本文件通过"编译.链接",成为可执行文件(windows下是exe): ...

  2. HDL的综合和c语言的编译区别,Verilog HDL与C语言的比较

    Verilog HDL是在C语言的基础上发展起来的,因而它保留了C语言所独有的结构特点. 为便于对Verilog HDL有个大致的认识,在这里将它与C语言的异同作一比较: 1.C语言是由函数组成的,而 ...

  3. c语言中编译解释,C语言既可以编译执行又可以解释执行吗? 编译执行怎么解释? 解释执行又怎么解释?...

    C 语言程序仅可以解释执行. 解释程序是将源程序(如BASIC)作为输入,解释一句后就提交计算机执行一句,并不形成目标程序.编译程序是把高级语言(如FORTRAN.COBOL.Pascal.C等)源程 ...

  4. c语言 预编译 模拟,C语言考试模拟练习题

    C语言考试模拟练习题 阅读的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰.以下是小编为大家搜索整理的C语言考试模拟练习题,希望能给大家带来帮助!更多精彩内容请及时关注我们应 ...

  5. c语言函数调用编译等腰三角形,C语言如何输出带“*”的等腰三角形? – 手机爱问...

    2005-12-10 什么是等腰三角形? (一).等腰三角形的概念 有两条边相等的三角形,叫做等腰三角形. 相等的两边叫做腰,另一边叫底边:两腰的夹角叫做顶角,腰和底边上的夹角叫做底角. (二).等腰 ...

  6. c语言作业系统输出超限,C语言网Online Judge系统支持语言和编译说明

    Online Judge系统支持语言和编译情况: 语言 编译器 语言版本 编译参数 C gcc 4.6.3 C99 gcc Main.c -o Main -Wall -lm –static -std= ...

  7. Go语言实践[回顾]教程03--Go语言的编译与运行的命令行

    Go语言实践[回顾]教程03--Go语言的编译与运行的命令行 Go语言是编译型静态语言 如何编译Go语言的源文件 如何执行(运行)编译后的文件 开发中如何编译后立即执行 总结 Go语言是编译型静态语言 ...

  8. 在DC中使用tcl脚本综合和Formality一致性检查

    Design Compiler工艺库的更换 通过上一节的基本操作,我们学会了如何使用design compiler综合一个电路,但是由于centos自带的库class中没有寄存器的相关映射,而导致综合 ...

  9. -i 可以编译添加多个_C语言的编译过程

    大家对C语言的编译过程可能有个大致的理解,但是,详细到每一步具体都干了啥,可能有的人不是很清楚啦,也包括我,要不然,就不会做笔记了,哈哈... 0.主要步骤 ① 步骤 编写源程序(.c) → 预处理 ...

最新文章

  1. Eclipse利用Maven的插件部署web项目到远程tomcat服务器
  2. w10系统没有打开方式_小白怎么制作微软官方win10系统安装启动U盘
  3. 服务器混合硬盘安装linux,UBUNTU下如何开启SSHD服务
  4. A Simple Math Problem(2020 ICPC 江西省省赛)
  5. mybatis学习(50):嵌套查询
  6. 时间戳 java_java中获取时间戳的方法
  7. 苹果6s最大屏幕尺寸_iPhone 6s:经典的小屏旗舰,百元价位也能做苹果党
  8. linux 内核任务调度,Linux任务调度
  9. 究竟还要等多久才能坐上真正的无人驾驶汽车?
  10. SQL Server Update:使用 TOP 限制更新的数据
  11. python读取excel数据生成word_利用Python将excel数据读取到word表格
  12. Unity 3D学习(一)Unity 3D介绍与安装
  13. 《算法导论》常见算法总结
  14. 二维码在线生成 扫描二维码打电话 扫码拨号
  15. html四边形布局,canvas四边形.html
  16. 接口与继承系列教材 (十)- Java 内部类详解
  17. 做人温和一点,做事狠一点。
  18. Kafka3.2.0 + kraft集群安装部署说明
  19. 习题4-10 猴子吃桃问题
  20. Java 面试题大全(一篇足以,建议收藏)

热门文章

  1. 企业级实战02_SpringMVC整合ActiveMQ 实战需求
  2. Error: GlobalConfigUtils setMetaData Fail
  3. dell idrac 复位_DELL 服务器 装系统前初始化(恢复出厂、超线程、虚拟化、iDRAC设置)...
  4. linux7 chkconfig,centos 6-7 chkconfig -systemctl关系对比
  5. 更改盘符不成功_DVD光驱不读盘怎么解决?DVD光驱能刻录吗
  6. C语言 指针 p++ / p-- - C语言零基础入门教程
  7. centos6 mysql 启动_【17-02-18】 【求助】centos6 mysql重启后无法正常启动
  8. printf函数输出多个printf 、前置加加或者后置加加
  9. 【c语言数据结构】二叉树
  10. exec go 重启_无停机优雅重启 Go 程序