verilog hdl的运算?

用assign a=b*c;assign a=b+c;不行吗?干嘛要编写乘法器?还要编写加法器?

你这样写完全可以啊。VERILOG自带乘法单元,直接用*就行啊。不过你这样写会降低FPGA运行速度,不如打一拍
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-14
1。移位寄存器

CLK,RST,:模块shift_4(输入,输出)

?输入CLK,RST;
??输入;
?输出出来;

??线了;
?第[3:0] shiftreg;

?总是@(posedge CLK或negedge RST的)/ /异步清零
???(RST)
?????shiftreg <= 0;
???ELSE BEGIN
?????shiftreg [0] <=;
?????shiftreg [1] <= shiftreg [0];
?????shiftreg [2] <= shiftreg [1];
?????shiftreg [3] <= shiftreg [2];
???结束

??分配= shiftreg [3];

endmodule

2.ALU

`定义地址2'h0,
`定义SUB 2'h1“
`定义和2'h2的
`定义或2'h3的

模块ALU(A,B,F,S)

??参数N = 16;

?输入[N-1:0],B;
?输入[1:0] F;
?输出[N-1:0];

?第[N-1:0];

?总是@(或b或f)
???情况下(F)
???`地址:<= A + B;
???`SUB:<= A-B;
???`:S <= A&B;
???`OR:<= A | B;
???默认:S <=;
???ENDCASE

endmodule
第2个回答  2012-10-13
....这里的a,b,c都是默认为一位的2进制数,我们所需的乘法器和加法器可以进行多位的运算

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

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

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

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

Verilog HDL位操作的问题
data<={data[6:0],(data[7]+data[4]+data[3]+data[2])}中,因为加法运算的结果是3比特,前面是7比特,总共10比特,因此舍弃高2位,结果是{data[4:0],(data[7]+data[4]+data[3]+data[2])}。分两步写的话其实是强制舍弃了加法的高2位。你想一步写完的话可以这样写:data<={data...

verilog hdl中a=^b(b=1001),那么a等于什么??
异或的缩减运算,b的第0位与第1位异或,结果再与第2位异或,以此类推,最后a等于0

Verilog语法速成(三)
在Verilog HDL中,运算符优先级由上至下依次递减。有13.11节详细介绍了运算符的优先级规则,确保代码的执行顺序符合预期。13.12节讨论了赋值语句和块语句,具体分为赋值语句、连续赋值语句、过程赋值语句和块语句。非阻塞式赋值语句(如:b<=a;)在块执行结束后完成赋值,b的值在赋值操作后保持不变,...

verilog里面**表示多少次幂
1.加(+):2个操作数相加 2.减(-):2个操作数相减或取1个操作数的负数(二进制补码表示)3.乘(*):2个操作数相乘 4.除(\/):2个操作数相除 5.求幂(**)}}:2个操作数求幂,前一个操作数为底数,后一个操作数为指数 在Verilog中,可以声明两种不同的过程:always过程和initial过程...

verilog hdl 基础相关问题
是取模,就是余数,\/是算商数。signed constant关键在于计算顺序,和2补码。举例说第一个式子应该是 (-(4‘d12))%3.= (-(4’b1100))%3= 4'b100%3=1 第二个4’sd12=-4,-4‘sd12=-(-4)=4 第三个'sd12=32'd12,不写位数认为是32bit。

verilog-1.语法、数值表示、数据类型、表达式、编译指令
Verilog HDL使用四种基本值表示逻辑电平:'x表示信号值不确定,'z表示高阻态,常见于未驱动时的输入或寄存器值,根据上下拉确定为1或0。数值表示方法包括:十进制('d\/'D),十六进制('h\/'H),二进制('b\/'B),八进制('o\/'O)。数值可指定位宽或默认为十进制,负数前加-号。实数表示使用...

相似回答