verilog中wr_en = ( configdata[31:28] == 4'hc)

咖啡啤酒2022-10-04 11:39:543条回答

已提交,审核后显示!提交回复

共3条回复
limingchenhui 共回答了24个问题 | 采纳率100%
我觉得这是乱码
从一个编译器复制到其他编译器有可能会产生乱码的
1年前
狂奔de房子 共回答了5个问题 | 采纳率
书写有错误,后面的“;#39;hc” 应该为“?39:hc”
1年前
wswanghang 共回答了1个问题 | 采纳率
书写错误的判断语句,
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
endmodule
关于Verilog的数据截位,看到句话不怎么理解,请帮下忙解释下.
关于Verilog的数据截位,看到句话不怎么理解,请帮下忙解释下.
(1)对于截取乘法的结果,需要加溢出保护的截取规范.例如截取12bit输出的第6位到第2位:if ((out[11:6]==6'b000000)||(out[11:6]==6'b011111)) tmp
deer_fzk1年前1
蜻蜓与蝴蝶 共回答了23个问题 | 采纳率87%
“对于截取乘法的结果”,没看到乘法啊,其实就是防止有溢出的时候产生问题,如果确定不会溢出的话可以忽略
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 Count1
kiffer1年前1
hattie74 共回答了16个问题 | 采纳率75%
egin--end 组合就相当于一个括号,分号表示语句执行结束,begin--end是用来把多条语句放在一起的执行的,也就是说分号前后都不能再出现其他语句,否则报错,括号内的语句表示都是在前面条件下执行的.希望我的回答能对你有帮助.
Verilog中,always 有它存在的程序属于 时序还是组合的?
JUST代号而已1年前1
蔷薇草228 共回答了24个问题 | 采纳率83.3%
表示当q值有变化时进行赋值操作,综合后的电路时组合逻辑电路.
求一个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否则为0
verilog 关于阻塞与非阻塞赋值同时使用时的问题
verilog 关于阻塞与非阻塞赋值同时使用时的问题
举一例子
always @ (posedge CLK or begedge RST)
begin
if(~RST)begin a
hhhh为首1年前1
啄木鸟101 共回答了19个问题 | 采纳率94.7%
恕我直言,你这样的研究没什么意义,这种非正规的代码写法可能会出现很多你意想不到的问题,即使仿真通过了,这也没有实际应用价值.always语句中一般不能有非阻塞赋值语句,除非他描述的是组合逻辑电路,VerilogHDL是硬件描述语言,代码的简洁是次要的,主要是代码对应的电路要简洁(用的元件最少,占的面积最小等).
此外,在各家设计公司里,这样的代码是绝对不允许出现的,而是要有严格的代码规范.
希望我的回答对你能有帮助!
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_a
verilog语言@这个符号的作用
verilog语言@这个符号的作用
如题
例如
always@(a or b)
忘了Shmily1年前1
颓废人生之生nn 共回答了25个问题 | 采纳率92%
固定用法,always语句必须要加一个@在后面,不然系统报错
verilog语言中的@什么意思 verilog语言中的@什么意思
verilog语言中的@什么意思 verilog语言中的@什么意思
如 @(posedge clock);
zqzxyzf1年前1
楼兰神话 共回答了15个问题 | 采纳率86.7%
在英语中@ 读at,也就是在……的时候,这个小学应该学过,对吧.verilog中@ 的含义就是触发条件的意思,举个例子,always 语言加入不加@ 的话,就是一个一直执行的语句常用的是
always #10 clk=~clk;这是测试文件中常用的语句,这个语句会一直执行,不会停止.如果加了@ 那就是可综合的子集,常用的是always @ (posedge clk)就是clk上升沿时触发语句,也就是只有条件满足时才执行.以上有什么问题可以继续追问
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位的值就可以了
复数在verilog里怎么表示?
复数在verilog里怎么表示?
我经过星座映射之后出来的是复数序列,例如1+1j,这个结果在verilog里应怎么表示?
风中的小燕子1年前2
盼盼1986 共回答了16个问题 | 采纳率100%
实部和虚部分开表示
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下的.
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有问题吧.把代码贴出来看看.
p=s?a:b verilog是什么意思?
chenfengye5211年前4
methylorange 共回答了23个问题 | 采纳率87%
条件判断语句
s为1 将a赋值给p
s为0 将b赋值给p
LS好像错了
有关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'b11111111
QQ乖乖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)
verilog语言的verilog这7个字母都代表啥含义?verilog单词的汉字解释?
xmcx3911年前1
hrg1980 共回答了16个问题 | 采纳率87.5%
是Very early readers‘ illustrating log的意思
verilog本身没有中文意思的,就代表了这种硬件语言的名字
希望对你有用:)
在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;
...
verilog中等号左边与右边的#有什么不同
xyz123571年前1
xmyl 共回答了15个问题 | 采纳率80%
#10 a=b+c; a=#10 b+c; 前一个b+c的值 要等到10ns后才开始计算然后立刻赋值给a;而后一个在0时刻已经将b+c的值算好了 等10ns后再传给a.
懂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.
英语翻译请既懂英语又懂点儿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 )
q
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.
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.
verilog中做乘法运算,直接用乘号“*”实现,和用乘法器(模块)有什么区别,区别大吗?
海大富5201年前2
supersonics 共回答了17个问题 | 采纳率94.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.
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了?这就是补码的原理.
有关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之间的数据.所以你这个是错误的.后面相同,是因为产生的数据是正确的
关于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就要有硬件的思维了,
Verilog HDL 模60 BCD码加法计数器 程序段如图所示:为什么要判断高位是否为5?
52911年前1
Alcy 共回答了11个问题 | 采纳率81.8%
因为高四位表征十位,低四位表征个位.这是一个模60的计数器,说明它的计数范围是0到59,所以在个位计数到9时,要判断十位是不是5了,如果是了,就需要归零
帮忙做几个Verilog的题1 Verilog设计中可以把在多个地方都使用的部分程序编写成____,在需要的地方调用这些
帮忙做几个Verilog的题
1 Verilog设计中可以把在多个地方都使用的部分程序编写成____,在需要的地方调用这些程序,以避免重复编码。
2
调用模块(实例化)有两种端口连接方式,方法分别为____。
3 常用的建模级别有_______。
克丰1年前1
paulcentury 共回答了15个问题 | 采纳率80%
函数名称关联和位置关联结构级建模和行为级建模
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接地了.
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;
end
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类型应该就可以了.
求助关于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
bindex
请哪位看看这个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%
out
verilog里这句话的意思是一个8位双向移位寄存器.有个选择语句是:2'b01:q
memaysuccess1年前1
大大大的怪兽 共回答了13个问题 | 采纳率100%
q[7:0]
在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块内的语句是反复执行的 一般写成类似于 ...
在Verilog中对于一个变量,是选成wire型还是选成reg型,根据什么标准来选择?
immedia1年前1
一溜烟8 共回答了21个问题 | 采纳率95.2%
过程语句中使用reg型变量,连续赋值语句中使用wire型变量.希望可以帮到你!
verilog语言中,寄存器中可以保存小数吗
verilog语言中,寄存器中可以保存小数吗
我可以这样写吗?
reg [4:0] s;
.
s
ljf_kk1年前1
yjx_king 共回答了17个问题 | 采纳率88.2%
貌似不行吧.可以把小数转换成补码用十六进制数分别保存整数部分和小数部分.最后处理完后再拼起来.
异步减法器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),你那样写是同步的;
内部应该用
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 这个吧,是个警告,意思是说你定义了某个变量,但是在下面的程序中并没有使用该变量.这个警告可以忽略.
擦,尽量说得详细点,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的说明,
算术左移/右移( )就是保留符号位不动;
逻辑左移/右移()不管符号位,整体做移动.
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代表一个仿真周期即100ns
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 少了下面横杠……
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'bzz11
chenanhua19821年前1
昆仑473虎跃 共回答了29个问题 | 采纳率86.2%
A
操作数为负数时,采用补码.
addr的原码为4‘b1011,反码为4'b1100,补码为4'b1101.
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的第一位
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.
希望可以帮到你.欢迎再讨论,我也正在学这本书
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]
verilog中&符号是什么意思?
verilog中&符号是什么意思?
buffer
清蓝轩1年前2
踅嘛 共回答了18个问题 | 采纳率88.9%
&位与,buffer所有位为1的时候=1,否则等于0
用verilog 语言描述一个二进制的位数
用verilog 语言描述一个二进制的位数
比如求10000是6位,这个数是由异或运算得出的.算法如何实现,麻烦程序和思想都写一下.
比如说两个二进制数异或运算得出来一个值为1000,求这个值的位数是几位?就是求它的长度?
是的,按位异或.
直接异或是很简单,一个运算符就可以搞定,难得就是怎样就这个异或之后的结果的位数?
百日维新1年前1
沈微白 共回答了21个问题 | 采纳率95.2%
不懂你的意思
硬件描述语言从来不求位数,而是指的位数的比如:4’b0001.