实验一 七段数码显示译码器

合集下载

7段数码显示译码器设计

7段数码显示译码器设计

7段数码显示译码器设计
设计一个7段数码显示译码器,主要功能是将4位二进制编码转换为用7段LED显示的十进制数。

具体设计过程如下:
1.确定电路的输入和输出:输入为4位二进制编码,输出为7段LED 显示的十进制数。

2.确定译码器类型:由于需要将二进制编码转换为十进制数,可以选用BCD-7段译码器或者十进制译码器作为基本器件。

3.确定电路原理图:根据所选的译码器类型,画出电路原理图。

在原理图中,需要连接一个4位二进制编码器到译码器的输入端,同时将译码器的输出连接到7段LED显示器的相应段。

4.电路连接和布线:将译码器和7段LED显示器连接到电源和接地线上,并将4位二进制编码器的输出连接到译码器的输入端。

5.电源和接地线:将电源和接地线正确连接到电路中,确保电路能够正确工作。

6.电路调试和测试:通过输入不同的4位二进制编码来测试电路的译码功能,确保译码器能够正确地将二进制编码转换为十进制数,并且在7段LED显示器上显示。

7.电路性能优化和改进:根据测试结果,对电路进行进一步的优化和改进。

可以考虑是否需要增加输入的保护电路,或者改进电源和接地线的布线方式来提高电路的性能。

总结:
以上是设计一个7段数码显示译码器的基本步骤,通过选择合适的译码器类型,正确连接电路和调试测试,可以实现4位二进制编码到十进制数的转换,并在7段LED显示器上显示。

在设计过程中,需要注意电路连接的正确性和稳定性,以及对电路的性能进行优化和改进。

七段数码管显示实验报告

七段数码管显示实验报告

七段数码管显示实验报告实验目的:本实验的目的是通过控制7段数码管的亮灭状态来显示不同的数字和字母。

实验原理:7段数码管常用于显示数字和字母,每个数码管由7个LED灯组成,分别表示A、B、C、D、E、F、G等7个段。

通过控制这些LED灯的亮灭状态,就可以显示不同的数字和字母。

在实际应用中,通常需要使用一个译码器来根据输入的数字或字母输出相应的控制信号。

常用的译码器有7447、DM9368等。

这些译码器通常都是BCD码到7段数码管的译码器。

在本实验中,我们将使用7447译码器来控制7段数码管的亮灭状态。

7447译码器具有4个输入线和7个输出线,每个输入线上的BCD码可以转换成相应的控制信号,用于控制数码管的7个LED 灯。

实验材料:1.7段数码管2.7447译码器3.电路板4.电压源5.连接线实验步骤:1.将7447译码器插入电路板上相应的插槽中,并将数码管连接到电路板上。

2.将电压源连接到电路板上,并调节电压和电流值。

3.根据所需显示的数字或字母,设置相应的BCD码输入信号。

4.打开电源,观察数码管是否能够正确显示。

实验结果:通过本实验,我们可以成功控制7段数码管的亮灭状态,实现了数字和字母的显示。

同时,我们也了解了7447译码器的原理和使用方法。

实验小结:本实验是电子技术的基础实验之一,通过实验我们深入了解了7段数码管和7447译码器的原理和应用,同时也锻炼了我们的动手能力和实验技能。

在实际应用中,7段数码管和译码器常常被用于数字显示、计数器、时钟、温度计等电子设备中,具有广泛的应用前景。

十六进制7段数码显示译码器设计

十六进制7段数码显示译码器设计

哈尔滨理工大学软件学院实验报告课程 FPGA题目十六进制7段数码显示译码器设计班级集成12-2班专业集成电路设计与集成系统学生学号 12140202272014年10 月8日实验一十六进制7段数码显示译码器设计实验目的:1.熟悉硬件逻辑电路的一般设计和测试流程;2.嵌入式逻辑分析仪使用方法;实验内容及步骤:1.用Verilog HDL设计1位7段数码管的显示译码电路,能够显示0~f。

显示数字由SW3~SW0设定;2.使用嵌入式逻辑分析仪进行仿真;3.将实验程序下载到DE2运行。

实验程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_Arith.ALL;USE IEEE.STD_LOGIC_Unsigned.ALL;ENTITY FREQ ISPORT(clk_lk: IN STD_LOGIC;SW: IN STD_LOGIC_VECTOR(3 DOWNTO 0);seg: out STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY;ARCHITECTURE one OF FREQ ISSIGNAL seg_r: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGINseg<=seg_r(6 DOWNTO 0);PROCESS(clk_lk)BEGINCASE SW ISWHEN X"0"=>seg_r<=X"c0";WHEN X"1"=>seg_r<=X"f9";WHEN X"2"=>seg_r<=X"a4";WHEN X"3"=>seg_r<=X"b0";WHEN X"4"=>seg_r<=X"99";WHEN X"5"=>seg_r<=X"92";WHEN X"6"=>seg_r<=X"82";WHEN X"7"=>seg_r<=X"f8";WHEN X"8"=>seg_r<=X"80";WHEN X"9"=>seg_r<=X"90";WHEN X"a"=>seg_r<=X"88";WHEN X"b"=>seg_r<=X"83";WHEN X"c"=>seg_r<=X"c6";WHEN X"d"=>seg_r<=X"a1";WHEN X"e"=>seg_r<=X"86";WHEN X"f"=>seg_r<=X"8e";END CASE;END PROCESS;END;实验结果:。

实验一_用七段数码管显示简单字符--译码器及其使用 实验报告

实验一_用七段数码管显示简单字符--译码器及其使用 实验报告

用七段数码管显示简单字符——译码器及其应用实验报告专业班级:2011级计算机1班学号:1137030 姓名:赵艺湾实验地点:理工楼901 实验时间:2012.9.26实验一用七段数码管显示简单字符——译码器及其应用一、实验目的1、了解显示译码器的结构和理解其工作原理。

2、学习7段数码显示译码器设计。

3、学习用基逻辑门、3-8译码器、4-1选择器控制显示器的显示。

二、实验内容1、了解逻辑门、3-8译码器、4-1选择器的工作原理,设计基本电路,实现以下功能:C2C1C0是译码器的3个输入,用C2C1C0的不同取值来选择在七段数码管上输出不同字符。

七段数码管是共阳极的。

图1 七段译码器C2C1C0 的不同取值对应显示的字母如下:图2 字符编码三、实验仪器及设备: 一、PC 机二、 Quartus Ⅱ 9.0三、 DE2-70 四、显示器四、实验步骤1、列出真值表,计算要实现以上功能时数码管的0-7段对应的逻辑函数式。

真值表如下:函数表达式如下: “0”='02C C +“1”=“2”=0'1'012C C C C C ++“3”=(2C +1C +'0C )(2C +0C +'1C )(2C +'1C +'0C ) “4”=“5”=2C “6”=2C +1C +02C C2、新建一个 quartusII 工程,用以在DE2_70平台上实现所要求的电路。

建立一个BDF 文件,基于SSI ,实现七段译码器电路,用SW3_SW1作为输入C2C1C0,DE2_70平台上的的数码管分别为HEX0~HEX7,输出接HEX1。

参照de2_70_pin_assignments.csv 中的引脚分配表配置引脚。

新建仿真文件,给出输入信号,观察输出信号是否符合要求。

编译工程,完成后下载到FPGA 中。

拨动波段开关并观察七段数码管HEX0的显示,以验证设计的功能是否正确。

EDA 7段数码显示译码器实验报告

EDA 7段数码显示译码器实验报告

专业班级:10电子三班学号:10200314 姓名:杨志鹏EDA 技术实验报告实验项目名称:7段数码显示译码器设计实验日期:2012年6月4日实验成绩:实验评定标准:1)实验程序是否正确A()B()C()2)实验仿真、结果及分析是否合理A()B()C()3)实验报告是否按照规定格式A()B()C()一、实验目的学习7段显示译码器设计,学习VHDL的CASE语句应用及多层次设计方法。

二、实验器材ZYE 1502D 型试验箱QuartusⅡ软件一套PC一台下载线一条三、实验内容(实验过程)1、说明下面一段代码的中个语句的含义,以及该例的整体功能,在QuartusⅡ上对该例进行编辑、编译、综合、适配、仿真、给出其所有信号的时序仿真波形。

2、引脚锁定以及硬件测试。

建议选GW48系统的实验电路模式6用数码管显示译码器输出,键8、键7、键6、键5四位控制输入,硬件验证译码器的工作性能。

3、用元件例化语句,按下图的方式连接成顶层设计电路。

图中的DFF1是一个二进制加法计数器。

四、实验程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECL7S ISPORT( A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END DECL7S;ARCHITECTURE one OF DECL7S ISBEGINPROCESS(A)BEGINCASE A ISWHEN"0000"=>LED7S<="0111111"; WHEN"0001"=>LED7S<="0000110"; WHEN"0010"=>LED7S<="1011011"; WHEN"0011"=>LED7S<="1001111"; WHEN"0100"=>LED7S<="1101100"; WHEN"0101"=>LED7S<="1101101"; WHEN"0110"=>LED7S<="1111101"; WHEN"0111"=>LED7S<="0001111"; WHEN"1000"=>LED7S<="1111111"; WHEN"1001"=>LED7S<="1101111"; WHEN"1010"=>LED7S<="1110111"; WHEN"1011"=>LED7S<="1111100"; WHEN"1100"=>LED7S<="0111001"; WHEN"1101"=>LED7S<="1011110"; WHEN"1110"=>LED7S<="1111001"; WHEN"1111"=>LED7S<="1110001"; WHEN OTHERS=>NULL;END CASE;END PROCESS;END one;用元件例化语句设计电路:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DECL7S_CNT4BS ISPORT (CLOCK0,RST0,EN0:IN STD_LOGIC;LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);COUT:OUT STD_LOGIC);END ENTITY DECL7S_CNT4BS;ARCHITECTURE STRUCT OF DECL7S_CNT4BS IS COMPONENT DECL7SPORT( A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COMPONENT;COMPONENT DFF1PORT(CLK:IN STD_LOGIC;RST:IN STD_LOGIC;EN :IN STD_LOGIC;OUTY:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ;COUT:OUT STD_LOGIC);END COMPONENT;SIGNAL TMP: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINCUNIT1:DFF1 PORT MAP(CLOCK0,RST0,EN0,TMP,COUT);CUNIT2:DECL7S PORT MAP(TMP,LED);END ARCHITECTURE STRUCT;五、实验仿真、结果及分析由以上代码编译,仿真,得到一下时序仿真波形图。

基于fpga的七段数码显示译码器的设计

基于fpga的七段数码显示译码器的设计

基于fpga的七段数码显示译码器的设计实验名称:七段数码显示译码器的设计1. 实验目的:了解七段数码显示译码器的原理学习VHDL的CASE语句应用及多层次设计方法。

熟悉Quartus II的使用,熟练掌握程序的编译,波形的仿真及下载的过程。

2实验内容:编写七段数码显示译码器的程序,并编译,下载到试验箱中查看结果。

3. 实验方案(程序设计说明)七段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制的译码显示,最方便的方法就是利用译码程序在FPGA中来实现。

四个输入,七个输出。

4. 实验步骤或程序(经调试后正确的源程序)见附件A5(程序运行结果6(出现的问题及解决方法对于下载模式的选择掌握不牢固。

实验步骤或程序:程序:entity decl 7 isport(A:in bit_vector(3 downto 0); led7s:out bit_vector(6 DOWNTO 0) );end ;architecture one of decl 7 is begin process(A)begincase A iswhen"0000"=>Y<="0111111"; when"0001"=>Y<="0000110"; when"0010"=>Y<="1011011"; when"0011"=>Y<="1001111"; when"0100"=>Y<="1100110"; when"0101"=>Y<="1101101"; when"0110"=>Y<="1111101"; when"0111"=>Y<="0000111"; when"1000"=>Y<="1111111"; when"1001"=>Y<="1101111"; when"1010"=>Y<="1110111"; when"1011"=>Y<="1111100"; when"1100"=>Y<="0111001"; when"1101"=>Y<="1011110"; when"1110"=>Y<="1111001"; when"1111"=>Y<="1110001";when others=>null;end case;end process;end ;管脚设置:文案编辑词条B 添加义项 ?文案,原指放书的桌子,后来指在桌子上写字的人。

十六进制7段数码显示译码器设计实验报告

十六进制7段数码显示译码器设计实验报告

十六进制7段数码显示译码器设计实验报告实验报告:十六进制7段数码显示译码器设计一、实验目的本实验的主要目的是设计一种用于将十六进制数码转化为七段显示的译码器电路。

通过这个实验,我们可以学习和了解数字电路的工作原理、数码管的控制方式以及七段数码的译码方法。

二、实验原理本实验所用到的数码管为共阳数码管,它由7个发光二极管组成,其中的每一个发光二极管称为一个段。

这七个段依次为a、b、c、d、e、f和g,它们分别对应数码管上的abcdefg七个引脚。

当一些引脚输出高电平时,相应的段就会被点亮,从而显示出特定的字符。

为了实现将十六进制数码转化为七段显示的功能,我们需要设计一个译码器电路。

译码器电路的输入为十六进制数码,输出为七段信号,用于控制数码管的每个段的亮灭情况。

为了简化设计,我们可以采用CMOS数字集成电路74LS47来实现译码器电路。

该集成电路内部集成了BCD转七段译码器,可以将二进制代码转化为七段数码显示所需要的信号。

它的输入为四个二进制输入端口A、B、C和D,输出为七个段芯片(a、b、c、d、e、f和g)的控制信号。

三、实验步骤1.首先,根据74LS47的真值表,确定译码器的输入和输出。

2.根据真值表,画出逻辑图,确定硬件电路的连接方式。

3.按照逻辑图和电路连接方式,进行硬件电路的布线。

4.按照实验仪器的操作说明,对电路进行调试和测试。

5.将输入端口连接至外部的十六进制信号源,观察输出端口的数据是否正确。

6.验证电路的正确性和稳定性,如果出现问题,进行排除和修复。

四、实验结果经过实验,我们成功地设计并实现了一个十六进制7段数码显示译码器电路。

当输入端口接收到一个十六进制信号时,通过电路的处理和转换,将其转化为了相应的七段信号,用于控制数码管的每个段的亮灭情况。

通过实验观察,我们发现电路的输出结果与预期一致,且工作稳定。

五、实验总结通过这个实验,我们对于数字电路的工作原理和数码管的控制方式有了更深的了解。

七段译码器实训报告

七段译码器实训报告

项目一七段译码器一、实训目的1.掌握输入编辑VHDL文件的方法。

2.掌握编译VHDL文件的方法。

3.掌握仿真VHDL文件的方法4.掌握七段译码器的工作原理。

二、实训器材计算机与Quartus Ⅱ工具软件。

三、实训指导(一)实训原理七段译码器的真值表如表1-1所示。

表1-1 七段译码器的真值表(二)实训步骤1.输入编辑VHDL文件建立工程项目,以decl7s.vhd为顶层实体文件。

建立VHDL文件decl7s.vhd。

编辑VHDL文件decl7s.vhd。

VHDL代码如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY decl7s ISPORT (d:IN STD_LOGIC_VECTOR(3 DOWNTO 0); led:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END;ARCHITECTURE a OF DECL7S ISBEGINPROCESS(d)BEGINCASE d ISWHEN "0000"=>led<="0111111";WHEN "0001"=>led<="0000110";WHEN "0010"=>led<="1011011";WHEN "0011"=>led<="1001111";WHEN "0100"=>led<="1100110";WHEN "0101"=>led<="1101101";WHEN "0110"=>led<="1111101";WHEN "0111"=>led<="0000111";WHEN "1000"=>led<="1111111";WHEN "1001"=>led<="1101111";WHEN "1010"=>led<="1110111";WHEN "1011"=>led<="1111100";WHEN "1100"=>led<="0111001";WHEN "1101"=>led<="1011110";WHEN "1110"=>led<="1111001";WHEN "1111"=>led<="1110001";WHEN OTHERS=>NULL;END CASE;END PROCESS;END a;2.编译仿真VHDL文件编译VHDL文件decl7s.vhd。

实验一7段数码显示译码器设计

实验一7段数码显示译码器设计

实验一. 7段数码显示译码器设计一.实验目的1.学习7段数码显示译码器设计。

2.进一步熟悉VHDL设计技术,掌握CASE语句的使用。

3.掌握文本输入法的顶层设计方法。

二.实验原理7段数码显示器是纯组合电路。

为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中实现。

例1作为7段译码器的VHDL的程序,A[3..0]是二进制码输入端,LED7S是7段输出信号。

输出信号LED7S的位分别接数码管的7个段,高位在左,低为在右。

例如当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。

例1:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECL7S ISPORT( A: IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END DECL7S;ARCHITECTURE ONE OF DECL7S ISBEGINPROCESS(A)BEGINCASE A ISWHEN "0000" => LED7S<="0111111";WHEN "0001" => LED7S<="0000110";WHEN "0010" => LED7S<="1011011";WHEN "0011" => LED7S<="1001111";WHEN "0100" => LED7S<="1100110";WHEN "0101" => LED7S<="1101101";WHEN "0110" => LED7S<="1111101";WHEN "0111" => LED7S<="0000111";WHEN "1000" => LED7S<="1111111";WHEN "1001" => LED7S<="1101111";WHEN "1010" => LED7S<="1110111";WHEN "1011" => LED7S<="1111100";WHEN "1100" => LED7S<="0111001";WHEN "1101" => LED7S<="1011110";WHEN "1110" => LED7S<="1111001";WHEN "1111" => LED7S<="1110001";WHEN OTHERS => NULL;END CASE;END PROCESS;END ONE;三.实验内容1.说明例1各语句的含义,以及该例的整体功能。

实验一 七段数码显示译码器

实验一 七段数码显示译码器

实验一七段数码显示译码器module translation7(A,Y); input [3:0] A;output Y;reg [6:0] Y;always@(A) begincase(A)4'b0000:Y<=7'b0111111;4'b0001:Y<=7'b0000110;4'b0010:Y<=7'b1011011;4'b0011:Y<=7'b1001111;4'b0100:Y<=7'b1100110;4'b0101:Y<=7'b1101101;4'b0110:Y<=7'b1111101;4'b0111:Y<=7'b0000111;4'b1000:Y<=7'b1111111;4'b1001:Y<=7'b1101111;4'b1010:Y<=7'b1110111;4'b1011:Y<=7'b1111100;4'b1100:Y<=7'b0111001;4'b1101:Y<=7'b1011110;4'b1110:Y<=7'b1111001;4'b1111:Y<=7'b1110001; default:Y<=7'b0000000; endcaseendendmodule实验二数控分频器module dvf (CLK,d,fout,pfull); input CLK;input [7:0] d;output fout;output pfull;reg [7:0] c;reg fout,pfull;always @(posedge CLK)beginif(c===255) begin c<=d;pfull<=1;end else begin c<=c+1;pfull<=0;endendalways @(posedge pfull)fout=~fout;Endmodule五,实验参考程序module SKFPQ(d,clk,pfull,fout); input clk;input [7:0]d;output fout,pfull;reg full;reg [7:0]cnt;reg fout;always@(posedge clk)begin if(cnt==255)begin cnt<=d;full=1;endelse begin cnt<=cnt+1;full=0;endendalways@(posedge full)fout=~fout;assign pfull=full;endmodule验三十进制频率计设module CNT10(CLK,RST,EN,OUT,COUT);input CLK,RST,EN;output [3:0] OUT;output COUT;reg [3:0] Q;reg COUT;assign OUT = Q;always @(posedge CLK or posedge RST)beginif(RST) Q <= 0;else if(EN)begin if(Q<9) Q <= Q + 1;else Q <= 0;endendalways @(Q)beginif(Q==4'd9) COUT = 1'b1;else COUT = 1'b0;endEndmodulemodule FRECNT(clk1HZ,uclk,led0,led1,led2,led3,p_cnt_en,p_rst_cnt,p_load); input clk1HZ,uclk;output [3:0] led0,led1,led2,led3;output p_cnt_en,p_rst_cnt,p_load;wire e1,e2,e3;wire [3:0] d0,d1,d2,d3;TESTCTL T1(.CLKK(clk1HZ),.T_EN(p_cnt_en),.T_RST(p_rst_cnt),.T_LOAD(p_load));CNT10 C0(.CLK(uclk),.RST(p_rst_cnt),.EN(p_cnt_en),.COUT(e1),.OUT(d0)); CNT10 C1(.CLK(e1),.RST(p_rst_cnt),.EN(p_cnt_en),.COUT(e2),.OUT(d1));CNT10 C2(.CLK(e2),.RST(p_rst_cnt),.EN(p_cnt_en),.COUT(e3),.OUT(d2));CNT10 C3(.CLK(e3),.RST(p_rst_cnt),.EN(p_cnt_en),.OUT(d3));REG4B R0(.LOAD(p_load),.DIN(d0),.DOUT(led0));REG4B R1(.LOAD(p_load),.DIN(d1),.DOUT(led1));REG4B R2(.LOAD(p_load),.DIN(d2),.DOUT(led2)); REG4B R3(.LOAD(p_load),.DIN(d3),.DOUT(led3));endmodulemodule REG4B(LOAD,DIN,DOUT);input LOAD;input [3:0] DIN;output [3:0] DOUT;reg [3:0] DOUT;always @(posedge LOAD )DOUT <= DIN;Endmodulemodule TESTCTL(CLKK,T_RST,T_LOAD,T_EN);input CLKK;output T_RST,T_LOAD,T_EN;reg T_RST;//,T_LOAD,T_EN;reg div;initial div = 1;always @(posedge CLKK)div <= ~div;always @(CLKK or div)beginif((~CLKK)&&(~div)) T_RST = 1;else T_RST = 0;endassign T_LOAD = ~div;assign T_EN = div;endmodule五.实验参考程序module freqcounter(clk,uclk,ge_bit,shi_bit,bai_bit,qian_bit); input clk,uclk;output [3:0] ge_bit,shi_bit,bai_bit,qian_bit;(*synthesis,keep*)reg[3:0]ge_bit,shi_bit,bai_bit,qian_bit; (*synthesis, keep*)reg div;(*synthesis, keep*)wire en,load,rst;(*synthesis, keep*)reg [3:0] A,B,C,D;always @(negedge clk)begin div=~div;endassign en=div;assign load=~en;assign rst=clk&load;always @(posedge uclk or posedge rst)beginif(rst) beginA=4'd0;B=4'd0;C=4'd0;D=4'd0; endelse if(en) begin A=A+4'd1;if(A==4'D10) begin A=4'd0;B=B+4'd1; endif(B==4'D10) begin B=4'd0;C=C+4'd1; endif(C==4'D10) begin C=4'd0;D=D+4'd1; endif(D==4'D10) begin D=4'd0; endendendalways @(posedge load or posedge rst) beginif(rst) beginge_bit=0;shi_bit=0;bai_bit=0;qian_bit=0;endelsebeginge_bit=A;shi_bit=B;bai_bit=C;qian_bit=D;endendendmodule实验四用状态机实现ADC的采样电路设计module ADC0809 (din,CLK,EOC,START,OE,Q,clock); input [7:0] din;input CLK;input EOC;output START,OE;output [7:0] Q;output clock;reg START,OE;parameter s0=0,s1=1,s2=2,s3=3,s4=4; reg [4:0] cs,next_state;reg [7:0] REGL;reg LOCK;assign clock=CLK;always @(cs or EOC)begincase (cs)s0:beginSTART=0;OE=0;LOCK=0;next_state=s1;ends1:beginSTART=1;OE=0;LOCK=0;next_state=s2;ends2:begin START=0;OE=0;LOCK=0;if(EOC==1'B1)next_state=s3;else next_state=s2;ends3:beginSTART=0;OE=1;LOCK=0;next_state=s4;ends4:begin START=0;OE=1;LOCK=1; next_state=s0;enddefault:next_state=s0;endcaseendalways @(posedge CLK )begincs=next_state;endalways @ (posedge LOCK) if(LOCK) REGL=din;assign Q=REGL;endmodule。

7段数码显示译码器

7段数码显示译码器

实验七 7段数码显示译码器设计一、实验目的学习7段数码显示译码器设计。

二、 实验条件1、PC 机一台。

2、开发软件:Quartus Ⅱ。

3、实验设备:GW48-CK EDA 实验开发系统。

4、选用芯片:ACEX 系列EP1K30TC144-3。

三、实验原理7段数码是纯组合电路,通常的小规模专用IC ,如74或4000系列的器件只能作十进制BCD 码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD 中来实现。

但为了简化过程,首先完成7段BCD 码译码器的设计。

当LED7S 输出为“1101101”时,数码管的7个段:g 、f 、e 、d 、c 、b 、a 分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”图1 共阴数码管及其电路四、实验内容1、在 Quartus II 上对下图所示电路进行编辑、仿真及硬件验证,可用健1-4作为输入,数码管任选。

2、设计7段数码显示译码器,编写相关Verilog HDL 程序,并在Quartus II 上对其进行编辑、硬件验证。

图2 由74248构成的7段译码电路五、实验报告根据以上的实验内容写出实验报告,包括程序设计、软件编译及硬件测试和实验过程。

参考程序:module digital7 (A,Y);input [3:0]A;output [6:0]Y;reg [6:0]Y;always @ (A)begincase (A)///////gfedcba/////4'H0: Y=7'B0111111;4'H1: Y=7'B0000110;4'H2: Y=7'B1011011;4'H3: Y=7'B1001111;4'H4: Y=7'B1100110;4'H5: Y=7'B1101101;4'H6: Y=7'B1111101;4'H7: Y=7'B0000111;4'H8: Y=7'B1111111;4'H9: Y=7'B1101111;4'HA: Y=7'B1101111;4'HB: Y=7'B1111100;4'HC: Y=7'B0111001;4'HD: Y=7'B1011110;4'HE: Y=7'B1111001;4'HF: Y=7'B1110001;default: Y=7'Bxxxxxxx;endcaseendendmodule工作模式选模式6)。

十六进制7段数码显示译码器设计实验报告

十六进制7段数码显示译码器设计实验报告

实验目的与要求实验名称:十六进制7段数码显示译码器设计实验目的:学习7段数码显示译码器的V erilog硬件设计。

实验原理7段数码是纯组合电路。

设输入的4位码为A[3:0],输出控制7段共阴数码管的7位数据为LEDS[6:0]。

输出信号LEDS的7位分别接共阴数码管的7个段,高位在左,低位在右实验内容1、编辑和输入设计文件新建文件夹——输入源程序——文件存盘源程序:module LED(A,LED7S);input [3:0]A;output [6:0]LED7S;reg [6:0]LED7S;always @ (A)begin: LEDcase(A)4'b0000: LED7S<=7'b0111111;4'b0001: LED7S<=7'b0000110;4'b0010: LED7S<=7'b1011011;4'b0011: LED7S<=7'b1001111;4'b0100: LED7S<=7'b1100110;4'b0101: LED7S<=7'b1101101;4'b0110: LED7S<=7'b1111101;4'b0111: LED7S<=7'b0000111;4'b1000: LED7S<=7'b1111111;4'b1001: LED7S<=7'b1101111;4'b1010: LED7S<=7'b1110111;4'b1011: LED7S<=7'b1111100;4'b1100: LED7S<=7'b0111001;4'b1101: LED7S<=7'b1011110;4'b1110: LED7S<=7'b1111001;4'b1111: LED7S<=7'b1110001;default: LED7S<=7'b0111111;endcaseendendmodule2、创建工程打开并建立新工程管理窗口——将设计文件加入工程中——选择目标芯片——工具设置——结束设置3、全程编译前约束项目设置选择FPGA目标芯片——选择配置器件的工作方式——选择配置器件和编程方式——选择目标器件引脚端口状态——选择V erilog语言版本4、全程综合与编译Processing——Start Compilation启动全程编译5、仿真测试RTL图观察器应用总结与体会通过本次实验,对quartus有了进一步的学习和认识,对V erilog也有了深入了解。

7段数码显示译码器的VHDL设计

7段数码显示译码器的VHDL设计

xxxxxx大学实验报告课程名称:EDA技术试验实验名称:7段数码显示译码器的VHDL设计学号:xxxxxxxx 姓名:xxx指导教师评定:__________________ 签名:____________________________一、实验目的1、学习7段数码显示译码器的设计;2、学习多层次设计方法。

3、了解使用VHDL表达和设计电路的方法和学习多层次设计方法.二、实验仪器:计算机一台,Quartus 2软件三、实验步骤:1、新建一个文件夹,打开Quartus 2软件,选择FILE->NEW菜单,在弹出的NEW对话框中选择DEVICE DESGIN FILE页的原理图文件编辑器输入项VHDL FILE,按确定键打开VHDL编辑器窗口;2、在VHDL编辑器窗口输入2选1多路选择器的VHDL描述;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DecL7S ISPORT(A :IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) );END;ARCHITECTURE one OF DecL7S ISBEGINPROCESS(A)BEGINCASE A(3 DOWNTO 0) ISWHEN “0000”=>LED7S<=”0111111”;WHEN “0001”=>LED7S<=”0000110”;WHEN “0010”=>LED7S<=”1011011”;WHEN “0011”=>LED7S<=”1001111”;WHEN “0100”=>LED7S<=”1100110”;WHEN “0101”=>LED7S<=”1101101”;WHEN “0110”=>LED7S<=”1111101”;WHEN “0111”=>LED7S<=”0000111”;WHEN “1000”=>LED7S<=”1111111”;WHEN “1001”=>LED7S<=”1101111”;WHEN “1010”=>LED7S<=”1110111”;WHEN “1011”=>LED7S<=”1111100”;WHEN “1100”=>LED7S<=”0111001”;WHEN “1101”=>LED7S<=”1011110”;WHEN “1110”=>LED7S<=”1111001”;WHEN “1111”=>LED7S<=”1110001”;WHEN OTHERS=> NULL;END CASE;END PROCESS;END;3、打开波形编辑器,分别运行2选1多路选择器,观察他们的输出波形:4、调出VHDL描述产生的2选1多路选择器的原理图.点击TOOLS->NELIST VIEWERS->RTL VIEWERS,即调出VHDL描述产生的2选1多路选择器的RTL电路图,如下所示:四、实验小结通过本次实验,基本上掌握了7段数码显示译码器的设计,了解了使用VHDL表达和设计电路的方法和学习多层次设计方法。

七段译码器实验报告

七段译码器实验报告

综合实验一七段译码器班级——姓名——学号————一、实验目的用VHDL语言设计七段译码器二、实验内容观察七段数码管的真值表,用VHDL语言设计七段译码器三、实验方法采用基于FPGA进行数字逻辑电路设计的方法。

采用的软件工具是MaxplusⅡ软件仿真平台,采用的硬件平台是AlteraEPF10K20TI144_4的FPGA实验箱。

四、实验步骤1. 输入源代码。

打开Maxplus ,点击File -> Project -> Name ,新建工程名为“se7_decoder”,完成点击OK。

然后点击File -> New ,选择Text Editor file ,完成点击OK。

最后输入七段译码器的VHDL 源代码并保存为当前工程名。

2.调试编译。

选择芯片类型:点击Assign -> Device ,选择芯片类型为EPF10K20TI144-4 ,完成点击OK。

再点击MAX+plusII下的Compiler ,直到调试成功如图:3.波形仿真。

点击MAX+plusII-> waveform editor-> Node -> Enter nodes from SNF-> List-> =>-> OK,右击各引脚,设置输入信号值、周期和结束时间,点击存盘,点击MAX+plusII -> Simulator完成波形仿真。

4.时序分析。

点击MAX+plusII下的Timing Analyzer ,完成时序分析如图所示:5. 引脚锁定。

点击Assign -> Pin/Location/Chip,添加各引脚信息,再对文件重新编译一次。

6. 编程下载。

连接好计算机和实验箱,打开电源。

点击MAX+plusII -> Programer →Configure完成下载,验证。

实验小结:总体来说,这次实验完成的还算顺利,初步了解了一点VHDL代码的编写,好像这个代码和真值表密切相关,把他们之间的对应关系找出来就行了,其他不在范围的要用强制规定一下,应该是起排除干扰的作用吧,或者像C++抛出异常也应该可以。

七段数码显示译码器设计

七段数码显示译码器设计

七段数码显示译码器设计七段数码显示译码器是一种电子元件,用于将二进制的数字编码转换为七段数码显示器上相应的数字显示。

七段数码显示器由七个LED灯组成,根据不同的组合来显示0-9的十个数字以及一些特殊字符。

设计一个七段数码显示译码器,可以通过输入二进制编码,使译码器输出相应的数字显示。

译码器的设计主要包括译码器的逻辑电路与输入和输出部分。

逻辑电路是根据七段数码显示器的真值表来设计的,输入部分是连接到译码器的二进制编码,输出部分是连接到七段数码显示器的七个LED灯。

首先,我们可以采用受限自由度的最小逻辑门设计方法来设计译码器的逻辑电路。

该方法是一种将输入变量和输出函数关联的方法,可以设计出逻辑门的最小数量。

在这种方法中,输入变量表示二进制编码的输入,输出函数表示相应的数字显示的输出。

译码器的真值表是一个由输入变量和输出函数组成的表格。

对于一个七段数码显示器,有4个输入变量和7个输出函数。

输入变量可以用A、B、C和D表示,表示四个输入的二进制编码。

输出函数可以用a、b、c、d、e、f和g表示,分别表示七段数码显示器的a、b、c、d、e、f和g七个LED灯。

根据真值表,我们可以确定译码器的逻辑电路。

接下来,我们可以使用布尔代数的方法来推导输出函数的逻辑表达式。

可以使用卡诺图、真值表和逻辑代数等方法来简化逻辑表达式。

具体的推导过程略。

最后,我们可以根据逻辑表达式设计译码器的逻辑电路。

可以使用逻辑门来实现逻辑函数,如与门、或门和非门等。

对于一个有7个输出函数的译码器,需要使用足够数量的逻辑门来实现逻辑函数。

在设计完逻辑电路之后,我们需要将输入和输出部分与逻辑电路连接起来。

输入部分是连接到译码器的二进制编码,输出部分是连接到七段数码显示器的七个LED灯。

可以使用连接器、导线和电阻等元件来完成连接。

综上所述,设计一个七段数码显示译码器需要进行以下几个步骤:确定逻辑电路的真值表,推导输出函数的逻辑表达式,设计逻辑电路,连接输入和输出部分。

七段数码显示译码器设计

七段数码显示译码器设计

实验一七段数码显示译码器设计一、实验目的:1.完成七段数码显示译码器的设计,学习组合电路设计;2.学习多层次设计方法。

3.锻炼使用Verilog HDL 语言编程的能力。

二、实验原理:1.七段译码电路时一宗纯组合的逻辑电路,通常是由小型专用的IC门电路组成。

2.七段码输入与输出的原理与真值表关系。

a)输入:七段码输入为四个输入信号,用来表示0000—1111,即表示为十六进制的“0”到“F”。

b)输出:七段码输出为七个输出信号,分别用a,b, c,d,e,f,g七个符号来表示。

一般规定,输出信号为“1”时,它所控制的发光二极管为点亮状态,输出信号为“0”时,它所控制的发光二极管为熄灭状态。

本实验使用的七段数码为共阴极,其电路图如图1所示。

图1 共阴数码管及其电路c)输入与输出关系用思维二进制代码组成十六进制代码,将其用代码显示,表2-1 七段字符显示真值表数码A3 A2 A1 A0 A B C D E F G 对应码(h)0 0 0 0 0 1 1 1 1 1 1 0 7E1 0 0 0 1 0 1 1 0 0 0 0 302 0 0 1 0 1 1 0 1 1 0 1 6D3 0 0 1 1 1 1 1 1 0 0 1 794 0 1 0 0 0 1 1 0 0 1 1 335 0 1 0 1 1 0 1 1 0 1 1 5B6 0 1 1 0 1 0 1 1 1 1 1 5F7 0 1 1 1 1 1 1 0 0 0 0 708 1 0 0 0 1 1 1 1 1 1 1 7F9 1 0 0 1 1 1 1 1 0 1 1 7BA 1 0 1 0 1 1 1 0 1 1 1 77上,需要进行引脚分配。

一、实验步骤:(1) 创建工程文件(2) 创建原理图设计文档(3) 利用ESC绘制电路图进行功能设计(4) 执行综合(5) 设计测试平台文件(6) 执行功能仿真(7) 执行实现、添加约束文件(8) 执行时序仿真(9) 生产位流文件,配置目标芯片Verilog HDL程序:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company:// Engineer://// Create Date: 18:47:07 03/10/2013// Design Name:// Module Name: ssss// Project Name:// Target Devices:// Tool versions:// Description://// Dependencies://// Revision:// Revision 0.01 - File Created// Additional Comments:////////////////////////////////////////////////////////////////////////////////////module decode_7(a, b, c, d, en, sega, segb, segc, segd,sege,segf,segg );input a, b, c, d, en;output reg sega, segb, segc, segd,sege,segf,segg;reg [1:7] segs;always @(a or b or c or d or en) beginif (en)case ({d, c, b, a})0:segs = 7'b1111110; //01:segs = 7'b0110000;2:segs = 7'b1101101;3:segs = 7'b1111001;4:segs = 7'b0110011;5:segs = 7'b1011011;6:segs = 7'b0011111;7:segs = 7'b1110000;8:segs = 7'b1111111;9:segs = 7'b1110011; //910:segs = 7'b1110111;//1011:segs = 7'b0011111;12:segs = 7'b1001110;13:segs = 7'b0111101;4:segs = 7'b10011111;15:segs = 7'b1000111;15default segs = 7'bx;endcaseelsesegs = 7'b0;{sega, segb, segc, segd,sege,segf,segg} = segs; endEndmodule实验过程中得到的图片:实验体会:本次实验通过对FPGA实验平台的使用,Verilog HDL语言有了一定的理解与认识,但在很多地方没有很好的熟练度,在以后的学习中还要好好的熟悉之。

实验一 七段数码显示译码器

实验一  七段数码显示译码器

实验一七段数码显示译码器一、实验目的1.学会的破解quartusII方法并破解机房电脑。

2.掌握七段数码管显示的工作原理并能够用verilog语言编程。

3.初步了解quartusII建立程序编译、仿真及下载的操作流程并学会七段数码显示译码器的Verilog硬件设计。

二、实验原理7段数码管是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能做十进制BCD译码,然而数字系统中的处理和运算都是二进制,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。

本实验中的7段译码管输出信号LED7S的7位分别接数码管的7个段,高位在左,低位在右三、实验内容1、实现BCD/七段显示译码器的“ Verilog ”语言设计。

说明:7段显示译码器的输入为:IN0…IN3共4根, 7段译码器的逻辑表,同学自行设计,要求实现功能为:输入“ 0…15 ”(二进制)输出“ 0…9…F ”(显示数码),输出结果应在数码管(共阴)上显示出来。

2、使用工具为译码器建立一个元件符号3、设计仿真文件,进行验证。

4、编程下载并在实验箱上进行验证。

四、实验步骤第一步破解quartusII1.在安装目录找到本机中关于quartusII的证书文件2.运行未破解的quartusII,在【tools】>【license setup】路径下的倒数第三行中找到本机网卡号并复制;3.以记事本方式打开证书文件,在编辑替换中将证书文件中host id后面的号码替换为上一步复制的内容,保存退出;4.在quartusII中打开【tools】>【license setup】中找到证书所在路径并打开单击ok即完成破解。

证书所在目录license setup选项找到本机网卡号替换证书中HOST ID为本机网卡号破解成功第二步进行七段数码管显示的实验1.新建Verilog工程项目,编写代码并保存至与模块名对应的项目文件夹。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一七段数码显示译码器
一、实验目的
1.学会的破解quartusII方法并破解机房电脑。

2.掌握七段数码管显示的工作原理并能够用verilog语言编程。

3.初步了解quartusII建立程序编译、仿真及下载的操作流程并学会七段数码显示译码器的
Verilog硬件设计。

二、实验原理
7段数码管是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能做十进制BCD译码,然而数字系统中的处理和运算都是二进制,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。

本实验中的7段译码管输出信号LED7S的7位分别接数码管的7个段,高位在左,低位在右
三、实验内容
1、实现BCD/七段显示译码器的“ Verilog ”语言设计。

说明:7段显示译码器的输入为:IN0…IN3共4根, 7段译码器的逻辑表,同学自行设计,要求实现功能为:输入“ 0…15 ”(二进制)输出“ 0…9…F ”(显示数码),输出结果应在数码管(共阴)上显示出来。

2、使用工具为译码器建立一个元件符号
3、设计仿真文件,进行验证。

4、编程下载并在实验箱上进行验证。

四、实验步骤
第一步破解quartusII
1.在安装目录找到本机中关于quartusII的证书文件
2.运行未破解的quartusII,在【tools】>【license setup】路径下的倒数第三行中找到本机
网卡号并复制;
3.以记事本方式打开证书文件,在编辑替换中将证书文件中host id后面的号码替换为上一
步复制的内容,保存退出;
4.在quartusII中打开【tools】>【license setup】中找到证书所在路径并打开单击ok即完成
破解。

证书所在目录license setup选项
找到本机网卡号替换证书中HOST ID为本机网卡号
破解成功
第二步进行七段数码管显示的实验
1.新建Verilog工程项目,编写代码并保存至与模块名对应的项目文件夹。

2.编译程序,编译无误后,在【tools】>【netlist viewers】里面选择RTL视,观察电路结
构。

3.新建波形文件进行仿真。

保存时要和源程序存放在同一目录下。

设置好输入波形参数后,
开始仿真。

在仿真后输入输出波形中观察逻辑关系是否正确。

4.将实验箱和PC合理连接起来。

打开EDA6000软件,设置好芯片类型为ACEX1K
(EP1K30TC144-3),载入模式4。

5.根据EDA6000界面内管脚对应芯片的实际管脚在QUARTUSⅡ里面设定管脚号并检查
无误。

6.将程序下载至FPGA内,并在EDA6000软件界面内进行验证测试。

程序代码
module DECL7S(A,led7s);
input [3:0] A;
output [6:0] led7s;
reg [6:0] led7s;
always @(A)
begin
case(A)
4'b0000:led7s<=7'b0111111;
4'b0001:led7s<=7'b0000110;
4'b0010:led7s<=7'b1011011;
4'b0011:led7s<=7'b1001111;
4'b0100:led7s<=7'b1100110;
4'b0101:led7s<=7'b1101101;
4'b0110:led7s<=7'b1111101;
4'b0111:led7s<=7'b0000111;
4'b1000:led7s<=7'b1111111;
4'b1001:led7s<=7'b1101111;
4'b1010:led7s<=7'b1110111;
4'b1011:led7s<=7'b1111100;
4'b1100:led7s<=7'b0111001;
4'b1101:led7s<=7'b1011110;
4'b1110:led7s<=7'b1111001;
4'b1111:led7s<=7'b1110001;
endcase
end
endmodule
编译结果
RTL
仿真设置仿真结果
实验箱设置
五、实验总结
这是第一次使用QuartusII工具,本次实验课作为初学者我感到自己知识的匮乏,还是有些力不从心,许多工具的应用还得有赖于老师的讲解,所以课余时间要多练习QuartusII 的应用,让自己更加熟练的掌握这门V erilog语言。

通过本次试验的上机操作运行,经过两节课的努力,我和同组的同学还是成功的模拟并仿真了七段数码管显示,并成功地在EDA6000试验箱上进行了检验验证。

本次试验过后我会充分的总结自己的不足之处,加强自己弱势方面的学习,用心学好EDA教科书上的知识,并抽时间在课外进行深入地学习相信下次试验情况会有很大程度的改观。

相关文档
最新文档