EDA实验7段显示译码器
- 格式:doc
- 大小:73.00 KB
- 文档页数:3
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.总结与领会本次实验让我学会了好多知识。
河北科技大学实验报告2013级电信专业132 班学号130701213 2016年6月7日姓名田继辉同组人指导教师于国庆实验名称实验三七段译码显示成绩实验类型设计型批阅教师一、实验目的(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;use ieee.std_logic_unsigned.all;ENTITY alpher ISPORT(1 / 6clk : IN STD_LOGIC;choice : OUT STD_LOGIC_VECTOR(7 downto 0);data : OUT STD_LOGIC_VECTOR(7 downto 0)); END alpher;ARCHITECTURE a OF alpher ISSIGNAL count : STD_LOGIC_VECTOR(3 downto 0); SIGNAL temp : STD_LOGIC_VECTOR(3 downto 0);BEGINchoice<="10000000";clk1_label:PROCESS (clk)BEGINIF clk'event and clk='1' THENcount<=count+1;END IF;END PROCESS clk1_label;WITH count selectdata <= "11111100" WHEN "0000","01100000" WHEN "0001","11011010" WHEN "0010","11110010" WHEN "0011","01100110" WHEN "0100","10110110" WHEN "0101","10111110" WHEN "0110","11100000" WHEN "0111","11111110" WHEN "1000","11110110" WHEN "1001","11101110" WHEN "1010","00111110" WHEN "1011","10011100" WHEN "1100","01111010" WHEN "1101","10011110" WHEN "1110","10001110" WHEN OTHERS;END a;2、建立仿真波形文件,使用MAXPLUS II Simulator功能进行功能仿真。
EDA实验报告班级:姓名:目录实验一:七段数码显示译码器设计 (1)摘要 (1)实验原理 (1)实验方案及仿真 (1)引脚下载 (2)实验结果与分析 (3)附录 (3)实验二:序列检测器设计 (6)摘要 (6)实验原理 (6)实现方案及仿真 (6)引脚下载 (7)实验结果与分析 (8)实验三:数控分频器的设计 (11)摘要 (11)实验原理 (11)方案的实现与仿真 (11)引脚下载 (12)实验结果及总结 (12)附录 (12)实验四:正弦信号发生器 (14)摘要 (14)实验原理 (14)实现方案与仿真 (14)嵌入式逻辑分析及管脚下载 (16)实验结果与分析 (17)附录 (18)实验一:七段数码显示译码器设计摘要:七段译码器是一种简单的组合电路,利用QuartusII的VHDL语言十分方便的设计出七段数码显示译码器。
将其生成原理图,再与四位二进制计数器组合而成的一个用数码管显示的十六位计数器。
整个设计过程完整的学习了QuartusII的整个设计流程。
实验原理:七段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA\CPLD中来实现。
本实验作为7段译码器,输出信号LED7S的7位分别是g、f、e、d、c、b、a,高位在左,低位在右。
例如当LED7S 输出为“1101101”时,数码管的7个段g、f、e、d、c、b、a分别为1、1、0、1、1、1、0、1。
接有高电平段发亮,于是数码管显示“5”。
实验方案及仿真:I、七段数码显示管的设计实现利用VHDL描述语言进行FPGA上的编译实现七段数码显示译码器的设计。
运行QuartusII在G:\QuartusII\LED7S\下新建一个工程文件。
新建一个vhdl语言编译文件,编写七段数码显示管的程序见附录1-1。
实验三:七段数码管显示译码一、实验目的:1 设计并实现一个7段数码管控制接口,要求:在输入四位数据为0~15时,数码管显示0~F;2设计并实现一个两位7段数码管控制接口,实现输入八位二进制,结果由两位7段数码管显示功能。
3 熟悉ISE9.1软件中电路的设计仿真及综合实现方法;4 熟悉下载方法及实验系统调试方法。
二、实验原理七段数码管显示译码程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY hex2led ISPORT(hex : IN STD_LOGIC_VECTOR(3 downto 0);ledout : OUT STD_LOGIC_VECTOR(6 downto 0));END hex2led;ARCHITECTURE rtl OF hex2led ISSIGNAL led :STD_LOGIC_VECTOR(6 downto 0);BEGINledout<= NOT led;WITH hex SELECTled<="1111001" when "0001","0100100" when "0010","0110000" when "0011","0011001" when "0100","0010010" when "0101","0000010" when "0110","1111000" when "0111","0000000" when "1000","0010000" when "1001","0001000" when "1010","0000011" when "1011","1000110" when "1100","0100001" when "1101","0000110" when "1110","0001110" when "1111","1000000" when others;END rtl;三、实验处理激励代码:tb : PROCESSBEGINhex<="0000";wait for 50 ns;for i in 0 to 15 loophex<=hex+1;wait for 50 ns;end loop;功能仿真图时序仿真图(图中黄线可以看出延时)延时报告:Data Sheet report:All values displayed in nanoseconds (ns) Pad to PadSource Pad |Destination Pad| Delay | hex<0> |ledout<0> | 5.963| hex<0> |ledout<1> | 5.963| hex<0> |ledout<2> | 5.963| hex<0> |ledout<3> | 5.958| hex<0> |ledout<4> | 5.963| hex<0> |ledout<5> | 5.958| hex<0> |ledout<6> | 5.958| hex<1> |ledout<0> | 5.963| hex<1> |ledout<1> | 5.963| hex<1> |ledout<2> | 5.963| hex<1> |ledout<3> | 5.958| hex<1> |ledout<4> | 5.963| hex<1> |ledout<5> | 5.958| hex<1> |ledout<6> | 5.958| hex<2> |ledout<0> | 5.963| hex<2> |ledout<1> | 5.963| hex<2> |ledout<2> | 5.963| hex<2> |ledout<3> | 5.958| hex<2> |ledout<4> | 5.963| hex<2> |ledout<5> | 5.958| hex<2> |ledout<6> | 5.958| hex<3> |ledout<0> | 5.963| hex<3> |ledout<1> | 5.963| hex<3> |ledout<2> | 5.963| hex<3> |ledout<3> | 5.958| hex<3> |ledout<4> | 5.963| hex<3> |ledout<5> | 5.958| hex<3> |ledout<6> | 5.958| ---------------+---------------+---------+可编程器件、拨码开关、与发光二极管关系#PACE: Start of PACE I/O Pin AssignmentsNET "hex<0>" LOC = "N17" ;NET "hex<1>" LOC = "H18" ;NET "hex<2>" LOC = "L14" ;NET "hex<3>" LOC = "L13" ;NET "ledout<0>" LOC = "B4" ;NET "ledout<1>" LOC = "A4" ;NET "ledout<2>" LOC = "D5" ;拨码开关状态数码管显示D1D2D3D4下下下下0下下下上1下下上下2下下上上3下上下下4下上下上5下上上下6下上上上7上下下下8上下下上9上下上下A 上下上上B 上上下下C 上上下上D 上上上下E 上上上上FNET "ledout<3>" LOC = "C5" ;NET "ledout<4>" LOC = "A6" ;NET "ledout<5>" LOC = "B6" ;NET "ledout<6>" LOC = "E7" ;设计表格记录实验结果,并分析其结果的正确性。
实验五7段数码显示译码器设计实验报告一、实验要求1、GW48实验箱2、写出7段数码显示译码器程序3、总结实验步骤和实验结果二、实验内容1、说明例中各语句的含义,以及该例的整体功能。
在max+plus2或quartus2上对以下该例进行编辑、编译、综合、适配仿真,给出其所有信号的时序仿真波形。
module zdw(in,out);output [6:0]out;input [3:0]in;reg[6:0]out;always@(in)begincase(in)4'd0: out=7'b1111110;4'd1: out=7'b0110000;4'd2: out=7'b1101101;4'd3: out=7'b1111001;4'd4: out=7'b0110011;4'd5: out=7'b1011011;4'd6: out=7'b1011111;4'd7: out=7'b1110000;4'd8: out=7'b1111111;4'd9: out=7'b1111011;4'd10: out=7'b1110111;4'd11: out=7'b0011111;4'd12: out=7'b1001110;4'd13: out=7'b0111101;4'd14: out=7'b1001111;4'd15: out=7'b1000111;default: out=7'bx;endcaseendendmodule2、引脚锁定以及硬件下载测试。
建议选实验电路模式6,用数码8显示译码输出(PIO46—PIO40)。
键8,键7,键6,键5四位控制输入,硬件验证译码器的工作性能。
河北科技大学实验报告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功能进行功能仿真。
《EDA技术实用教程》实验报告实验一、7段数码显示译码器一、实验目的(1) 熟悉QuartusⅡ软件应用环境,了解实验流程。
(2) 编写简单的VHDL代码,并在QuartusⅡ中进行调试和验证,并在EDA6000中下载代码和验证。
(3) 学习7段数码显示译码器的设计。
二、实验原理7段数码管是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能做十进制BCD译码,然而数字系统中的处理和运算都是二进制,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。
本实验中的7段译码管输出信号LED7S 的7位分别接数码管的7个段,高位在左,低位在右。
三、实验仪器南京伟福实业有限公司生产EDA2000/6000试验仪EDA6000相关软件和试验仪连接线和ByteBlaster[MV]连接线四、实验步骤与结果1、创建文件夹并编辑设计文件在D盘中创建文件夹取名ex4。
打开QuartusⅡ,选择菜单File中New。
在New窗口中的Device Design File中选择语言类型VHDL File。
在该编译窗口中键入本实验程序。
将其保存在D盘的ex4文件夹里。
文件名与实体名一致,类型为vhd。
程序如下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" ; -- X"3F"'0WHEN "0001" => LED7S <= "0000110" ; -- X"06"'1WHEN "0010" => LED7S <= "1011011" ; -- X"5B"'2WHEN "0011" => LED7S <= "1001111" ; -- X"4F"'3WHEN "0100" => LED7S <= "1100110" ; -- X"66"'4WHEN "0101" => LED7S <= "1101101" ; -- X"6D"'5WHEN "0110" => LED7S <= "1111101" ; -- X"7D"'6WHEN "0111" => LED7S <= "0000111" ; -- X"07"'7WHEN "1000" => LED7S <= "1111111" ; -- X"7F"'8WHEN "1001" => LED7S <= "1101111" ; -- X"6F"'9WHEN OTHERS => NULL ;END CASE ;END PROCESS ;END ;2、创建工程(1)选择菜单File中New Project Wizard命令,在如下“工程设置”对话框中单击右侧“…”按钮,找到文件夹D:\ex4,选中已存盘的ex4.vhd的文件。
实验七 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段数码显示译码器【实验目的】1.设计七段显示译码器,并在实验板上验证2.学习V erilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具的使用方法;【实验内容】1.实现BCD/七段显示译码器的“Verilog ”语言设计。
说明:7段显示译码器的输入为:IN0…IN3共5根,7段译码器的逻辑表同学自行设计,要求实现功能为:输入“0…15 ”(二进制),输出“0…9…F ”(显示数码),输出结果应在数码管(共阴)上显示出来。
2.使用工具为译码器建立一个元件符号3.设计仿真文件,进行验证。
4.编程下载并在实验箱上进行验证。
【实验原理】7段数码是纯组合电路。
通常的小规模专用IC,如74或4000系列的器件只能作十进制的BCD码译码,然而数字系统的数据处理和运算都是二进制的,所以输出表达式都是十六进制的。
为了满足十六进制数的译码显示,最方便的方法就是利用Verilog译码程序在FPGA/CPLD中实现。
首先要设计一段程序。
该程序可按照例3-2的case语句表述方法,再根据表4-2的真值表写出程序。
者输入的4位码为A【3:0】,输出控制7段共阴数码管的7位数据位LED7S【6:0】。
输出信号LED7S的7位分别接图4-74的工银数码管的7个段,高位在左,低位在右。
【程序源代码】(加注释)module LED (IN,led7);input[3:0] IN;output[6:0] led7; //定义输出信号reg[6:0] led7; //定规输出信号位7位的寄存器变量always@(IN) //IN为敏感性信号begin //主块开始case(IN) //使用了case语句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;endcaseend //主块结束endmodule【仿真和测试结果】【硬件仿真结果:】【实验心得和体会】通过这次的7段数码显示译码器实验,我对EDA有了进一步的了解,对QuartusII有了了解以及在QuartusII的使用上有了一些经验。
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、不同控制端需要预先分配控制优先级,否则编写的时候会出现很多问题。
优先级分为普通和特殊,一般错误情况可以跨越权限显示出来。
《EDA技术》课程实验报告学生姓名:所在班级:指导教师:记分及评价:报告满分3分得分一、实验名称实验5:7段LED显示译码器的设计二、任务及要求【基本部分】1、在QuartusII平台上,采用文本输入设计方法,通过编写VHDL语言程序,完成7段LED显示译码器的设计并进行时序仿真。
2、设计完成后生成一个元件,以供更高层次的设计调用。
3、实验箱上进行验证。
【发挥部分】新建一原理图文件,调用一个实验一的24进制计数器元件和2个本次的LED显示译码器元件,组成带LED显示译码器的24进制计数器电路,选择一个不带译码器的模式,在实验箱上进行验证。
三、实验程序library ieee;use ieee.std_logic_1164.all;ENTITY led ISPORT(X:IN BIT_VECTOR(3 DOWNTO 0);Y:OUT BIT_VECTOR(6 DOWNTO 0);sel:out std_logic_vector(7 downto 0));END ENTITY led;ARCHITECTURE ART OF led ISBEGINsel<="11111110";PROCESS(X) isBEGINIF X="0000" THEN Y<="1111110";--0ELSIF X="0001" THEN Y<="0110000";--1ELSIF X="0010" THEN Y<="1101101";--2ELSIF X="0011" THEN Y<="1111001";--3ELSIF X="0100" THEN Y<="0110011";--4ELSIF X="0101" THEN Y<="1011011";--5ELSIF X="0110" THEN Y<="0011111";--6ELSIF X="0111" THEN Y<="1110000";--7ELSIF X="1000" THEN Y<="1111111";--8ELSIF X="1001" THEN Y<="1110011";--9ELSIF X="1010" THEN Y<="1110111";--AELSIF X="1011" THEN Y<="0011111";--bELSIF X="1100" THEN Y<="1001110";--CELSIF X="1101" THEN Y<="0111101";--dELSIF X="1110" THEN Y<="1001111";--EELSIF X="1111" THEN Y<="1000111";--FELSE NULL;END IF;END PROCESS;END ARCHITECTURE ART;四、仿真及结果分析图5-1 7段LED显示译码器仿真图当A="0000"时LED7S="0111111";即显示十进制0当A="0001"时LED7S="0000110";即显示十进制1当A="0010"时LED7S="1011011";即显示十进制2当A="0011"时LED7S="1001111";即显示十进制3当A="0100"时LED7S="1101100";即显示十进制4当A="0101"时LED7S="1101101";即显示十进制5当A="0110"时LED7S="1111101";即显示十进制6当A="0111"时LED7S="0001111";即显示十进制7当A="1000"时LED7S="1111111";即显示十进制8当A="1001"时LED7S="1101111";即显示十进制9当A=其他时LED7S="0000000"不显示。
实验三数码管七段译码电路一、实验目的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:选择配置器件的工作方式。
实验四带七段数码管的100计数器一、预习内容1、结合附录一了解EDA实验箱的原理;2、七段LED显示原理;3、怎样用VHDL实现8421BCD码在七段LED数码管上显示。
二、实验目的1.了解VHDL进行EDA设计的基本步骤;2.学会用QuartusⅡ进行时序仿真;3.了解EDA实验箱的基本功能;三、实验器材PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干四、实验要求1.设计具有复位端、使能端,计数为100的计数器,并在实验箱上输出显示。
2.设计七段LED译码显示电路;3.QuartusⅡ进行时序仿真;4.下载该程序验证程序是否正确;五、实验原理与内容1、8421BCD编码在数字系统中常用四位二进制代码来表示一位十进制数字0、1、2、﹒﹒﹒、9,称之为二-十进制代码,即BCD码。
将十进制数编成BCD码的电路,称为称二-十进制(BCD)编码器。
二-十进制编码的方案很多,若BCD编码器采用8421编码方案,称为8421BCD编码器。
2、七段译码器译码器逻辑图中A,B,C,D 接拨号开关,a,b,c,d,e,f,g 接数码显示接口,管脚映射均为I/O 口,映射后,通过拨号开关改变输入二进制码,则输出数码管上显示相应的数值。
译码器逻辑图3、译码器真值表数值输入输出A B C D a b c d e f g0 0 0 0 0 1 1 1 1 1 1 01 0 0 0 1 0 1 1 0 0 0 02 0 0 1 0 1 1 0 1 1 0 13 0 0 1 1 1 1 1 1 0 0 14 0 1 0 0 0 1 1 0 0 1 15 0 1 0 1 1 0 1 1 0 1 16 0 1 1 0 1 0 1 1 1 1 17 0 1 1 1 1 1 1 0 0 0 08 1 0 0 0 1 1 1 1 1 1 19 1 0 0 1 1 1 1 1 0 1 1A 1 0 1 0 1 1 1 0 1 1 1B 1 0 1 1 0 0 1 1 1 1 1C 1 1 0 0 1 0 0 1 1 1 0D 1 1 0 1 0 1 1 1 1 0 1E 1 1 1 0 1 0 0 1 1 1 1F 1 1 1 1 1 0 0 0 1 1 1六、实验步骤1、写出七段译码器和具有复位端、使能端,计数为100的计数器的VHDL源程序,编译通过;2、进行波形仿真;3、选定器件、映射管脚、编译、下载。
目录:实验一:序列检测器设计 (1)1.1 实验原理 (1)1.2 实现方案与仿真 (1)1.2.1 预置数确定 (1)1.2.2 预置数待定 (2)1.3 引脚锁定与下载 (3)1.3.1 预置数确定 (3)1.3.2 预置数待定 (3)1.4 实验结论与总结 (4)1.5 附录 (4)实验二七段数码显示译码器设计 (6)2.1 实验原理 (6)2.2 实现方案与仿真 (6)2.2.1 七段显示译码的方案与仿真 (6)2.2.2 4位二进制加法计数器的方案与仿真 (7)2.2.3 顶层文件的方案与仿真 (7)2.3 引脚锁定与下载 (8)2.3.1 七段显示译码的硬件测试 (8)2.3.2 4位二进制加法计数器的硬件测试 (8)2.3.3 顶层文件的硬件测试 (8)2.4 实验结论与总结 (9)2.5 附录 (9)实验三数控分频器的设计 (10)3.1 实验原理 (10)3.2 实现方案与仿真 (10)3.2.1 数控分频器的实现方案与仿真 (10)3.2.2数控分频器的RTl电路图 (11)3.3 引脚锁定与下载 (11)3.4 实验结论与总结 (12)实验四用原理图输入法设计8位全加器 (13)4.1 实验原理 (13)4.1.1 一位全加器的原理 (13)4.1.2 八位全加器的原理 (13)4.2 实现方案与仿真 (13)4.2.1 一位全加器的实现方案与仿真 (13)4.2.2 八位全加器的实现方案与仿真 (15)4.3 引脚锁定与下载 (16)4.3.1 一位全加器的引脚锁定与下载 (16)4.3.2 八位全加器的引脚锁定与下载 (16)4.4 实验结论与总结 (17)实验一:序列检测器设计摘要:本实验的主要任务是通过状态机来实现序列检测器的设计,其中,本实验采用了单进程Moore状态机和多进程Moore状态机两种方案来实现序列检测器,进而通过软件仿真和硬件测试来检验所设计的序列检测器。
EDA实验报告
一、实验目的
设计一个7段数码显示译码器设计。
二、实验仪器
计算机一台,U盘一个,QuartusⅡ软件
三、实验步骤
1. 新建一个文件夹YHY,打开QuartusⅡ软件,选择菜单File→New,在弹出的New 对话框中选择Device Design File页的原理图文件编辑器输入项VHDL File(如图一),按OK按钮打开VHDL编辑器窗口。
2. 在VHDL编辑器窗口输入7段数码显示译码器的VHDL描述:
IBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY DECL7S IS
PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) );
END;
ARCHITECTURE ONE OF DECL7S IS
BEGIN
PROCESS(A)
BEGIN
CASE A IS
WHEN "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. 编译并运行,观察其波形输出(如下图)。
4. 打开Fil e→Create/Update→Create Symbol files for current file(如下图)。
5.打开FILE——NEW,新建一个BLOCK DIAGRAM/SCHEMA TIC FILE文件,单击SYMBOL TOOL 按钮,在弹出的对话框中选中PROJECT下的ADDER8,即调出其原理图(如下图所示)。
四、实验分析与总结
1. 根据7段数码显示译码器的波形图知,实验结果正确,设计成功。
2. 通过此次实验,进一步熟悉了7段数码显示译码器的VHDL描述方法。
对VHDL的使
用有了更深入的了解。