一、什么是综合?

Verilog HDL或VHDL都只是一种硬件的描述语言,并且允许在不同的抽象层次上对电路进行建模。VerilogHDL侧重于电路级,可以在门级和寄存器传输级(RTL)描述硬件,也可以在算法级对硬件加以描述。而VHDL侧重于系统级。


综合就是将Verilog描述的RTL级的电路模型构造出门级网表的过程。综合只是个中间步骤,综合后生成的网表文件,就是由导线相互连接的寄存器传输级功能块 (像是触发器、算术逻辑单元和多路选择器等)组成的。这里就需要一个叫做RTL模块构造器的程序,用来针对用户指定的目标工艺从预定义元件库中构造或获取每一个必须的RTL功能模块。

综合产生网表文件后,逻辑优化器会读入网表,并且会按照用户提供的面积(即资源要求)和定时(时序要求)约束为目标来优化网表。并且,这些面积和定时约束也能够指导模块构造器恰当地选取或生成寄存器传输级功能块。

二、什么是不可综合?

上面我们提到了HDL的描述有不同的抽象层次,从门级、RTL级、行为级以及算法级进行建模。但是,并不是所有层次上的描述方式都可以被综合成想要的硬件元件,即不可综合。比如Verilog中存在一些用于仿真验证的子集,属于仿真验证语言,只在仿真时候使用,不能被综合成电路,因为没有相应的硬件元件与其对应。如系统任务$dsiplay(),initial语句等。

三、verilog中哪些结构可以综合,而哪些不可以呢?

1、一般综合工具支持的Verilog HDL结构


2、一般综合工具忽略的Verilog HDL结构

3、 一般综合工具不支持的Verilog HDL结构

四、建立可综合模型的原则

(1)不使用initial。

(2)不使用#10。

(3)不使用循环次数不确定的循环语句,如forever、while等。

(4)不使用用户自定义原语(UDP元件)。

(5)尽量使用同步方式设计电路。

(6)除非是关键路径的设计,一般不采用调用门级元件来描述设计的方法,建议采用行为语句来完成设计。

(7)用always过程块描述组合逻辑,应在敏感信号列表中列出所有的输入信号。

(8)所有的内部寄存器都应该能够被复位,在使用FPGA实现设计时,应尽量使用器件的全局复位端作为系统总的复位。

(9)对时序逻辑描述和建模,应尽量使用非阻塞赋值方式。对组合逻辑描述和建模,既可以用阻塞赋值,也可以用非阻塞赋值。但在同一个过程块中,最好不要同时用阻塞赋值和非阻塞赋值。

(10)不能在一个以上的always过程块中对同一个变量赋值。而对同一个赋值对象不能既使用阻塞式赋值,又使用非阻塞式赋值。

(11)如果不打算把变量推导成锁存器,那么必须在if语句或case语句的所有条件分支中都对变量明确地赋值。

(12)避免混合使用上升沿和下降沿触发的触发器。

(13)同一个变量的赋值不能受多个时钟控制,也不能受两种不同的时钟条件(或者不同的时钟沿)控制。

(14)避免在case语句的分支项中使用x值或z值。

verilog 中的可综合与不可综合相关推荐

  1. Verilog中可综合与不可综合的语句

    础知识:verilog 不可综合语句  (1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,intege ...

  2. verilog中的综合与不可综合

    1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,functio ...

  3. Verilog中可综合及不可综合语句概述

    Verilog中可综合及不可综合语句概述 2017-06-02 23:51 379人阅读 评论(0) 收藏 举报  分类: FPGA(4)  Verilog中可综合及不可综合语句概述 Verilog硬 ...

  4. 关于verilog中综合的过程,可综合与不可综合的理解

    前言: 1):数字电路设计过程: 一:行为级:分析电路功能.性能以及其他兼容性问题,只验证设计功能,不考虑设计的任何时序信息: 二:RTL级:寄存器级,只能使用可综合语句结构进行描述 三:RTL级综合 ...

  5. I2C介绍及verilog实现(主机/从机可综合)

    I2C介绍及verilog实现(主机/从机可综合) 目录 1.简介 2.基本特征 3.物理连接 4.数据格式 4.1快速模式和低速模式(F/S)写 4.2快速模式和低速模式(F/S)读 4.3高速模式 ...

  6. (12)Verilog HDL可综合与不可综合区别(第3天)

    (12)Verilog HDL可综合与不可综合区别(第3天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Verilog HDL可综合与不可综合区别(第3天) ...

  7. 中职学生学业水平计算机考试试题,中职学业水平测试试卷(综合卷).docx

    中职学业水平测试试卷(综合卷) 江苏省中等职业学校学生学业水平数学考试卷 一.选择题(本大题共15小题,每小题3分,共45分.每小题列出的四个选项中,只有一项符合要求.) 1.集合{1,2,3}的子集 ...

  8. FPGA的设计艺术(18)如何使用Verilog中的数组对存储器进行建模?

    前言 Verilog中的二维数组很有用,可以使用for以及generate for配合二维数组进行使用,可以代替大量寄存器的场合,其实大量同类寄存器可以使用存储器进行代替,Verilog中可以使用二维 ...

  9. Verilog初级教程(11)Verilog中的initial块

    文章目录 前言 正文 语法格式 initial块是用来干什么的? initial块何时开始又何时结束? 一个模块中允许有多少个initial块? 参考资料 写在最后 前言 仿真中通常会依次执行一组Ve ...

最新文章

  1. 安卓饼状图设置软件_话单及银行卡交易智能分析软件
  2. DevOps的工程化
  3. Redis Zrevrangebyscore 命令
  4. 2018 前端面试题(不定期更新)
  5. 一步步实现SDDC--多角色服务器部署
  6. make_heap,pop_heap,push_heap
  7. iOS 一种很方便的构造TarBar
  8. 银行核心系统是什么?
  9. 一.python实现AI拟声---pycharm工具下载及python环境配置
  10. 三自由度机械手腕设计机构设计
  11. 创业商业计划PPT模板
  12. DENON AVR-X510BT 功放设置记录
  13. ubuntu 16.04 Clion2018.1.1 添加桌面快捷方式
  14. CCS3.3 新建工程遇到的问题
  15. matlab getprmdflt,DFLT40A-7中文资料
  16. Windows的EventLog
  17. 第11届蓝桥杯青少组C++选拔赛真题
  18. 编程世界,我的世界。
  19. 【英语四六级-必背单词】高中英语单词 (I) - MP3试听与下载
  20. 视频文件MD5值获取及校验

热门文章

  1. mailgun php版本,如何使用mailgun php API仅向bcc发送邮件?
  2. java 解决oracle US7ASCII编码,sql查询时
  3. Android 获取手机设备信息:名称、型号、系统版本号、厂商、设备制造商、SDK版本、系统语言等等
  4. 世界的物质性及其发展规律
  5. 西部狂徒自建服务器,在《西部狂徒》中如何快速建立自己根据地?杀人放火是上策...
  6. 基于GUI混沌系统图像加密解密
  7. 移动端兼容如: 背景图片、页面放大、卡顿、闪退、内阴影
  8. 内网渗透- *** PTH(传递哈希)***PTT(传递票据)***PTK(传递密钥)
  9. 在vue3中使用markdown编辑器
  10. Spring Websocket 使用笔记