目录
前言
一、三八译码器基本理论
1.3-8译码器框图
2.3-8译码器真值表
二、fpga实现步骤
1.设计输入
2.功能仿真
1.testbench编写
2.仿真结果
前言
1.3-8译码器基本理论
2.fpga设计实现三八译码器
3.基本语法:always 语句/数字表示形式/位拼接{}
提示:以下是本篇文章正文内容,下面案例可供参考
一、三八译码器基本理论
1.3-8译码器框图
3-8译码器:输入的3位二进制代码共有8种状态,译码器将每个输入代码译成对应的一根输出线上
的高、低电平信号。因此,也将这个译码器称为3线-8线译码器。
译码器:编码器的反义
2.3-8译码器真值表
二、fpga设计实现步骤
1.设计输入
代码如下(示例):
module decoder_3_8(
a,
b,
c,
out
);
input a;
input b;
input c;
output reg [7:0]out;
//以always块描述的信号赋值,被赋值的对象必须定义为reg型
//{a,b,c}变成了一个三位信号。这种操作叫做位拼接
/*
b 二进制 3'b101 8'b0000_1010
o 八进制
d 十进制
h 十六进制
*/
always@(*)begin
case({a,b,c})
3'b000:out = 8'b0000_0001;
3'b001:out = 8'b0000_0010;
3'b010:out = 8'b0000_0100;
3'b011:out = 8'b0000_1000;
3'b100:out = 8'b0001_0000;
3'b101:out = 8'b0010_0000;
3'b110:out = 8'b0100_0000;
3'b111:out = 8'b1000_0000;
endcase
end
endmodule
2.功能仿真
1.testbench编写
代码如下(示例):文章来源:https://www.toymoban.com/news/detail-506100.html
`timescale 1ns/1ns
module decoder_38_tb;
reg s_a;
reg s_b;
reg s_c;
wire [7:0] out;
decoder_3_8 decoder_3_8_ins(
.a(s_a),
.b(s_b),
.c(s_c),
.out(out)
);
initial begin
s_a=0;s_b=0;s_c=0;
#200;
s_a=0;s_b=0;s_c=1;
#200 ;
s_a=0;s_b=1;s_c=0;
#200;
s_a=0;s_b=1;s_c=1;
#200 ;
s_a=1;s_b=0;s_c=0;
#200 ;
s_a=1;s_b=0;s_c=1;
#200 ;
s_a=1;s_b=1;s_c=0;
#200;
s_a=1;s_b=1;s_c=1;
#200;
$stop;
end
endmodule
2.仿真结果
文章来源地址https://www.toymoban.com/news/detail-506100.html
三、语法总结
1.数字表示
到了这里,关于第二节 3-8译码器设计实现与相关语法基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!