verilog小程序

verilog小程序,第1张

你前边说

按下btn[0],做减法

按下btn[1],做加法,结果后来程序又成了s来决定加还是减,你干脆把s接到按键上,不按下加,按下减就可以了。

还有需要注意的是,你的输入input[7:0]sw 应该接到拨码开关之类的输入上面,若你只有四个拨码开关,可以在程序中零其余四个为0(接地),拨码开关给四个1排列下就有不同的数值了。

不懂再问。

always@(posedge clk)

begin

singnal =>..

end

在时序逻辑的赋值里面必须用阻塞赋值

而且一个always块 *** 作一个被赋值信号!

修改前:

always@(posedge clk)

begin

if(aaa==0)

begin

aaa=1

show=0

end

else

begin

show=show+1

end

end

修改后:

//for reg aaa

always@(posedge clk)

begin

if(aaa==0)

aaa《=1

end

//for reg show

always@(posedge clk) begin

if(aaa==0)

show =>1'b0

else

begin

show=>show+1

end

end

请分清楚是同步reset还是异步reset

always@(posedge rst)

begin

aaa=0

end

你这种写法会使编译器发疯的

想一想:如果posedge rst &&aaa==0

然后aaa的值是多少???

所以你应该这么写

1.根据一个always块 *** 作一个被赋值信号

always@(posedge clk or posedge rst)

if(rst)

aaa =>1'b0

else

if (..)

...

else

...

end

最后一点,请把名字起得好一点 通俗一点

别起什么aaa的破名字!!

你好,verilog自己提供一个$random的函数来生成随机数。这个结果直接就是一个整数。

下面是一个例子:

reg[23:0] rand

rand={$random} %60//通过位拼接 *** 作{}产生0—59范围的随机数


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11143555.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存