译码器作用:将三位的输入信号译码为8位的输出信号
特别注意这里的真值表!!!
同一时刻只有一个信号是高电平,其余为低电平
工程代码:
module decoder_3_8(a,b,c,out);input a,b,c;output reg [7:0]out;always@(a,b,c)begincase({a,b,c}) //位拼接判定3'b000: out = 8'b00000001;3'b001: out = 8'b00000010;3'b010: out = 8'b00000100;3'b011: out = 8'b00001000;3'b100: out = 8'b00010000;3'b101: out = 8'b00100000;3'b110: out = 8'b01000000;3'b111: out = 8'b10000000; default: out = 8'b00000001; endcase end endmodule
在做的时候因为例子太简单了,就没有写tb,直接上板子了
RTL模块视图:
结果:
今天才知道在vivado里看电路结构图是有三个阶段的:
在这里不多赘述了,帖子链接如下:
Vivado使用入门之一:Schematic图 - 知乎 (zhihu.com)