新人自学FPGA

2019-07-15 22:16发布

程序是一个四位二进制加法计数器:


times New Roman">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时,计数OUTYCOUT0*/

              end

       else

       if(ENA)/*当使能信号为1时,计数器计数工作*/

              begin

              OUTY<=OUTY+1;

              COUT<=OUTY[0] & OUTY[1] &OUTY[2] & OUTY[3];  /*计数显示*/

              end

end   

endmodule

红 {MOD}部分是不明白的地方,<=赋值的意思么?用等号可以么?还有COUT<=OUTY[0] & OUTY[1] & OUTY[2] & OUTY[3]这一句,用&号连接不是逻辑与么...买了自学课本的,没在手边,新人小白求问,先谢谢各位!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
二次元百合乡
1楼-- · 2019-07-15 22:32
新人求助!
柠檬守护
2楼-- · 2019-07-16 03:35
 精彩回答 2  元偷偷看……
随形
3楼-- · 2019-07-16 08:01
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就是溢出标志
随形
4楼-- · 2019-07-16 08:58
OUTY加到1111b时, OUTY=1&1&1&1=1;只有这一种情况OUTY的值是1,&符号意思是逻辑与
随形
5楼-- · 2019-07-16 09:30
我手头有FPGA开发板的学习资料可以分享给你
as252525
6楼-- · 2019-07-16 13:12
"<="是非阻塞赋值方式,“=”是阻塞赋值方式,“<=”赋值语句要等到整个块结束之后在进行赋值,“=”则是在该条语句执行完就赋值。

一周热门 更多>