用verilog 语言描述一个二进制的位数
![](images/u2507.png)
用verilog 语言描述一个二进制的位数
比如求10000是6位,这个数是由异或运算得出的.算法如何实现,麻烦程序和思想都写一下.
比如说两个二进制数异或运算得出来一个值为1000,求这个值的位数是几位?就是求它的长度?
是的,按位异或.
直接异或是很简单,一个运算符就可以搞定,难得就是怎样就这个异或之后的结果的位数?
比如求10000是6位,这个数是由异或运算得出的.算法如何实现,麻烦程序和思想都写一下.
比如说两个二进制数异或运算得出来一个值为1000,求这个值的位数是几位?就是求它的长度?
是的,按位异或.
直接异或是很简单,一个运算符就可以搞定,难得就是怎样就这个异或之后的结果的位数?
已提交,审核后显示!提交回复
共1条回复
沈微白 共回答了21个问题
|采纳率95.2%- 不懂你的意思
硬件描述语言从来不求位数,而是指的位数的比如:4’b0001. - 1年前
相关推荐
- 数字逻辑设计 求给出verilog程序 用case语句实现操作码的译码 输入a和b
数字逻辑设计 求给出verilog程序 用case语句实现操作码的译码 输入a和b
要求opcode为00 01 10 11时
分别输出a/b a*b a+b a-b貓貓ii1年前1
-
独行侠1003 共回答了22个问题
|采纳率90.9%module(opcode,a,b,c);
reg input [1:0]opcode;
reg output c;
always@(opcode)
begin
case(opcode)
2'b00 :c = a/b;
2'b01:c = a*b;
2'b10:c = a+b;
2'b11:c = a-b;
endcase
end
endmodule1年前查看全部
- 关于Verilog的数据截位,看到句话不怎么理解,请帮下忙解释下.
关于Verilog的数据截位,看到句话不怎么理解,请帮下忙解释下.
(1)对于截取乘法的结果,需要加溢出保护的截取规范.例如截取12bit输出的第6位到第2位:if ((out[11:6]==6'b000000)||(out[11:6]==6'b011111)) tmpdeer_fzk1年前1
-
蜻蜓与蝴蝶 共回答了23个问题
|采纳率87%“对于截取乘法的结果”,没看到乘法啊,其实就是防止有溢出的时候产生问题,如果确定不会溢出的话可以忽略1年前查看全部
- Verilog语法问题!reg [20:0] Count1;\x05 reg [2:0]rLED_Out;\x05 al
Verilog语法问题!
reg [20:0] Count1;
x05 reg [2:0]rLED_Out;
x05 always @ ( posedge CLK or negedge RSTn )
x05 if( RSTn )
x05 begin
x05x05 Count1kiffer1年前1
-
hattie74 共回答了16个问题
|采纳率75%egin--end 组合就相当于一个括号,分号表示语句执行结束,begin--end是用来把多条语句放在一起的执行的,也就是说分号前后都不能再出现其他语句,否则报错,括号内的语句表示都是在前面条件下执行的.希望我的回答能对你有帮助.1年前查看全部
- Verilog中,always 有它存在的程序属于 时序还是组合的?
JUST代号而已1年前1
-
蔷薇草228 共回答了24个问题
|采纳率83.3%表示当q值有变化时进行赋值操作,综合后的电路时组合逻辑电路.1年前查看全部
- 求一个verilog语句的解释reg\x05[3:0]\x05rcounter16;wire \x05\x05rcoun
求一个verilog语句的解释
regx05[3:0]x05rcounter16;
wire x05x05rcounter16_eq_7 = (rcounter16 == 4'd7);东方前哨1年前1
-
andywin808 共回答了17个问题
|采纳率82.4%如果rcount等于7另一个数为1否则为01年前查看全部
- verilog 关于阻塞与非阻塞赋值同时使用时的问题
verilog 关于阻塞与非阻塞赋值同时使用时的问题
举一例子
always @ (posedge CLK or begedge RST)
begin
if(~RST)begin ahhhh为首1年前1
-
啄木鸟101 共回答了19个问题
|采纳率94.7%恕我直言,你这样的研究没什么意义,这种非正规的代码写法可能会出现很多你意想不到的问题,即使仿真通过了,这也没有实际应用价值.always语句中一般不能有非阻塞赋值语句,除非他描述的是组合逻辑电路,VerilogHDL是硬件描述语言,代码的简洁是次要的,主要是代码对应的电路要简洁(用的元件最少,占的面积最小等).
此外,在各家设计公司里,这样的代码是绝对不允许出现的,而是要有严格的代码规范.
希望我的回答对你能有帮助!1年前查看全部
- verilog 非阻塞赋值问题时序逻辑里用非阻塞赋值是不是电路也会产生竞争的情况?好比说:module fbosc2 (
verilog 非阻塞赋值问题
时序逻辑里用非阻塞赋值是不是电路也会产生竞争的情况?好比说:
module fbosc2 (y1,y2,clk,rst);
output y1,y2;
input clk,rst;
reg y1,y2;
always @(posedge clk or posedge rst)
if (rst) y1第一百个梦1年前1
-
水乡吟 共回答了18个问题
|采纳率94.4%第一段代码,Y1和Y2是两个寄存器,寄存器不会竞争冒险..每个时钟Y1和Y2交换寄存器内的值(Y1初始为0,Y2初始为1),就是把Y1的输出接Y2,Y2的输出接Y1.在这里,其实Y1和Y2产生的是和时钟同频的方波.
第二段代码中也没有竞争冒险,count最后的值会取0而不是3,这是verilog默认的.但是综合后的硬件电路图可能不是你想要的那样,一般也不这样写,最好写成
always @ (posedge clk)
begin
if(count==2)
begin
data_a1年前查看全部
- verilog语言@这个符号的作用
verilog语言@这个符号的作用
如题
例如
always@(a or b)忘了Shmily1年前1
-
颓废人生之生nn 共回答了25个问题
|采纳率92%固定用法,always语句必须要加一个@在后面,不然系统报错1年前查看全部
- verilog语言中的@什么意思 verilog语言中的@什么意思
verilog语言中的@什么意思 verilog语言中的@什么意思
如 @(posedge clock);zqzxyzf1年前1
-
楼兰神话 共回答了15个问题
|采纳率86.7%在英语中@ 读at,也就是在……的时候,这个小学应该学过,对吧.verilog中@ 的含义就是触发条件的意思,举个例子,always 语言加入不加@ 的话,就是一个一直执行的语句常用的是
always #10 clk=~clk;这是测试文件中常用的语句,这个语句会一直执行,不会停止.如果加了@ 那就是可综合的子集,常用的是always @ (posedge clk)就是clk上升沿时触发语句,也就是只有条件满足时才执行.以上有什么问题可以继续追问1年前查看全部
- verilog怎么做小数除法?如:我现在做一个算法,需要得到N除以W的值,其中N是1024固定的,而W是(3,13)共1
verilog怎么做小数除法?
如:
我现在做一个算法,需要得到N除以W的值,其中N是1024固定的,而W是(3,13)共16位表示的无符号小数,3位整数,13位小数,如何得到这个商呢?用除法IP只能得到商和余数,求各路大神指教.jolhk91年前1
-
AAXTD 共回答了25个问题
|采纳率92%只能求近似值,先把小数的13位变成整数,即乘2^13,这时候的16位整数做了一次近似取整,最后在乘2^13就可以了,在除法器中只要让N=1024*2^13 ,W=16位的值就可以了1年前查看全部
- 复数在verilog里怎么表示?
复数在verilog里怎么表示?
我经过星座映射之后出来的是复数序列,例如1+1j,这个结果在verilog里应怎么表示?风中的小燕子1年前2
-
盼盼1986 共回答了16个问题
|采纳率100%实部和虚部分开表示1年前查看全部
- Verilog HDL 生成块 的问题,为什么直接循环不行?
Verilog HDL 生成块 的问题,为什么直接循环不行?
看了VERILOG的生成块那一节,没怎么看懂,然后上网搜了一下生成块的问题,结果搜出来一个人问的东西,但没人解答,求达人解答!
//错误的程序
module try(out,i0,i1);
parameter N=32;
中间声明变量省略掉,定义输出是out,输入是i0,i1
for(i=0;i詹姆斯_james1年前1
-
xxanonymity 共回答了28个问题
|采纳率89.3%你要按照功能来啊.generate本来就是用来构建逻辑的,你这个位置就是实例化.而单纯的for只是用来做循环.2个在一起就是循环构建逻辑.你只是单纯的for,编译器当然不知道你是要干嘛.而且for是不能直接出现在module下的.1年前查看全部
- verilog语言quartus功能仿真,计数错误!
verilog语言quartus功能仿真,计数错误!
请问我用quartus功能仿真,输入波形加上overwrite clock作为计数脉冲,为什么计数输出值会缺少几个数,会,0计到7直接到10,每8个数缺两个?这个计数条件一直满足!
module period (votage,clk,Tt,Enable_Tt);
input votage,clk;
output [15:0] Tt;
output Enable_Tt;
reg [15:0] Tt;
reg [15:0] Tt_temp;
reg [15:0] Tt_temp2;
reg [15:0] Tt_temp3;
reg Enable_Tt;
parameter
Tt_delay=100;
initial
x05begin
x05x05Tt=0;
x05x05Tt_temp=0;
x05x05Tt_temp2=0;
x05x05Tt_temp3=0;
x05x05Enable_Tt=0;
x05end
x05
always @(posedge clk)
x05if(!votage)
x05x05begin
x05x05x05Tt_temp=Tt_temp+1;
x05x05x05Tt=Tt_temp;
x05x05x05Enable_Tt=0;
x05x05x05Tt_temp2=0;
x05x05end
x05else
x05begin
x05x05Tt_temp2=Tt_temp2+1;
x05x05Tt_temp3=Tt_temp2;
x05if(Tt_temp3>Tt_delay)
x05x05begin
x05x05x05Tt_temp2=0;
x05x05x05Tt_temp=0;
x05x05x05Enable_Tt=1;
x05x05end
x05x05
x05else
x05begin
x05Tt_temp3=0;
x05end
x05x05
x05end
endmodule
3480155581年前1
-
Exho 共回答了13个问题
|采纳率76.9%你的CLK有问题吧.把代码贴出来看看.1年前查看全部
- p=s?a:b verilog是什么意思?
chenfengye5211年前4
-
methylorange 共回答了23个问题
|采纳率87%条件判断语句
s为1 将a赋值给p
s为0 将b赋值给p
LS好像错了1年前查看全部
- 有关verilog语法的题目有这样一个语句:reg[7:0] A; A=2'hFF;问A此时的值应该是多少,给出四个选项
有关verilog语法的题目
有这样一个语句:reg[7:0] A;
A=2'hFF;
问A此时的值应该是多少,给出四个选项:(1)8‘b0000_0011 (2) 8'h03 (3) 8'b1111_1111 (4) 8'b11111111QQ乖乖1年前3
-
无言独上高楼 共回答了18个问题
|采纳率88.9%A=2'hFF;相当于A=2'b11;
'h代表十六进制数,FF转换成二进制就是1111_1111,前面的数字2代表位数,就是只取低2位.
而A被定义为reg[7:0] A; 就是本身有8位,所以答案是(1)(2)1年前查看全部
- verilog语言的verilog这7个字母都代表啥含义?verilog单词的汉字解释?
xmcx3911年前1
-
hrg1980 共回答了16个问题
|采纳率87.5%是Very early readers‘ illustrating log的意思
verilog本身没有中文意思的,就代表了这种硬件语言的名字
希望对你有用:)1年前查看全部
- 在Verilog中如何定义一个常数(举例说明)
顶极女子1年前2
-
赌酒 共回答了14个问题
|采纳率92.9%用parameter
module test(din,dout,clk)
parameter size = 8;
input [size-1 :0] din;
input clk;
output [size :0] dout;
...1年前查看全部
- verilog中等号左边与右边的#有什么不同
xyz123571年前1
-
xmyl 共回答了15个问题
|采纳率80%#10 a=b+c; a=#10 b+c; 前一个b+c的值 要等到10ns后才开始计算然后立刻赋值给a;而后一个在0时刻已经将b+c的值算好了 等10ns后再传给a.1年前查看全部
- 懂verilog HDL语言的来
懂verilog HDL语言的来
大家帮我看看这个三八译码器的程序,帮我找找哪里错了~
module 38(A,B);
input [2:0] A;
output [7:0] B;
reg [7:0] B;
always@(B)
begin
case (a)
3'b000:B = 8'b00000001;
3'b001:B = 8'b00000010;
3'b010:B = 8'b00000100;
3'b011:B = 8'b00001000;
3'b100:B = 8'b00010000;
3'b101:B = 8'b00100000;
3'b110:B = 8'b01000000;
3'b111:B = 8'b10000000;
endcase
end
endmodule素颜素语1年前1
-
mebius623 共回答了17个问题
|采纳率88.2%module my_38(A,B);
input [2:0] A;
output [7:0] B;
reg [7:0] B;
always@(A)
begin
case (A)
3'b000:B = 8'b00000001;
3'b001:B = 8'b00000010;
3'b010:B = 8'b00000100;
3'b011:B = 8'b00001000;
3'b100:B = 8'b00010000;
3'b101:B = 8'b00100000;
3'b110:B = 8'b01000000;
3'b111:B = 8'b10000000;
endcase
end
endmodule
该成这样就OK了,原因是模块明必须以字母开头,你要做的是38译码所以always的敏感列表要该成A,case中的a是没用定义的变量Verilog是大小写敏感的也就是大写和小写是不同的变量你这里只有A所以把a改成A.1年前查看全部
- 英语翻译请既懂英语又懂点儿verilog或vhdl语言的高手帮忙翻译一下以下内容:CAUSE:In a conditio
英语翻译
请既懂英语又懂点儿verilog或vhdl语言的高手帮忙翻译一下以下内容:
CAUSE:In a conditional statement at the specified location in a Verilog Design File (.v),you specified a condition that Quartus II Integrated Synthesis cannot use to classify the edges in the enclosing always construct's event control.When an event control contains multiple edges,Quartus II Integrated Synthesis distinguishes the asynchronous control signals from the clock by analyzing the conditional statements in the always construct.For example,the following code fragment contains an always construct whose event control contains three edges---two asynchronous resets and a clock.
always @ (posedge clk or posedge rst1 or posedge rst2) begin
if ( rst1 || rst2 )
q
太简短了!分可以加!
ps:z919z你搞毛啊!我在回答一楼的问题啊!他不是说分太低了吗!我来这就是要虚心学习的,这不用你说!
我就是想请个高人逐字逐句的翻译,不要大概的,大概的我也懂,求学就是要精要细!我说简短并没有冒犯的意思,是我个人的要求(难道我来提问,提个要求也不行吗?那不就成了随便乱答都是正确答案囖)!
不过你放心,如果期限内真没高人出现,我也会选你,能者居之!唯美天后1年前4
-
屋檐无语 共回答了16个问题
|采纳率75%分可以不给.但询问的态度要好一点.我是觉得,帮别人一小下能增加自己被帮的机会.不要把我们当作要分的.OK?
如果你想理解这段话,我觉得我的回答足够了.我的回答的话不好理解的话,你可以继续问.这也说明,你试图理解我的回答了,是对我的一种尊重.像你这样"二楼不行啊,太简短了!"那像啥?考官大人?
你要逐字翻译的话还是请高人吧.
原因:在.v文件的条件语句中,你定义.如果一个事件的控制条件包含混合的边沿.
总之,你会收到一个错误,如果你尝试用一个单独的条件表达式来同时测试 异步 的reset/set 和 异步 reset/set 的条件
大体意思是说,always结构中的敏感信号(always construct's event control) 定义有问题,没法综合.
比如说,
always @ (posedge clk or posedge rst) begin
if ( rst || sync_rst )
q1年前查看全部
- Verilog:设计一个八选一数据选择器,利用八选一数据选择器实现逻辑函数F(A,B,C)=M1+M2+M5+M7
Verilog:设计一个八选一数据选择器,利用八选一数据选择器实现逻辑函数F(A,B,C)=M1+M2+M5+M7
M1是啥?
华华0251年前1
-
yy00jj 共回答了21个问题
|采纳率95.2%你这个描述有问题.
M是最大积的表达方式,M1表示的是A+B+C',M2表示的是A+B'+C,M5表示的是A'+B+C',M7表示的是A'+B'+C';但是,这里应该是M1*M2*M5*M7才对.
如果是加和的话,应该是最小和的表达方式,但这样的话m应该小写,如果是m1,m2,m5和m7,分别应该是A'+B'+C,A'+B+C',A+B'+C和A+B+C.1年前查看全部
- verilog HDL module traffic_lights/*(on,off,red_tics,amber_ti
verilog HDL
module traffic_lights/*(on,off,red_tics,amber_tics,green_tics,clock,red,amber,green)*/;
x05/*input on,off,red_tics,amber_tics,green_tics;
x05output clock,red,amber,green;
x05wire red_tics,amber_tics,green_tics;*/
x05reg clock,red,amber,green;
x05parameter on=1,off=0,red_tics=350,amber_tics=30,green_tics=200;
x05initial red=off;
x05initial amber=off;
x05initial green=off;
x05
x05always
x05begin
x05x05red=on;
x05x05light(red,red_tics);
x05x05green=on;
x05x05light(green,green_tics);
x05x05amber=on;
x05x05light(amber,amber_tics);
x05end
x05
x05task light;
x05x05output color;
x05x05input [31:0] tics;
x05begin
x05x05repeat(tics)@(posedge clock)
x05x05x05color=off;
x05end
x05endtask
x05
x05
x05always
x05x05begin
x05x05
x05x05#100 clock=0;
x05x05#100 clock=1;
x05x05end
x05x05
endmodule
以上是一个红绿黄交通灯行为模块,
我现在想调用这个模块应该怎么调用啊,怎么确定他的输入输出端口,我想像我注释里面那样综合成原理图,可是出现了错误,本人verilog HDL新手.阿弥陀佛547211年前1
-
hahase 共回答了9个问题
|采纳率100%%是取模,就是余数,/是算商数.
signed constant关键在于计算顺序,和2补码.举例说第一个式子应该是
(-(4‘d12))%3.= (-(4’b1100))%3= 4'b100%3=1
第二个4’sd12=-4,-4‘sd12=-(-4)=4
第三个'sd12=32'd12,不写位数认为是32bit.1年前查看全部
- verilog中做乘法运算,直接用乘号“*”实现,和用乘法器(模块)有什么区别,区别大吗?
海大富5201年前2
-
supersonics 共回答了17个问题
|采纳率94.1%直接用乘号,综合后也是用的乘法器,两个是一样的结果1年前查看全部
- 用VHDL或Verilog语言编以下程序:
用VHDL或Verilog语言编以下程序:
1.Construct a systematic (7,3) linear block code.You can use c lauguage or HDL (VHDL or Verilog-HDL) to describe it.Please write the detail of how to realize it in computer lauguage.And list the program lines.
2.We have already learned how to code and decode cyclic codes.Please use the generator polynominal g(x)=1+x+x2+x4 to construct a (7,3) code.And if the received code vector is[1 1 0 0 1 1 1],how to decode it?Use c or HDL lauguage to realize the code and decode system.
3.Construct the convolutional code defined by
g0(x)=1+x; g1(x)=1+x*x;
For a 13-bit source message with an additional two “0” bits appended to the end.Please list the program lines and give the final trasmit sequence.as8521年前1
-
j49601 共回答了18个问题
|采纳率94.4%This is a check of CRC, I can give your help to finish this task if you can pay some meney for my work.please connect me by gangle2008@gmail.com.1年前查看全部
- verilog 有符号数运算在下面的代码中:reg [0:5] bar;integer tab;tab = - 4'd1
verilog 有符号数运算
在下面的代码中:
reg [0:5] bar;
integer tab;
tab = - 4'd12 /4;//tab被赋于十进制1073741821(位值为011...11101)
我的问题是:作为有符号数,为什么进行上步操作后,tab对应的十进制数是1073741821呀?
本人初学者,有很多地方想不明白.天空里的猪1年前1
-
狼麦 共回答了11个问题
|采纳率100%这是正确的,
integer在verilog中是有符号的32位数,最高位为符号位,表示的范围为:
-(2的31次方)到2的31次方减1.tab是负数(-3),它的补码即为011...11101,若用十进制显示则为1073741821,你若用有符号的十进制显示则会显示-3.
你观察一下011...11101,若加个3会怎么样?是不是只有最高位为1了?这就是补码的原理.1年前查看全部
- 有关verilog的一个问题,本人菜鸟
有关verilog的一个问题,本人菜鸟
比如说定义一个有符号的数 reg signed[7:0] datain在测试文件文件中 有如下#10 datain=$random%255
表示延迟10时刻:产生-255到255的伪随机数(前面有repeat语句代表每10时刻产生一个随机数产生XX次)
这是datain有一个输出,.若是将定义改变为 reg signed[9:0]其余不变则datain的输出不会和signed[7:0] datain 的相同.而将定义改变为reg signed[11:0]输出结果则与 reg signed[9:0]的相同,为什么会这样难道位数变了,结果便不一样么?thean1年前1
-
边界_oo 共回答了23个问题
|采纳率95.7%eg signed[7:0] datain 只能表示-128到127之间的数据.所以你这个是错误的.后面相同,是因为产生的数据是正确的1年前查看全部
- 关于verilog里数的描述verilog里的数可以这样表示吗?就是15表示成4‘b15,还是必须要写成4’b1111?
关于verilog里数的描述
verilog里的数可以这样表示吗?就是15表示成4‘b15,还是必须要写成4’b1111?后面的数如果不是前面表示的位数,是不是就默认是十进制的大小呢?比如3‘h98,是不是就是十进制的98,可以这样写吗?
4'd15不是表示4位的十进制数15吗?可是原数是4位的2进制数啊,虽然两个数实际大小一样,但是进制不一样了,这样可以?天空8081年前1
-
的区 共回答了20个问题
|采纳率90%1.十进制15可以用4位表示为4'b1111(二进制),4'd15(十进制),或者4'hF(十六进制).也就是要与进制对应起来.4'b15就绝对是错的了,因为二进制里是只有1和0的.
2.3'h98并不是十进制的98,而是十六进制的,也就是十进制的9*16+8=152.
而3'd98是十进制的98.如果直接写98,默认就是十进制的98了.位数多高位补零,位数少就会截断.
补充:硬件里面都是用二进制的,只是为了方便可以可以用十进制表示.既然用了Verilog就要有硬件的思维了,1年前查看全部
- Verilog HDL 模60 BCD码加法计数器 程序段如图所示:为什么要判断高位是否为5?
52911年前1
-
Alcy 共回答了11个问题
|采纳率81.8%因为高四位表征十位,低四位表征个位.这是一个模60的计数器,说明它的计数范围是0到59,所以在个位计数到9时,要判断十位是不是5了,如果是了,就需要归零1年前查看全部
- 帮忙做几个Verilog的题1 Verilog设计中可以把在多个地方都使用的部分程序编写成____,在需要的地方调用这些
帮忙做几个Verilog的题
1 Verilog设计中可以把在多个地方都使用的部分程序编写成____,在需要的地方调用这些程序,以避免重复编码。
2
调用模块(实例化)有两种端口连接方式,方法分别为____。
3 常用的建模级别有_______。
克丰1年前1
-
paulcentury 共回答了15个问题
|采纳率80%函数名称关联和位置关联结构级建模和行为级建模1年前查看全部
- verilog hdl 怎么解决这警告呢
verilog hdl 怎么解决这警告呢
Warning:The Reserve All Unused Pins setting has not been specified,and will default to 'As output driving ground'.m8gqutw61年前1
-
lyhewx 共回答了19个问题
|采纳率94.7%你定义了输出,而这个输出一直是低电平,你的程序里并没有给出输出变化需要的条件.
当生成rtl电路的时候,就自动将output接地了.1年前查看全部
- verilog如何表示缺省的数字呢?
verilog如何表示缺省的数字呢?
比如
case({op,funct,rt})
{BEQ_op,6'bxxxxxx,5'bxxxxx}:ALUCode=alu_beq;
{BNE_op,6'bxxxxxx,5'bxxxxx}:ALUCode=alu_bne;
我想表示当funct和rt为任意值时,只要op=BEQ_op,则ALUCode=alu_beq.如何表示缺省的funct和rt呢?用x好像不行啊大雨骤下1年前1
-
笛姬 共回答了18个问题
|采纳率88.9%case(op)
BEQ_op:ALUCode=alu_beq;
或者直接
if(op==BEQ_op)begin
ALUCode=alu_beq;
end1年前查看全部
- verilog 中编译错误:port must be connected to a structural net exp
verilog 中编译错误:port must be connected to a structural net expression
module counter8(clk,clr,te,le,a,tf);
input clk,te,le,clr;
input [7:0] a;
output [7:0] tf;
reg [7:0] tf,th;
regth u1(le,a,th);
count u2(clk,clr,te,th,tf);
endmodule
module regth(le,a,thout);
input le;
input [7:0] a;
output [7:0] thout;
reg[7:0] thout;
always@(le)
begin
if(le==1) thout叮当missyou1年前1
-
宇娘 共回答了20个问题
|采纳率95%你的th在counter8中定义为reg类型,而在regth中thout是一个输出信号默认为net类型,所以你在counter8模块中将th传给regth模块的thout就会报这样的错误,模块counter8中th信号只是一个模块之间的连线,所以定义成wire类型应该就可以了.1年前查看全部
- 求助关于verilog硬件语言的仿真测试向量段module kk(a2,a1,a0,b2,b1,b0,p5,p4,p3,
求助关于verilog硬件语言的仿真测试向量段module kk(a2,a1,a0,b2,b1,b0,p5,p4,p3,p2,p1,p0 ); input a2,a1
module kk(a2,a1,a0,b2,b1,b0,p5,p4,p3,p2,p1,p0 );
input a2,a1,a0,b2,b1,b0;
output p5,p4,p3,p2,p1,p0;
reg
reg[5:0]result;
reg[2:0]a,b;
integer bindex;
always@(a2 or a1 or a0 or b2 or b1 or b0)
begin
a={a2,a1,a0};
b={b2,b1,b0};
result=0;
for(bindex=0;bindex<3;bindex=bindex+1)
if(b[bindex])
result=result+(a<
{p5,p4,p3,p2,p1,p0}=result;
end
endmodule
仿真向量段?
gobuter1年前1
-
花雨xy 共回答了25个问题
|采纳率96%首先你的输出没有定义reg这样仿真肯定不过,其次你用for语句不可综合,应该改成
if(bindex==4)
bindex=0;
else
begin
bindex1年前查看全部
- 请哪位看看这个verilog程序,是一个四位计数器,有几句没看懂.
请哪位看看这个verilog程序,是一个四位计数器,有几句没看懂.
module cheng(clk,clr,out);
input clk,clr;
output[3:0] out;
reg[3:0] out;
always@(posedge clk or posedge clr)
begin
if(clr)
x05out乱音1年前1
-
ruixuan笨笨 共回答了10个问题
|采纳率100%out1年前查看全部
- verilog里这句话的意思是一个8位双向移位寄存器.有个选择语句是:2'b01:q
memaysuccess1年前1
-
大大大的怪兽 共回答了13个问题
|采纳率100%q[7:0]1年前查看全部
- 在verilog里always和 initial的区别是什么?
在verilog里always和 initial的区别是什么?
module tb_fulladder;
wire SUM,C_OUT;
reg A,B,C_IN;
fulladder m1(.sum(SUM),
.c_out(C_OUT),
.a(A),
.b(B),
.c_in(C_IN));
initial
begin
A=1'd0;B=1'd0;C_IN=1'd0;
#5 A=1'd1;B=1'd1;C_IN=1'd1;
#5 A=1'd0;B=1'd1;C_IN=1'd1;
#5 A=1'd1;B=1'd0;C_IN=1'd0;
#5 A=1'd1;B=1'd1;C_IN=1'd0;
end
endmodule
这为什么用 initial牛牛991年前1
-
甜葡萄0314 共回答了13个问题
|采纳率92.3%initial块内的语句从上到下只执行一次 不符合电路的运行模式 所以是不可综合的 它一般用来仿真时赋值;你这个代码里面的initial就是用来给输入赋值测试你这个全加器的.always块内的语句是反复执行的 一般写成类似于 ...1年前查看全部
- 在Verilog中对于一个变量,是选成wire型还是选成reg型,根据什么标准来选择?
immedia1年前1
-
一溜烟8 共回答了21个问题
|采纳率95.2%过程语句中使用reg型变量,连续赋值语句中使用wire型变量.希望可以帮到你!1年前查看全部
- verilog中wr_en = ( configdata[31:28] == 4'hc)
咖啡啤酒1年前3
-
limingchenhui 共回答了24个问题
|采纳率100%我觉得这是乱码
从一个编译器复制到其他编译器有可能会产生乱码的1年前查看全部
- verilog语言中,寄存器中可以保存小数吗
verilog语言中,寄存器中可以保存小数吗
我可以这样写吗?
reg [4:0] s;
.
sljf_kk1年前1
-
yjx_king 共回答了17个问题
|采纳率88.2%貌似不行吧.可以把小数转换成补码用十六进制数分别保存整数部分和小数部分.最后处理完后再拼起来.1年前查看全部
- 异步减法器Verilog HDL代码
异步减法器Verilog HDL代码
使用的是上升沿触发的D触发器,下面的代码不知道哪里错了,高手指教(本人新手,刚学这个)
module Dcfq(Clk,Clr,D,Q,NQ);
input Clk,Clr,D;
output Q,NQ;
reg Q,NQ;
always@(posedge Clk)
begin
if(Clr)
Q=0;
else
Q=D;
NQ=~Q;
end
endmodule
module ybjfjsq(Clk,Clr,Q);
input Clk,Clr;
output [2:0]Q;
wire [2:0]D;
Dcfq m0(.Clk(Clk),.Clr(Clr),.D(D[0]),.Q(Q[0]),.NQ(D[0]));
Dcfq m1(.Clk(Q[0]),.Clr(Clr),.D(D[1]),.Q(Q[1]),.NQ(D[1]));
Dcfq m2(.Clk(Q[1]),.Clr(Clr),.D(D[2]),.Q(Q[2]),.NQ(D[2]));
endmodule
微笑像天使1年前1
-
bscjcctv 共回答了22个问题
|采纳率86.4%你这个是个计数器;
异步的模块应该always@(posedge Clk or posedge clr),你那样写是同步的;
内部应该用1年前查看全部
- verilog used but never assigned
verilog used but never assigned
RT,这是一个warning,求问可能出现的错误会是什么呢?
1.Node of sequential type is unconnected in block
2.Signal is used but never assigned.Tied to default value.
3.Property "use_dsp48" is not applicable for this technology.
//////////////////////////////////////////////////////////////////////////////////////////////////北极星0091年前1
-
水深火热耶 共回答了23个问题
|采纳率82.6%应该是:Variable is assigned but its Value is never used 这个吧,是个警告,意思是说你定义了某个变量,但是在下面的程序中并没有使用该变量.这个警告可以忽略.1年前查看全部
- 擦,尽量说得详细点,Verilog中 算术左移/右移 与 逻辑左移/右移 到底有什么区别?各举个例子,感激不尽.
飞来之脚1年前1
-
南山种花 共回答了17个问题
|采纳率100%// The following operators will shift a bus right or left a number of bits.
//
// ...Right shift and maintain sign bit
这是xilinx的说明,
算术左移/右移( )就是保留符号位不动;
逻辑左移/右移()不管符号位,整体做移动.1年前查看全部
- verilog语言中always的用法
乔乔09151年前1
-
香水梦 共回答了19个问题
|采纳率100%always@(敏感事件列表) 用于描述时序逻辑
敏感事件上升沿 posedge,下降沿 negedge,或电平
敏感事件列表中可以包含多个敏感事件,但不可以同时包括电平敏感事件和边沿敏感事件,也不可以同时包括同一个信号的上升沿和下降沿,这两个事件可以合并为一个电平敏感事件.
在新的verilog2001中“,”和“or”都可以用来分割敏感事件了,可以用“*”代表所有输入信号,这可以防止遗漏.
合法的写法:
always@ *
always@ (posedge clk1,negedge clk2)
always@ (a or b)
`timescale 100ns/100ns //定义仿真基本周期为100ns
always #1 clk=~clk //#1代表一个仿真周期即100ns1年前查看全部
- Error (10170):Verilog HDL syntax error at ***.v(222) near te
Error (10170):Verilog HDL syntax error at ***.v(222) near text "n"; expecting ";"
assign empty_n = cnt n;
assign full_n = (cnt (max_size-n+1));
assign level = {2{cnt[aw]}} | cnt[aw-1:aw-2];
语法检查显示第一行有错误lmxwy1年前1
-
伙伴你好啊 共回答了18个问题
|采纳率94.4%assign empty_n = cnt n;
你的cnt_n 少了下面横杠……1年前查看全部
- verilog中addr定义为red型变量,addr[3:0]=-3,addr是操作数时,他的值是()
verilog中addr定义为red型变量,addr[3:0]=-3,addr是操作数时,他的值是()
A、4'b1101 B,4'b0011 C,4'bxx1 D,4'bzz11chenanhua19821年前1
-
昆仑473虎跃 共回答了29个问题
|采纳率86.2%A
操作数为负数时,采用补码.
addr的原码为4‘b1011,反码为4'b1100,补码为4'b1101.1年前查看全部
- verilog变量问题reg变量定义时后面会有[a:b] 后面的b值是1或0有区别吗 是其他的值呢?还有就是有一句是re
verilog变量问题
reg变量定义时后面会有[a:b] 后面的b值是1或0有区别吗 是其他的值呢?
还有就是有一句是reg[16:1] shift_opb; if(shift_opb[1])…… 这里if里面的式子shift_opb[1]代表什么?水经之恋1年前1
-
聆听清风 共回答了15个问题
|采纳率100%eg[16:1] shift_opb;定义了16位的shift_opb
shift_opb[1]代表16位的shift_opb的第一位1年前查看全部
- verilog入门教程第3章里讲的32的5位二进制是10000,6位2进制是110001是怎么回事
verilog入门教程第3章里讲的32的5位二进制是10000,6位2进制是110001是怎么回事
基数格式
1.简单的十进制格式
这种形式的整数定义为带有一个可选的 “+” (一元)或 “-” (一元)操作符的数字序
列.下面是这种简易十进制形式整数的例子.
32 十进制数3 2
-15 十进制数-1 5
这种形式的整数值代表一个有符号的数.负数可使用两种补码形式表示.因此 3 2在5位的
二进制形式中为1 0 0 0 0,在6位二进制形式中为11 0 0 0 1;-1 5在5位二进制形式中为1 0 0 0 1,在6
位二进制形式中为11 0 0 0 1.沧海难水1年前1
-
紫耳钉 共回答了15个问题
|采纳率53.3%我的书上不是这么写的:
因此,32在6位的二进制形式中为100000,在7位二进制形式中为0100000;-15在5位二进制形式中为10001,在6位二进制形式中为110001.
希望可以帮到你.欢迎再讨论,我也正在学这本书1年前查看全部
- Verilog中有“?”么?apple_x 38 ) (random_num[10:5] - 25 ) :( rando
Verilog中有“?”么?
apple_x 38 ) (random_num[10:5] - 25 ) :( random_num[10:5] == 0 ) 1:random_num[10:5];
这里问号是干嘛的?还有“:”……松子很平凡1年前1
-
后玄 共回答了15个问题
|采纳率93.3%这是这么一个语句 a=(b)?c:d,如果b为真,则a=c,否则a=d.
你这个的意思就是说:
如果random_num[10:5] > 38,apple_x等于(random_num[10:5] - 25 ) ;
如果random_num[10:5] 小于等于38,
则判断random_num[10:5] == 0 是否成立,如果成立,则apple_x就等于1, 如果random_num[10:5] == 0 不成立,则apple_x就等于random_num[10:5]1年前查看全部
- verilog中&符号是什么意思?
verilog中&符号是什么意思?
buffer清蓝轩1年前2
-
踅嘛 共回答了18个问题
|采纳率88.9%&位与,buffer所有位为1的时候=1,否则等于01年前查看全部
大家在问
- 1Please get ready__the meeting begins.A.before B.since C.so t
- 2小林买了5本日记本和5支钢笔,每本日记本10分之57元,每支钢笔10分之69元.小林共用了多少钱
- 31+3 +5+7+9、、、、、97+99 简便计算
- 4My father went to school (on foot) when he was a child括号部分提问
- 5英语翻译Appendix 1:Exploration ProgramIntroductionThis is a revi
- 6我得到诸葛先生就像鱼儿得到水一样是比喻句吗
- 7填英文简历的时候,地址也要用英文写么?
- 8下列哪一项不是科学探究的方法( )
- 9英语一初一下册单项选择题目知识点
- 10Jim is American,but now he has got used____ in France.A.to l
- 11英语翻译Als ich dich zum ersten Mal sah,hab ich mich heimlich in
- 12关于VB中从 1到35随即产生5个数,要求有些数不能同同时出现的问题,写完后每次都是运算卡死,
- 13密立根油滴实验数据处理希望借用做过该实验的同学的数据包括下落时间t,每个油滴的电量q,每个油滴所带电荷数n.
- 14the time it takes to cycle is generally easier to predict th
- 15《凡卡》作者在文中穿插了两次回忆,这样安排是为了说明什么