为什么在verilog HDL不直接使用运算符

既然在vrilog HDL中有乘法运算符,为什么不使用,它和其他的乘法设计有什么区别?同样的问题对于加法器,乘法器的设计。没钱了不能给赏,感激不尽

第1个回答  推荐于2016-09-06
在verilog设计中是可以使用乘法器的,只不过直接使用verilog的乘法器有一些不好的地方:
1、直接使用verilog的乘法器综合后是一个组合逻辑的乘法器,其需要面积(逻辑门)大,输出时序不稳定。
2、综合后的乘法器因为是组合逻辑,经过多级逻辑门,时序很差容易出时序问题,在FPGA上跑起来会很慢。
一般的乘法器设计会上上述两个问题(特别是第二点)优化掉.比如将一个乘法操作采用多个时钟周期实现,或者采用优化的算法实现。本回答被提问者采纳

为什么在verilog HDL不直接使用运算符
1、直接使用verilog的乘法器综合后是一个组合逻辑的乘法器,其需要面积(逻辑门)大,输出时序不稳定。2、综合后的乘法器因为是组合逻辑,经过多级逻辑门,时序很差容易出时序问题,在FPGA上跑起来会很慢。一般的乘法器设计会上上述两个问题(特别是第二点)优化掉.比如将一个乘法操作采用多个时钟周期实...

verilog拼接符的用法
在Verilog HDL语言有一个特殊的运算符:位拼接运算符{},用这个运算符可以把两个或多个信号的某些位拼接起来进行运算操作。其使用方法如下:即把某些倍号的某些位详细地列出来,中间用逗号分开,最后用大括号括起来表示一个整体信号,例如:也可以写成为:在位拼接表达式中不允许存在没有指明位数的信号。...

Verilog语法之四:运算符
Verilog HDL语言的运算符范畴广泛,按功能可分为算术运算符、赋值运算符、关系运算符、逻辑运算符、条件运算符、位运算符、移位运算符和拼接运算符等类别。其运算符根据操作数的数量,可分为单目运算符、二目运算符和三目运算符。算术运算符包括加法、减法、乘法、除法和模运算。在进行整数除法时,结果将...

Verilog HDL 生成块 的问题,为什么直接循环不行?
你要按照功能来啊。generate本来就是用来构建逻辑的,你这个位置就是实例化。而单纯的for只是用来做循环。2个在一起就是循环构建逻辑。你只是单纯的for,编译器当然不知道你是要干嘛。而且for是不能直接出现在module下的。

Verilog HDL基本语法规则
Verilog HDL的基本语法规则提供了清晰的结构以描述数字电路。它包括了间隔符、注释、标识符和关键词、逻辑值集合以及数据类型等元素。1. 间隔符:Verilog中的空格符、TAB键、换行符和换页符用于改善代码的可读性。2. 注释:注释的存在是为了提升代码的可理解性,但编译时不被处理。3. 标识符和关键词:...

试比较verilog hdl的逻辑运算符,按位运算符和缩位运算符有哪些相同点...
不同点:逻辑运算符执行逻辑操作,运算结果是一位逻辑值0、1或x;按位运算符产生一个与位宽较长操作数相等宽的值,该值的每一位都是两个操作数按位运算的结果;缩位运算符则仅对一个操作数进行运算,并产生一位的逻辑值。相同点:除了逻辑非(!)与非(~)运算外都属于同一优先等级的运算符。

Verilog常用语法简介
数据类型在Verilog中有4种逻辑状态,包括常见的wire、reg、常量、参数、向量等。其中,常量有3种类型,参数用于定义符号常量。运算符与C\/C++类似,逻辑非只改变逻辑状态,按位取反则保持位数不变。逻辑功能部分是模块的核心,通过过程语句、块语句、赋值语句(持续和过程),以及条件语句(casez和casex)来...

在Verilog HDL设计中用什么表示异或
位运算符: ~:表示非;&:表示与; |:表示或; ^:表示异或; ^~:表示同或。Verilog一般全称指Verilog HDL,是用于数字逻辑设计硬件描述语言HDL的一种,普遍认为另一种是VHDL。Verilog可以进行数字逻辑的仿真验证、时序分析、逻辑综合,具有描述电路连接、电路功能、在不同抽象级上描述电路、描述电路...

verilog hdl 中的寄存器数组可以按位复赋值吗?如果可以的话,那么索引...
7:0] count = 0 ; reg [15:0] data [1023:0];前者是寄存器,后者是寄存器组或者叫存储器。至于你说索引必须是常量,这个常量只要在触发时是个常量就行,举个例子就是编译器是可以编译for循环的,包括里面常用的i = i + 1,但是这绝对不是一个好习惯,建议不要使用这种方法,想都别想。

verilog hdl求助!!!急~~~
1、“count<=count”这种形式在硬件设计中是不允许的,硬件设计不是写软件程序;2、如果“k5==1”和“k10==1”都成立的话,你的设计就存在竞争冒险,结果可能是“count<=count+5”,也可能是“count<=count+10”,因为从你的代码看,它们是时序逻辑中的非阻塞赋值,是并行的。可能你是个初学者...

相似回答