当前位置: 首页 > article >正文

Verilog HDL可综合与不可综合语句

目录

什么是逻辑综合

可综合语句

不可综合语句

逻辑综合建模建议

综合流程


什么是逻辑综合

所谓逻辑综合就是在标准单元库和特定的设计约束的基础上,把设计的高层次描述转换成优化的门级网表的过程。

标准单元库(工艺库)可以包含简单的单元,例如与门,或门和或非门等基本逻辑门,也可以包含宏单元,例如加法器,多路选择器和特殊的触发器。

自动化的逻辑综合工具有效减少了高层次设计到门级网表的转化时间。 

可综合语句

结构类型

关键字或描述

注释

端口 ports

input,output,inout

参数

parameter

模块定义

module endmodule

信号和变量

wire,reg,tri

允许使用向量表示

实例引用

instantiation

module instance

primitive instance

gate instance

例如:

mymux m1 (out, i0, i1, s);

函数和任务

function,task

不考虑时序结构

逻辑综合忽略所有 #delay延迟

过程

always,if,then,else,case,casex,casez

不支持 initial

使用复位机制进行电路信号初始化

过程块

begin end,named block,disable

命名块的禁止是允许的

数据流

assign

不考虑延时信息

循环

for,while,forever

while和forever必须包含

@(posedge clk) 或 @(negedge clk) 终止

操作符:几乎所有操作符都可综合。

只有 === 和 !== 这种与 x 和 z 相关的操作符不能用于逻辑综合。

避免在代码中与 x 或 z 比较。

操作类型

操作符

操作

算数

*

/

+

-

%

取模

+

单目加

-

单目减

逻辑

!

逻辑反

&&

逻辑与

||

逻辑非

关系

>

大于

<

小于

>=

大于等于

<=

小于等于

等价

==

相等

!=

不相等

按位逻辑

~

Bitwise NOT

&

Bitwise AND

~&

Bitwise NAND

|

Bitwise OR

~|

Bitwise NOR

^

Bitwise XOR

^~ 或 ~^

Bitwise XNOR

移位

>>

右移

<<

左移

>>>

算数右移

<<<

算数左移

拼接

{ }

拼接

条件

?

条件

不可综合语句

关键字或描述

注释

initial

只能在测试文件中使用

events

在测试中使用

real

不可综合

time

不可综合

force and release

不可综合

assign and deassign

assign 用于reg不支持

fork join

使用非阻塞赋值同样效果

table

UDP and table不可综合

逻辑综合建模建议

1.使用有意义的信号和变量名称,增强可读性

2.避免混合使用上升沿和下降沿触发的触发器

3.不要一个always块中混合使用电平和边沿敏感的单元

4.使用圆括号优化逻辑结构

5.再简单组合逻辑中使用连续赋值语句assign

6.对组合逻辑使用阻塞赋值,对时序逻辑使用非阻塞赋值

7.不要混合使用阻塞和非阻塞语句在一个always块里

8.不要对同一个变量多重赋值

9.显式定义if-else或者case语句,可能的条件分支不全,可能产生锁存器。

10.使用基本构造模块比连续赋值语句效率高,使用的门数少,但仿真需要时间长。

综合流程

参考:

 1.Verilog Synthesis Tutorial (asic-world.com)

2.《Verilog HDL数字设计与综合》第二版。 


http://www.kler.cn/a/405268.html

相关文章:

  • SpringBoot(8)-任务
  • windows的WSL Ubuntu子系统重置root或其他用户的密码
  • shell--第一次作业
  • 大语言模型---Llama模型文件介绍;文件组成
  • AI一键生成原创花卉印花图案——创新与效率的结合
  • [大数据]Trino
  • OpenCV基本图像处理操作(五)——图像数据操作
  • git commit -m ‘last‘什么意思和git add.什么意思
  • 每日学习笔记005:(C++)迭代器
  • Spring Boot核心概念:自动配置
  • 国土变更调查拓扑错误自动化修复工具的研究
  • 湘潭大学人工智能考试复习1(软件工程)
  • 应用系统开发(13) 在 Xilinx FPGA 中实现自定义累加平均低通滤波器
  • 魔众题库系统 v10.0.0 客服条、题目导入、考试导航、日志一大批更新
  • ISO 21434标准:汽车网络安全管理的利与弊
  • XCVU13P板卡设计原理图:509-基于XCVU13P的4路QSFP28光纤PCIeX16收发卡
  • mysqldbcompare 使用及参数详解
  • 【HarmonyOS】鸿蒙应用接入微博分享
  • Elasticsearch 6.8 分析器
  • 【Lucene】Lucene的索引文件格式:深入理解Lucene使用的索引文件格式
  • Spring Boot教程之五:在 IntelliJ IDEA 中运行第一个 Spring Boot 应用程序
  • GoZero 上传文件File到阿里云 OSS 报错及优化方案
  • 服务器数据恢复—raid5阵列故障导致上层系统分区无法识别的数据恢复案例
  • java-贪心算法
  • ubuntu显示管理器_显示导航栏
  • ESLint的简单使用(js,ts,vue)