完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
`程序是一个四位二进制加法计数器: moduleCNT4B(CLK,RST,ENA,CLK_1,RST_1,ENA_1,OUTY,COUT);//端口声明 input CLK,RST,ENA; output CLK_1,RST_1,ENA_1; output[3:0] OUTY; output COUT; reg[3:0] OUTY; reg COUT;//寄存器变量OUTY,位宽为1 wire CLK_1; wire RST_1; wire ENA_1; assign CLK_1 = CLK; assign RST_1 = RST; assign ENA_1 = ENA; always@(posedge CLKor negedge RST) /*当CLK上升沿或者RST上升沿时,触发always模块执行*/ begin if(!RST) begin OUTY<=4'b0000; COUT<=1'b0;/*当复位信号等于0时,计数OUTY、COUT置0*/ end else if(ENA)/*当使能信号为1时,计数器计数工作*/ begin OUTY<=OUTY+1; COUT<=OUTY[0] & OUTY[1] &OUTY[2] & OUTY[3]; /*计数显示*/ end end endmodule 红色部分是不明白的地方,<=是赋值的意思么?用等号可以么?还有COUT<=OUTY[0] & OUTY[1] & OUTY[2] & OUTY[3]这一句,用&号连接不是逻辑与么... 买了自学课本的,没在手边,新人小白求问,先谢谢各位! ` ![]() |
|
相关推荐
10个回答
|
|
新人求助!
|
|
|
|
帮你顶~
|
|
|
|
OUTY<=OUTY+1;是赋值的意思,将OUTY加1,就和C语言 OUTY=OUTY+1 是一样的
COUT<=OUTY[0] & OUTY[1] & OUTY[2] & OUTY[3] 这句话的意识是 当OUTY累加到 (二进制) 1111b 是,COUT的值就是1,其余COUT的值为0,四位二进制加法器,加满溢出,COUT就是溢出标志 |
|
|
|
OUTY加到1111b时, OUTY=1&1&1&1=1;只有这一种情况OUTY的值是1,&符号意思是逻辑与
|
|
|
|
我手头有FPGA开发板的学习资料可以分享给你
|
|
|
|
"<="是非阻塞赋值方式,“=”是阻塞赋值方式,“<=”赋值语句要等到整个块结束之后在进行赋值,“=”则是在该条语句执行完就赋值。
|
|
|
|
首先说<=的问题,是赋值符号,称之为非阻塞赋值,这种赋值是在alway 块内语句都执行完后才赋值,=是阻塞赋值,即执行该条语句就赋值,这里是时序逻辑,所以要用<=。第二个问题,四个值之间是与的关系,即都为1 cout为1,即outy一共计数了四个值,cout为进位
|
|
|
|
这个自学有难度。
|
|
|
|
1.<=是非阻塞赋值,在always块完成后才赋值;
=是阻塞赋值,赋值完成后才进入下一句; 一般时序逻辑用<=,组合逻辑用= 2.&按位与,在此处应该是检测OUTY是否溢出 |
|
|
|
因为是时序逻辑,所以用<=
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1369 浏览 1 评论
462 浏览 0 评论
求FPGA 驱动控制ltc2271 或者 ltc2180 或者 ltc2190或者 ltc2202 的代码
2069 浏览 0 评论
521 浏览 0 评论
求助:遇见诡异问题,FPGA模块A输出端口连接模块B输入后,模块A不能正常工作的
2183 浏览 1 评论
4878 浏览 108 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-9 08:36 , Processed in 0.815498 second(s), Total 92, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191