|
楼主 |
发表于 2016-3-24 11:43:31
|
显示全部楼层
谢谢你的热心,我用的芯片是EPM240,之前试过很多次,刚才又试了下,确实不行。但按照你说的将cnt独立出来改成下面的代码,确实可以
- module test( input nRST,
- input clk,
- input Ctrl,
- output Pulse,
- output[3:0] led );
-
- reg[24:0] cnt;
- reg[1:0] state;
- reg cntRst;
- wire cntEnd;
- /*------------------------------------*/
- always @( posedge clk )
- begin
- if( !nRST || cntRst )
- cnt <= 25'd0;
- else
- cnt <= cnt+25'd1;
- end
-
- /*------------------------------------*/
- always @( state )
- begin
- case(state)
- 0,2:
- cntRst = 1;
- 1,3:
- cntRst = 0;
- endcase
- end
- /*------------------------------------*/
- always @( posedge clk )
- begin
- if(!nRST )
- state <= 2'd0;
- else
- case(state)
- 0:
- if(Ctrl) state <= 2'd1;
- 1:
- if(cntEnd) state <= 2'd2;
- 2:
- state <= 2'd3;
- 3:
- if(cntEnd) state <= 2'd0;
- endcase
- end
- assign cntEnd = cnt[24];
- assign Pulse = ( state[1]==1'b1);
- assign led[3] = ~Ctrl;
- assign led[2] = ~Pulse;
- assign led[1:0] = 2'b11;
- endmodule
复制代码
|
|