Verilog HDL 设计与综合/数字集成电路设计方法概述_part7

33.wire类型核reg类型的使用+连续赋值语句和运算符的使用
在程序设计中如何正确使用wre和reg类型,可以遵循以下几点:
(1)在连续赋值语句(assign)中,因为是对于组合电路的描述,被赋值信号只能使用wire类型
(2)在 Initia和always过程语句中,被赋值信号必须定义为reg类型
(3)当采用结构级描述时,模块、基本门和开关元器件的输出信号只能使用wire类型。
在硬件描述语言中,绝大多数的电路都会采用WIRE类型在这里插入图片描述
不管描述的是组合电路还是时序电路当我们用过程语句描述的时候必须是重新定义成REG类型在这里插入图片描述

对于标准的门级单元电路,它的输入和输出信号是非常明确的,它的第一个信号是输出信号,后面紧跟的是输入信号

连续赋值语句是对组合电路的一种非常高效率的描述方式,而运算符在硬件描述语言中表征的就是电路在这里插入图片描述
归约运算符在这里插入图片描述
对于组合电路,采用连续赋值语句和运算符是完全可以进行设计的。但是在一些特殊环境下,采用过程语句效率更好一些。一个典型的例子是case条件分支语句对于真值表和有限状态机的描述,采用case语句会合理
连接操作符:在这里插入图片描述
34.always语句中敏感事件表在时序电路中的使用+Verilog HDL程序并行化设计思想+非阻塞赋值语句和流水线设计
(1)采用过程语句对组合电路进行描述时,需要把全部的输入信号列入敏感信号列表,且敏感信号列表不允许存在边沿信号。
(2)采用过程语句对时序电路进行描述时,需要把时间信号和部分输入信号列入敏感信号列表。
用时序电路进行描述的过程中,在有些工具中,只允许边沿信号出现在敏感事件表中,而不允许边沿信号和电平信号共同出现在敏感事件表中
很多综合工具(如 Quartus)不允许边沿变化信号和电平变化信号同时出现在敏感事件表中。例如
always@(posedge clk,negedge rst)是正确的,可以被综合。
always@(posedge clk,rst)是错误的,不可以被综合。
采用不同的敏感事件表和电路描述方式往往可以得到不同类型的电路

硬件描述语言是典型的并行化程序设计方式
在 Verilog HDL语言中,电路结构描述方式、数据流描述方式和行为级描述方式是完全并行的,直接体现在程序设计代码中。
在同一个模块中,所有的结构化建模也是并行的
串行只会出现在:begin–end中的阻塞性赋值

在数字电路中过,工作频率是由延迟所决定的,为了提高电路的工作频率,所以要减少路径延迟在这里插入图片描述

35.时间优先级的概念+逻辑重复和资源其享
if语句和case语句的优先级
在串行的语句中,优先级最高的是最后一条语句在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重组逻辑结构提高电路平衡性:在这里插入图片描述
在这里插入图片描述
36.乘法器设计+log函数的 Verilog HDL实现
华莱士乘法器在这里插入图片描述
复数乘法器
通过复数的运算形成新的实部和虚部的过程在这里插入图片描述
向量乘法器:
在图形图像的处理过程中,信号并不是一个一个过来的,而是一串一串过来的在这里插入图片描述
对于数字电路设计,结构性内容与算法性内容对于电路的指导意义非常重要
查找表乘法器:在这里插入图片描述
log函数的 Verilog HDL实现:在这里插入图片描述

用∨erilog HDL设计采用泰勒级数展开方式的log函数
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值