|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位大神,我写了一段代码,本意是根据命令字中为1的bit位(置1的个数可能是0-4个,位置不定)从7路输入信号中任选4路,输出到led。
- module gpio_select( input [ 7 : 0 ] gpio,
- output [ 3 : 0 ] led,
- input ext_rst_n,
- input clk_25M);
-
- reg[3:0] flag;
- integer i,j;
- always @*
- if( !ext_rst_n )
- begin
- led[3:0] <= 4'b0;
- flag[3:0] <= 4'b0;
- else
- begin
- for( i = 0; i <= 7; i=i+1 )
- begin
- if( ( gpio_sel[i] == 1 ) && (flag[0] == 0) ) //gpio_sel为命令字,从外部spi输入,定义为reg [ 7 : 0 ]gpio_sel
- begin
- led[0] <= gpio[i];
- flag[0] <= 1'b1;
- end
- else if( ( gpio_sel[i] == 1 ) && ( flag[1] == 0 ) )
- begin
- led[1] <= gpio[i];
- flag[1] <= 1'b1;
- end
- else if( ( gpio_sel[i] == 1 ) && ( flag[2] == 0 ) )
- begin
- led[1] <= gpio[i];
- flag[1] <= 1'b1;
- end
- else if( ( gpio_sel[i] == 1 ) && ( flag[3] == 0 ) )
- begin
- led[1] <= gpio[i];
- flag[1] <= 1'b1;
- end
- end
- endmodule
复制代码
这段代码综合时产生了大量的latch,请各位指点!谢谢! |
|