新人自学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条回答
mq0905034233
1楼-- · 2019-07-16 14:08
 精彩回答 2  元偷偷看……
zhifubao
2楼-- · 2019-07-16 15:23
这个自学有难度。
ggqrnew
3楼-- · 2019-07-16 17:06
1.<=是非阻塞赋值,在always块完成后才赋值;
=是阻塞赋值,赋值完成后才进入下一句;
一般时序逻辑用<=,组合逻辑用=
2.&按位与,在此处应该是检测OUTY是否溢出
胜率付款换个地方是
4楼-- · 2019-07-16 23:01
因为是时序逻辑,所以用<=

区别

区别

一周热门 更多>