Verilog学习小白笔记(八)

书目:Verilog数字设计与综合第二版 夏宇闻
十四章

一、逻辑综合
1、逻辑综合是在标准单元库和特定的设计约束的基础上,把设计的
高层次描述转化为优化的门级网表的过程

二、verilog HDL综合
1、目前都是在寄存器传输级层次使用硬件描述语言编写设计,再进行综合
2、可进行逻辑综合的结构:端口,参数,模块定义,信号和变量,调用
函数和任务,过程(不支持initial),过程块,数据流(不考虑延迟)
循环(while和forever)必须包含@(posedge clock)或@(negedge clock)
3、几乎所有的操作符都可以综合,除!==、===这种与x或z相关的综合中无意义
4、赋值语句为逻辑表达式转化为门级电路实现
5、算术运算使用全加器来实现
6、?操作符则会产生多路选择器
7、if_else、case 语句被转换成多路选择器
8、for循环可以用来产生级联的链式组合逻辑
9、always语句生成时序和组合逻辑
10、函数语句被综合成具有一个输出变量的组合模块

三、逻辑综合流程
1、RTL描述、翻译为未经优化的中间表示、逻辑优化、工艺映射和优化、优化的门级表示

四、逻辑综合建模技巧
1、Verilog编码风格
使用有意义的变量和信号名称
避免混合使用上升和下降沿触发的触发器
2、使用基本构造模块和使用连续赋值语句的对比:
前者对称可高效优化,不简洁,降低仿真器性能,
后者描述简洁但最后逻辑及结构不一定对称
3、调用多路选择器与if和case语句的对比
如果需要结构化实现最好使用前者,后者可能产生恒不可预期的随机逻辑
多路选择器更容易你控制,综合速度快,但依赖工艺,代码较长
4、使用圆括弧将逻辑组合起来,便于控制最终结构,增强可读性
5、使用算术操作符*,/,%与使用现有构造模块对比
前者对逻辑和面积的代价很大,但不依赖工艺且简明,自定义浪费时间且依赖工艺
6、注意多条赋值语句对同一个赋值语句赋值的情况
可能生成意料之外的电路,前面的赋值可能被忽略,最后一次起作用
7,显式地定义if和case语句:必须说明各种条件,否则可能产生电平敏感的锁存器
8、设计划分:水平划分、垂直划分、并行化设计结构(使用并行操作)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值