银杏科技有限公司旗下技术文档发布平台 |
技术支持电话 | 0379-69926675-801 |
技术支持邮件 | Gingko@vip.163.com |
版本 | 日期 | 作者 | 修改内容 |
V1.0 | 2020-03-02 | gingko | 初次建立 |
实验十三:3-8译码器实验——FPGA实现3-8译码器
一、 实验目的与意义
掌握3-8译码器的原理。
掌握状态机的使用方法。
掌握QuartusII的使用方法。
二、 实验设备及平台
iCore4T 双核心板。
iTool A(或相同功能)仿真器。
USB Type C线缆。
Keil MDK 开发平台。
Quartus开发平台。
电脑一台。
三、 实验原理
输入 | 输出 |
a2 | a1 | a0 | y7 | y6 | y5 | y4 | y3 | y2 | y1 | y0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
四、 代码讲解
/*************************************************/
//利用状态机实现3-8译码器的输出信号,输出译码信号与真值表一致
reg [7:00]y_r;
always@(posedge clk_25m or negedge rst_n)
begin
if(!rst_n)
begin
y_r <= 8'b000000000;
end
else
begin
case(a)
3'b000:begin
y_r <= 8'b00000001;
end
3'b001:begin
y_r <= 8'b00000010;
end
3'b010:begin
y_r <= 8'b00000100;
end
3'b011:begin
y_r <= 8'b00001000;
end
3'b100:begin
y_r <= 8'b00010000;
end
3'b101:begin
y_r <= 8'b00100000;
end
3'b110:begin
y_r <= 8'b01000000;
end
3'b111:begin
y_r <= 8'b10000000;
end
default:begin
y_r <= 8'b000000000;
end
endcase
end
end
assign y = y_r;
五、 实验步骤及实验结果
将硬件正确连接,如图13.2所示。
将编写好的代码进行编译,并下载到开发板中;
通过Signaltap工具查看输入信号与输出信号之间的关系,观察实验现象——如图7.3所示。
六、 拓展实验
设计一个部分译码器(如:4-10译码器),观察信号变化。