| 银杏科技有限公司旗下技术文档发布平台 | 
	
		| 技术支持电话 | 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译码器),观察信号变化。