完整word版EDA7段数码显示译码器设计精
- 格式:doc
- 大小:218.88 KB
- 文档页数:7
1.实验名称 :十六进制7 段数码显示译码器设计2.实验目的:学习 7 段数码显示译码器的Verilog硬件设计。
3.实验原理:7 段数码是纯组合电路,往常的小规模专用IC,如 74 或 4000 系列的器件只好作十进制BCD 码译码,但是数字系统中的数据办理和运算都是二进制的,因此输出表达都是十六进制的,为了知足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。
比如6-18作为7 段译码器,输出信号LED7S7 位分别接图6-17数码管的7 个段,高位在左,低的位在右。
比如当LED7S输出为“”时,数码管的7 个段g,f,e,d,c,b,a分别接1,1,0,1,1,0,1;接有高电平的段发亮,于是数码管显示“5”。
这里没有考虑表示小数点的发光管,假如要考虑,需要增添段h,而后将LED7S改为 8 位输出。
4.实验内容: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 目标芯片——选择配置器件的工作方式——选择配置器件和编程方式——选择目标器件引脚端口状态——选择Verilog 语言版本4、全程综合与编译Processing—— Start Compilation 启动全程编译5、仿真测试时序剖析 :延时剖析及结果:生成RTL 原理图:该实验的配置模式:适配板布局图及实验仪IO 脚与芯片的管脚对应关系和其详尽放大图片:十六进制逻辑剖析:计数器和译码器连结电路的顶层文件原理图:6.总结与领会本次实验让我学会了好多知识。
一、七段数码显示译码器设计(1) 实验目的:学习7段数码显示译码器设计;学习VHDL的CASE语句应用及多层次设计方法。
(2) 实验原理:7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。
例6-18作为7段译码器,输出信号LED7S的7位分别接如图6-18数码管的7个段,高位在左,低位在右。
例如当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。
注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h,例6-18中的LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)应改为... (7 DOWNTO 0) 。
(3) 实验内容1:说明例6-18中各语句的含义,以及该例的整体功能。
在QuartusII上对该例进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
提示:用输入总线的方式给出输入信号仿真数据,仿真波形示例图如图6-17所示。
图7段译码器仿真波形【例6-18】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 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 ;(4) 实验内容2:引脚锁定及硬件测试。
河北科技大学实验报告2012级电信专业122班学号38 15年6月3日姓名郑振兴同组人指导教师于国庆实验名称实验三七段译码显示成绩实验类型设计型批阅教师一、实验目的(1)掌握VHDL语言的行为描述设计时序电路。
(2)掌握FPGA动态扫描显示电路设计方法。
(3)熟悉进程(process)和顺序语句的应用。
二、实验原理:用4个开关作为加法器的一组输入变量,共4组输入变量;对每组变量进行译码,变换成0~F标准段码,段码中“1”表示段亮,“0”表示段灭。
一位时钟输入作为扫描显示位扫时钟,四位位扫输出,依次输出高电平。
8位段码输出,根据位选状态选择输出四组输入变量的相应译码结果。
四组输入采用试验箱K1~K16,时钟输入选择试验箱CP1或CP2;试验箱LED显示选择动态显示方式(CZ1开关ST选择 OFF),段码、位码分别扫描输出,某个管的位码有效期间,将其对应的段码输出,各位码依次有效,实现循环扫描显示,将输入的16位二进制数,每4位一组,分别显示到4个数码管上(0 ~ F)。
三、实验内容及步骤1.打开MUXPLUS II VHDL编辑器,完成七段译码显示的设计。
包括VHDL程序输入、编译、综合。
实验程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.All;ENTITY qiduanyima ISPORT ( CLK: IN STD_LOGIC;A: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ;B: IN STD_LOGIC_VECTOR(15 DOWNTO 0) ;C: OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END qiduanyima;ARCHITECTURE simple OF qiduanyima ISBEGINPROCESS (CLK)VARIABLE Q : INTEGER RANGE 0 TO 5;VARIABLE COUNT : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF CLK'EVENT AND CLK='1' THENQ:=Q+1;CASE Q ISWHEN 1 => A(3 DOWNTO 0)<= "1000";WHEN 2 => A(3 DOWNTO 0)<= "0100";WHEN 3 => A(3 DOWNTO 0)<= "0010";WHEN 4 => A(3 DOWNTO 0)<= "0001";WHEN OTHERS => NULL;END CASE;CASE Q ISWHEN 1 =>COUNT(3 DOWNTO 0):=B(3 DOWNTO 0);WHEN 2 =>COUNT(3 DOWNTO 0):=B(7 DOWNTO 4);WHEN 3 =>COUNT(3 DOWNTO 0):=B(11 DOWNTO 8);WHEN 4 =>COUNT(3 DOWNTO 0):=B(15 DOWNTO 12);WHEN OTHERS => NULL;END CASE;IF Q = 5 THENQ := 0;END IF;END IF;CASE COUNT ISWHEN "0000" => C(6 DOWNTO 0) <= "0111111" ;WHEN "0001" => C(6 DOWNTO 0) <= "0000110" ;WHEN "0010" => C(6 DOWNTO 0) <= "1011011" ;WHEN "0011" => C(6 DOWNTO 0) <= "1001111" ;WHEN "0100" => C(6 DOWNTO 0) <= "1100110" ;WHEN "0101" => C(6 DOWNTO 0) <= "1101101" ;WHEN "0110" => C(6 DOWNTO 0) <= "1111101" ;WHEN "0111" => C(6 DOWNTO 0) <= "0000111" ;WHEN "1000" => C(6 DOWNTO 0) <= "1111111" ;WHEN "1001" => C(6 DOWNTO 0) <= "1101111" ;WHEN "1010" => C(6 DOWNTO 0) <= "1110111" ;WHEN "1011" => C(6 DOWNTO 0) <= "1111100" ;WHEN "1100" => C(6 DOWNTO 0) <= "0111001" ;WHEN "1101" => C(6 DOWNTO 0) <= "1011110" ;WHEN "1110" => C(6 DOWNTO 0) <= "1111001" ;WHEN "1111" => C(6 DOWNTO 0) <= "1110001" ;WHEN OTHERS => NULL ;END CASE;END PROCESS;END ARCHITECTURE simple;2、建立仿真波形文件,使用 MAXPLUS II Simulator功能进行功能仿真。
实验一. 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各语句的含义,以及该例的整体功能。
7段数码显示译码器设计数码显示译码器是一种可以将二进制代码转换为数码形式输出的电子装置。
它是数字电路中常见且重要的组成部分,用于将二进制数据转换为人们可以直接阅读和理解的数码显示。
本文将介绍一个基于74LS47芯片的7段数码显示译码器的设计。
一、设计目标设计一个能够接受4位二进制代码输入,并将其转换为对应的七段数码形式输出的译码器电路。
二、74LS47芯片介绍74LS47是一种四位BCD-7段数码译码器/驱动器芯片,它能够将4位BCD代码转换为对应的七段数码输出。
该芯片具有以下特点:1.输入:4位BCD代码(A,B,C和D)2.输出:共阳极(共阳)显示器的七个引脚(a,b,c,d,e,f和g)3.功能:将BCD代码转换为七段数码形式输出,用于显示三、电路设计1.将74LS47芯片的引脚连接至7段数码显示器的a,b,c,d,e,f和g引脚。
这些引脚负责控制七段数码的每个段。
2.A,B,C和D引脚接收4位二进制代码输入。
3. 第一个74LS47芯片的Vcc引脚连接到正电源,GND引脚连接到地。
4. 还需将每个74LS47芯片的GA和GB引脚连接在一起,形成一个输入信号的链。
GA和GB引脚连接到Vcc电源端。
5.在接有显示器的七段段引脚(a,b,c,d,e,f,g)和段选择(a-g`)之间插入电阻。
这些电阻可用于限流,避免过高电流对显示器和芯片造成损坏。
6.确保芯片和显示器之间的信号传输有效,没有短路或脱离接地。
四、工作原理1.输入:通过A、B、C和D四个引脚接收4位BCD代码,一共有16个可能的输入组合。
2.输出:将四位BCD代码转换为相应的七段数码输出,用于显示。
例如,输入“0000”将转换为“0”的数码形式。
3.七段显示器共阳极(共阳):对于共阳极的显示器,七个段引脚(a,b,c,d,e,f和g)的高电平将被激活,且通过公共引脚控制显示的数码部分。
4.区分位和段:每个数码位由七个段组成,通过该段的点亮和熄灭来表示所需显示的数字。
广州大学学生实验报告实验室: 电子信息楼 317EDA 2017 年10 月 16 日一 实验目的a) 学习7段数码显示译码器设计;学习VHDL 的多层次设计方法二 实验原理a) 如图是共阴极数码管。
b) 七段数码管是纯组合电路,通常小规模专用IC ,如74或4000系列的器件只能做十进制BCD 译码。
然而.数字系统中的数据都是2vhdl 译码程序在FPGA 中来实现,4位码为A[3:0],输出控制77位数据为LED7S[6:0]。
输出信号LED7S 的7位7个端,高位在左,低位在右。
例如当LED7S ”时,数码管的7个段g,f,e,d,c,b,a 分别接1,5,如果要考虑小dp ,这里不考虑小数点。
三实验设备a)FPGA实验箱,Cyclone III EP3C40Q24C08四实验内容和结果a)10进制译码器VHDL代码设计根据实验原理,输入7段数码管译码程序,如图所示:b)波形仿真显然,仿真结果和共阴数码管真值表结果相同,说明设计是正确的,能实现正常10进制译码c)引脚锁定和硬件验证如图所示:实验电路模式6,用数码8显示译码输出(PIO46-PIO40),键8/7/6/5四位控制输入硬件验证的结果也和仿真的结果一致,通过按键控制4位输入控制10进制数字,从数码管读出译码值。
发现电路是可行的,说明设计没有错误。
d)16进制译码器VHDL设计i.根据实验原理,输入7段数码管译码程序,如图所示,红色方框为添加了的程序代码,将10进制延伸到16进制,新增加了6个数据点。
ii.波形仿真,可以看到,输出可以对16个数据进行译码输出,遂可以知道该VHDL程序能实现16进制的译码,译码输出可以接数码管。
iii.引脚锁定和硬件仿真实验电路模式6,用数码8显示译码输出(PIO46-PIO40),键8/7/6/5四位控制输入硬件验证的结果也和仿真的结果一致,通过按键控制4位输入控制16进制数字,从数码管读出译码值。
EDA技术实验报告实验项目名称:7段数码显示译码器设计实验日期:2012.06.04实验成绩:实验评定标准:1)实验程序是否正确2)实验仿真、结果及分析是否合理3)实验报告是否按照规定格式实验目的实验器材学习7段数码显示译码器设计,学习VHDL的CASE语句应用及多层次设计方法。
Quartusll7.2 软件三、实验内容(实验过程)1、首先设计一个2选1的数据选择器(1)打开软件,选择菜单file —>new,在弹出的new对话框中选择Device Design Files 的VHDL File项,按OK键后进入VHDL文本编辑方式。
根据7段数码显示译码器的功能编辑相应的源程序。
如下: library ieee;use ieee.std」o gic_1164.all;en tity decl7s isport (a:i n std_logic_vector(3 dow nto 0; led7s:out std」o gic_vector(6 dow nto 0; end decl7s;architecture one of decl7s isbeg inprocess(abeg incase a iswhe n"0000"=>led7s<="0111111";whe n"0001"=>led7s<="0000110";whe n"0010"=>led7s<="1011011";whe n"0011"=>led7s<="1001111";whe n"0100"=>led7s<="1100110";whe n"0101"=>led7s<="1101101";whe n"0110"=>led7s<="1111101";whe n"0111"=>led7s<="0000111";whe n"1000"=>led7s<="1111111";whe n"1001"=>led7s<="1101111";whe n"1010"=>led7s<="1110111";whe n"1011"=>led7s<="1111100";whe n"1100"=>led7s<="0111001";whe n"1101"=>led7s<="1011110";whe n"1110"=>led7s<="1111001";whe n"1111"=>led7s<="1111001";whe n others =>nu II;end case;end process;end one;2、对该VHDL语言进行编辑后,无误后进行仿真。
EDA实验二七段数码管显示译码的设计一、实验目的1、掌握七段数码管译码器的工作原理;2、学会运用波形仿真测试检验程序的正确性;3、学会运用波形仿真测试检验程序的正确性。
二、实验设备ZYE1502C型实验箱三、内容要求1、用拨位开关输入8421BCD码,七段数码管显示“0-F”16个16进制的数字。
2、观察字符亮度和显示刷新的效果:(1)在8个七段数码管上同时显示某一数字;(2)在8个七段数码管上动态显示某一数字。
3、扩展内容:(1)动态显示时,能即时改变显示的顺序;(2)动态显示时,实现显示数字从0~F的循环显示。
四、实验步骤1、输入:设计部分采用VHDL语言完成;2、编译;3、仿真;4、下载;5、连线。
(1)四个拨位开关(在P1、P2处选择)连接D3、D2、D1、D0信号所对应的管脚。
时钟CLK所对应的管脚同实验箱上的时钟源相连。
(2)扫描片选信号DIG(0 TO 3)的管脚同七段数码管(共阴)相连;(3)七段数码管驱动信号A,B,C,D,E,F,G的管脚分别同扫描数码管的段输入PCLK处的连接线孔A,B,C,D,E,F,G相连。
五、实验报告1、论述实验过程和步骤;2、填写正确的实验结果。
(1)通过两种显示效果分析:字符显示亮度同扫描频率的关系,且让人眼感觉不出光闪烁现象的最低扫描频率是多少?答:扫描频率越高,显示亮度越低。
人眼看是否闪烁与所用的时钟和分频方式有关,在频率稳定和分频均匀的情况下,最低扫描频率为256Hz,若分频不均匀或频率不稳定,则需更高频率。
(2)字形编码的种类,即一个7段数码管可产生多少种字符,产生所有字符需要多少根被译码信号线?答:一个7段数码管可产生2^7=128种字符,产生所有字符至少需要7根被译码信号线。
但假如只编译0-F,16个字符,则至少只需要4根被译码信号线。
六、实验小结。
答:1、不同控制端需要预先分配控制优先级,否则编写的时候会出现很多问题。
优先级分为普通和特殊,一般错误情况可以跨越权限显示出来。
班级:学号:姓名:实验二7段数码显示译码器【实验目的】1.设计七段显示译码器,并在实验板上验证2.学习V erilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具的使用方法;【实验内容】1.实现BCD/七段显示译码器的“Verilog ”语言设计。
说明:7段显示译码器的输入为:IN0…IN3共5根,7段译码器的逻辑表同学自行设计,要求实现功能为:输入“0…15 ”(二进制),输出“0…9…F ”(显示数码),输出结果应在数码管(共阴)上显示出来。
2.使用工具为译码器建立一个元件符号3.设计仿真文件,进行验证。
4.编程下载并在实验箱上进行验证。
【实验原理】【1】7段数码是纯组合电路。
首先设计程序如下,该程序可按case语句的表述方法写。
【2】设输入的4位码为[3:0],输出控制7段共阴数码管的7位数据为LED7S[6:0].输出信号LED7S的7位分别接共阴数码管的7个段,高位在左,低位在右,例如当LED7S输出为1011011,数码管的7个段g,f,e,d,c,b,a分别接1,0,1,1,0,1,1;接有高电平的段发亮,数码管显示2.注:未考虑小数点的发光管,若考虑则需增加段h,然后将LED7S改为8位输出。
【程序源代码】(加注释)module LED(IN,led7);input [3:0]IN; //四位并行加载数据output[6:0]led7; //计数数据输出reg [6:0]led7; //定义一个内部7位寄存节点always@(IN) //时序过程begincase(IN)4'b0000:led7<=7'b0111111;4'b0001:led7<=7'b0000110;4'b0010:led7<=7'b1011011;4'b0011:led7<=7'b1001111;4'b0100:led7<=7'b1100110;4'b0101:led7<=7'b1101101;4'b0110:led7<=7'b1111101;班级:学号:姓名:4'b0111:led7<=7'b0000111;4'b1000:led7<=7'b1111111;4'b1001:led7<=7'b1101111;default:led7<=7'b0111111;endcase //主块结束endendmodule【仿真和测试结果】班级:学号:姓名:【实验心得和体会】初次学习并应用Verilog语言,作为实战第一类题,我熟悉并熟练掌握了Verilog语言的基本运用方法,这对进一步的学习拥有重要的作用。
实验四 7段数码显示译码器的设计一、设计目的1、学习7段数码显示译码器的设计方法;2、掌握多层次的VHDL程序设计方法。
二、设计要求1、编写7段数码显示译码器的VHDL源程序;2、在MAX+PLUSII上进行编译、综合、适配、引脚锁定、下载测试;3、进行仿真波形的测试;4、写出设计性实验报告。
三、设计提示1、实验原理提示:7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。
本项实验很容易实现这一目的。
例6-21作为7段BCD码译码器的设计,输出信号LED7S的7位分别接如图6-21数码管的7个段,高位在左,低位在右。
例如当LED7S输出为 "1101101" 时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1,接有高电平的段发亮,于是数码管显示“5”。
2、引脚锁定以及硬件下载测试提示:建议选实验电路模式6,用数码8显示译码输出(PIO46--PIO40),键8、键7、键6、键5四位控制输入,硬件验证译码器的工作性能。
四、实验报告要求根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;设计原程序,程序分析报告、仿真波形图及其分析报告。
五、实验思考和总结1、讨论语句WHEN OTHERS=>NULL的作用。
对于不同的VHDL综合器,此句是否具有相同含义和功能?2、用VHDL例化语句(参考实验2)按图3-25的方式,以本章第一节实验三和本节实验一为底层元件,完成顶层文件设计,并重复以上实验过程。
注意图3-25中的tmp是4位总线,led是7位总线。
对于引脚锁定和实验,建议仍选实验电路模式6,用数码8显示译码输出,用键3作为时钟输入(每按2次键为1个时钟脉冲),或直接时钟信号clock0。
题目:七段显示译码器电路设计专业:生产过程自动化专业班级:生产过程0901姓名:学号:指导老师:杨旭目录第一节绪论……………………………………………………………………………..1.1本设计的任务和主要内容………………………………………………………………..1.2基本工作原理及原理框图………………………………………………………………...第二节硬件电路的设计…………………………………………………………………2.1BCD译码器选择与设计…………………………………………………………………….2.2LED显示器的设计……………………………………………………………………………2.3总的设计……………………………………………………………………………………第四节设计总结…………………………………………………………………………第一节绪论本课程设计的七段译码器主要以BCD译码器或LED显示器为主要部件,应用集成门电路组成的一个具有译码和显示的装置。
其中BCD 译码器采用8421BCD译码器,即----七段显示译码器(74LS48)型。
LED显示器是由发光二极管组成的,LED显示器分共阴极和共阳极两种型号,共阴极LED显示器的发光二级管阴极接地,共阳极LED显示器的发光二极管阳极并联。
最后把BCD译码器或LED显示器组成了的装置就具有了显示和译码的功能。
此七段译码器也就成功了。
1.1设计的任务和本主要内容1)运用LED显示器或BCD译码器实现一定的功能2)写出详细的实验报告1.2基本工作原理及原理框图基本工作原理及原理框图如下:第二节硬件的设计BCD译码器选择与设计发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。
分段式显示器(LED数码管)由7条线段围成字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。
实验三数码管七段译码电路一、实验目的1、了解组合逻辑电路设计2、制作一个数码管显示的7段译码电路,以备后面的实验调用3、学习在QUARTUS II中实用VHDL设计功能模块,并将所生成的功能模块转换成QUARTUS II原理图的符号库,以便在使用原理图时调用该库二、实验内容1、实验前的准备(1)该实验不使用七个模块组各个功能单元,所以三个拨码开关处于“111”即MODEL_SEL1-3 拨下处于“ON”状态时,使用实验仪上的固定连接。
(2)拨码开关MODEL_SEL5-8 全置于“ON ”状态,即MODEL_SEL5-8 拨下处于“ON ”状态时通过USB BLASTER 接口下载。
(3)MODEL_SEL4 的状态可以处于任何状态。
2、实验步骤第一个实验:应用六个共阴极数码管显示译码结果,即用拨码开关产生8421BCD码,FPGA 器件产生译码电路,把BCD码显示在LED数码管上。
(一)创建工作库文件夹和编辑设计文件步骤1:建立工作库文件夹Fil e→New→VHDL File步骤2:输入设计项目VHDL文本相应程序如下:步骤3:存盘,注意原理图(文本)取名*(必使文件名与工程名相同,本文档名为:xdeled),并把文件存在新建的工作库文件夹中File→Save As(二)创建工程步骤4:创建工程(注意:名字不能与刚的文本文件同名,例如叫:yangxing)直接利用第3步创建或者File→New Project Wizard步骤5:将设计文件加入工程中(一般已加入)步骤6:选择仿真器和综合器类型(默认)步骤7:选择目标芯片Assignments→Device 选择EP2C35F672芯片,其中的其它选项Family:CycloneII;Pin count:672; Speed grade:8;Package:TQFP;步骤8:工具设置(默认)步骤9:结束设置(三)由VHDL程序代码创建模块:fil e→create/_update→create symbol files for current file(四)建立工作库文件夹和编辑设计文件步骤1:建立工作库文件夹步骤2:输入设计项目原理图或VHDL文本File→New→Block Diagram File/Schematic File (VHDL File)(调用元件的方式:在图形编辑器空白处单击鼠标左键确定输入位置,然后选择Edit→Insert Symbol,或双击鼠标左键)自己创建的器件xdeled在project里步骤3:存盘,注意原理图(文本)取名,并把文件存在新建的工作库文件夹中File →Save As (注意:取名应和工程名相同,为:yangxing)图如下:(五)编译前设置步骤10:选择目标芯片Assignments→Device 为芯片:EP2C35F672步骤11:选择配置器件的工作方式。
实验名称:十六进制7 段数码显示译码器设计实验目的:1.设计七段显示译码器2.学习Verilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具的使用方法;工作原理:7 段数码是纯组合电路,通常的小规模专用IC ,如 74 或 4000 系列的器件只能作十进制 BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在 FPGA/CPLD中来实现。
例如 6-18 作为 7 段译码器,输出信号 LED7S 的 7 位分别接图 6-17 数码管的 7 个段,高位在左,低位在右。
例如当 LED7S输出为“ 1101101”时,数码管的 7 个段 g,f,e,d,c,b,a 分别接 1,1,0,1,1,0,1 ;接有高电平的段发亮,于是数码管显示“5”。
注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段 h,例 6-18 中的LED7S:OUTSTD_LOGIC_VECTOR(6 DOWNTO 0)应改为 (7 DOWNTO 0)。
实验内容 1:将设计好的 VHDL译码器程序在 Quartus II上进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
实验步骤:步骤 1:新建一个文件夹击打开vhdl 文件;步骤 2: 编写源程序并保存步骤 3:新建一个工程及进行工程设置步骤 4:调试程序至无误;步骤 5:接着新建一个VECTOR WAVEFOM文件及展出仿真波形设置步骤 6:输入数据并输出结果(时序仿真图)步骤 7:设置好这个模式步骤 8:生成 RTL原理图步骤 9:引脚锁定及源代码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 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;实验内容二:1、硬件测试。
实验一七段数码显示译码器设计一、实验目的: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语言有了一定的理解与认识,但在很多地方没有很好的熟练度,在以后的学习中还要好好的熟悉之。
EDA 技术实验报告实验项目名称:7段数码显示译码器设计实验日期:2012.06.04 实验成绩:实验评定标准:1)实验程序是否正确A()B()C()2)实验仿真、结果及分析是否合理A()B()C()3)实验报告是否按照规定格式A()B()C()一、实验目的学习7段数码显示译码器设计,学习VHDL的CASE语句应用及多层次设计方法。
二、实验器材QuartusII7.2软件三、实验内容(实验过程)(一).1、首先设计一个2选1的数据选择器(1)打开软件,选择菜单file—>new,在弹出的new对话框中选择Device Design Files 的VHDL File项,按OK键后进入VHDL文本编辑方式。
根据7段数码显示译码器的功能编辑相应的源程序。
如下: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(abegincase a iswhenwhenwhen0=>led7s<=A1011;when1=>led7s<=@1111;when0=>led7s<=H0110;when1=>led7s<=H1101;when0=>led7s<=I1101;when1=>led7s<=when@0=>led7s<=I1111;when@1=>led7s<=H1111;whenA0=>led7s<=I0111;whenA1=>led7s<=I1100;whenH0=>led7s<=1001;whenH1=>led7s<=A1110;whenI0=>led7s<=I1001;whenI1=>led7s<=I1001;when others =>null;end case;end process;end one;2、对该VHDL语言进行编辑后,无误后进行仿真。
点击相应的编辑按钮用来检查源程序的正确性。
3.、编译和仿真仿真前要新建波形文件:filenewother filesvector waveform file 点击OK后在出现的新建波形文件左边空白栏点击鼠标右键,选择insertinsert node or bus.在出现的对话框中直接点击node finder。
之后,在出现的对话框中选择list。
当左边的nodes found栏中出现设计文件的输入输出端口后,点击》加入到右边的selected node 中,点击OK。
在完成7段数码显示译码器源程序的编辑后,执行Processingstart compilation命令,对decl7s.vhd进行编译。
下图是7段数码显示译码器对应的仿真波形:在完成对源文件的编译后,执行Filecreate/updatecreate symbol files for current命令,为VHDL设计文件生成元件符号。
其元件符号如图所示符号如图所示可以供其他电路和系统设计的调用。
4、下载选择电路模式6。
用数码8显示译码输出,键8、键7、键6、键5四位控制输入,硬件验证译码器的工作性能。
目标芯片选择:实验箱上的目标芯片为ACEX1K系列的EP1K30TC芯片,必须选择正确的芯片才能下载成功。
在菜单栏里选择:assignmentsdevice 在出现的对话框中选择正确的芯片即可。
(1)引脚的选择:通过试验箱左下角的按键选择模式6。
键八、键七、键六、键五分别接a[3]、a[2]、a[1]、a[0];PIO46—PIO40分别接g,f,e,d,c,b,a.(2)引脚绑定:引脚选定之后,可以把输入输出端口绑定在选择好的引脚上。
即a[3]绑定在引脚27上,a[2]绑定在引脚26上,a[1]绑定在引脚23上,a[0]绑定在引脚22上,led7s[6]接在引脚95上,led7s[5]接在引脚92上,led7s[4]接在引脚91上,led7s[3]接在引脚90上,led7s[2]接在引脚89上,led7s[1]接在引脚88上led7s[0]接在引脚87上。
如图:(3)下载和硬件测试:把实验箱连接好电源和计算机接口,把程序下载到目标芯片上,就可以在实验箱上通过按键和发光二级管来检验实验的正确性。
5.设计加法计数器(1)打开软件,选择菜单file—>new,在弹出的new对话框中选择Device Design Files 的VHDL File项,按OK键后进入VHDL文本编辑方式。
根据加法计数器的功能编辑相应的源程序。
如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport(clk,rst,en :in std_logic;cq :out std_logic_vector(3 downto 0;cout :out std_logic;end cnt10;architecture behav of cnt10 isbeginprocess(clk,rst,envariable cqi :std_logic_vector(3 downto 0;beginif rst ='1' then cqi :=(others=>'0';elsif clk'event and clk='1' thenif en='1' thenif cqi<9 then cqi:=cqi+1;else cqi:=(others=>'0';end if;end if;end if;if cqi =9 then cout<='1';else cout<='0';end if;cq<=cqi;end process;end behav;6、对该VHDL语言进行编辑后,无误后进行仿真。
点击相应的编辑按钮用来检查源程序的正确性。
7.、编译和仿真仿真前要新建波形文件:filenewother filesvector waveform file 点击OK后在出现的新建波形文件左边空白栏点击鼠标右键,选择insertinsert node or bus.在出现的对话框中直接点击node finder。
之后,在出现的对话框中选择list。
当左边的nodes found栏中出现设计文件的输入输出端口后,点击》加入到右边的selected node 中,点击OK。
在完成加法计数器源程序的编辑后,执行Processingstart compilation命令,对cnt10.vhd进行编译。
下图是加法计数器对应的仿真波形:在完成对源文件的编译后,执行Filecreate/updatecreate symbol files for current命令,为VHDL设计文件生成元件符号。
其元件符号如图所示符号如图所示可以供其他电路和系统设计的调用。
8、利用元件例化语句,按实验书上的图6.3方式连接成顶层设计电路。
源程序如下:library ieee;use ieee.std_logic_1164.all;entity tan isport(clock0:in std_logic;rat0:in std_logic;ena0:in std_logic;led:out std_logic_vector (6 downto 0;cout0:out std_logic;end tan;architecture lang of tan issignal tmp:std_logic_vector (3 downto 0;component cnt10port(clk,rst,en :in std_logic;cq :out std_logic_vector(3 downto 0;cout :out std_logic;end component;component decl7sport (a:in std_logic_vector(3 downto 0;led7s:out std_logic_vector(6 downto 0;end component;begincnt4b:cnt10 port map(clock0,rat0,ena0,tmp,cout0;decl7a:decl7s port map(tmp,led;end lang;、对该语言进行编辑后,无误后进行仿真。
点击相应的编辑按VHDL9钮用来检查源程序的正确性。
、编译和仿真10.仿真前要新建波形文件:点击后在OKfilenewother filesvector waveform file出现的新建波形文件左边空白栏点击鼠标右键,选择insertinsert node or 在出现的对话框中直接点击。
之后,在出现的对话框中选node finderbus.择。
当左边的栏中出现设计文件的输入输出端口后,点nodes foundlist 击》加入到右边的中,点击。
selected nodeOK在完成段数码显示译码器源程序的编辑后,执行Processingstart 7命令,对进行编译。
compilationtan.vhd下图是图对应的仿真波形:6.3、下载11选择电路模式。
用数码显示译码输出,键作为时钟输368入,,或者直接接clock0.目标芯片选择:实验箱上的目标芯片为系列的EP1K30TCACEX1K芯片,必须选择正确的芯片才能下载成功。
在菜单栏里选择:在出现的对话框中选择正确的芯片即可。
assignmentsdevice引脚的选择:通过试验箱左下角的按键选择模式。
接clock0;.6Clock0(1键八接,键七接接;分别接g,f,e,d,c,b,a.—ena0;speakerPIO40cout0PIO46rat0引脚绑定:引脚选定之后,可以把输入输出端口绑定在选择好的引(2脚上。
即绑定在引脚上,绑定在引脚上,绑定在引clock0rat02627ena0脚上,绑定在引脚上,接在引脚上,接在led7s[5]led7s[6]cout01269995引脚上,接在引脚上,接在引脚上,接在led7s[2]led7s[3]9192led7s[4]90引脚上,接在引脚上接在引脚上。