[求助] verilog HDL 编程问题求教?

喜鹊王子   2013-7-7 15:06 楼主
以下是一个简答的3-8译码器的代码:
module decoder_38(din,en,dout);
input en;
input[2:0] din;
output[7:0] dout;
reg[7:0] dout;
always@(din or en)
begin
  case(din)
  3'b0:dout=8'b1111_1110;
  3'b1:dout=8'b1111_1101;
  3'b2:dout=8'b1111_1011;
  3'b3:dout=8'b1111_0111;
  3'b4:dout=8'b1110_1111;
  3'b5:dout=8'b1101_1111;
  3'b6:dout=8'b1011_1111;
  3'b7:dout=8'b0111_1111;
  endcase
end
endmodule
————————————————————————
如果我输入想写成:input a,b,c; 那么case(din)是否可以写成case({c,b,a})?
如果输出写成:output y0,y1,y2,y3,y4,y5,y6,y7,那么case后面的输出是否可以这样写:3'b0:{y7,y6,y5,y4,y3,y2,y1,y0}=8'b1111_1110 ?

回复评论 (1)

回复 楼主喜鹊王子 的帖子

对于第一个问题,应该是可以的,case(表达式),表达式可以是一个多位的数据,verilog支持拼接,要想选择cba这三个数据,拼接是可以的,拼接后选择。第二个问题跟第一个问题类似,拼接是可以的。
点赞  2013-7-7 21:31
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复