十六进制7段数码显示译码器设计实验报告剖析
实验报告模板:实验二7段数码显示译码器
班级:178 学号:201017814 姓名:崔青青实验二7段数码显示译码器【实验目的】1.设计七段显示译码器,并在实验板上验证2.学习V erilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具的使用方法;【实验内容】1.实现BCD/七段显示译码器的“V erilog ”语言设计。
说明:7段显示译码器的输入为:IN0…IN3共5根,7段译码器的逻辑表同学自行设计,要求实现功能为:输入“0…15 ”(二进制),输出“0…9…F ”(显示数码),输出结果应在数码管(共阴)上显示出来。
2.使用工具为译码器建立一个元件符号3.设计仿真文件,进行验证。
4.编程下载并在实验箱上进行验证。
【实验原理】七段数码管显示原理【程序源代码】(加注释)module led7(IN,led7);input [3:0] IN;output [6:0] led7;reg [6:0] led7;always @(IN)begincase(IN)4'b0000:led7=7'b0111111;4'b0001:led7=7'b0000110;4'b0010:led7=7'b0011011;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;endcaseendendmodule班级:178 学号:201017814 姓名:崔青青【仿真和测试结果】班级:178 学号:201017814 姓名:崔青青班级:178 学号:201017814 姓名:崔青青【实验心得和体会】通过本次实验我熟悉了数码管的工作原理,熟悉了EDA的整个工作流程,也初步熟悉了硬件描述语言verilog HDL。
七段数码显示译码器设计
七段数码显示译码器设计本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March七段数码显示译码器设计一、实验目的:学习7段数码显示译码器设计,学习VHDL的多层次设计方法。
二、实验原理:七段数码管由8个(a,b,c,d,e,f,g,dp)按照一定位置排列的发光二极管构成,通常采取共阴极或者共阳极的设计,将8个二极管的同一极接在一起,通过分别控制另外的8个电极的电平,使二极管导通(发光)或截止(不发光)。
七段数码显示译码器的功能就是根据需要显示的字符,输出能够控制七段数码管显示出该字符的编码。
三、实验内容:1)用VHDL设计7段数码管显示译码电路,并在VHDL描述的测试平台下对译码器进行功能仿真,给出仿真的波形。
---------------------------------------------------------------------程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SMG ISPORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END;ARCHITECTURE ONE OF SMG IS BEGINPROCESS(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;仿真波形:2)数码管显示电路设计利用以上设计的译码器模块,设计一个8位的显示电路。
十六进制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;实验结果:。
西南交大 7段数码管显示译码器实验报告
实验四7段LED数码管显示译码器设计西南交大计算机组成原理实验(代码)实验要求:本实验要求实现16位的二进制数的7段LED数码管显示译码电路,采用动态扫描显示,可以实现计数值或固定值。
实验原理:动态扫描:由3-8译码器的输出来决定哪个数码管亮,sel为3-8译码器的输入,sel=0—7从左到右依次点亮8个数码管,要实现动态扫描,就必须让sel的值随着CLK的每一次上升沿触发而变化。
16位的输入每四位一组作为4个数码管的显示数据,当然还需要一个中间变量实现输入数的转码。
实验代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY tt3 ISPORT( CLK:IN STD_LOGIC;INN:IN STD_LOGIC_VECTOR(15 DOWNTO 0);SEL:buffer STD_LOGIC_VECTOR(2 DOWNTO 0);LED7:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END;ARCHITECTURE ONE OF tt3 ISSIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THENIF SEL>="011" THEN SEL<="000";ELSE SEL<=SEL+1;END IF;CASE SEL ISWHEN "000"=> DATA<=INN(3 downto 0);WHEN "001"=> DATA<=INN(7 DOWNTO 4);WHEN "010"=> DATA<=INN(11 DOWNTO 8);WHEN "011"=> DA TA<=INN(15 DOWNTO 12);WHEN OTHERS =>NULL;END CASE;END IF;END PROCESS;PROCESS(DATA)BEGINCASE DATA ISWHEN "0000"=> LED7<="00111111";--0WHEN "0001"=> LED7<="00000110";--1WHEN "0010"=> LED7<="01011011";--2WHEN "0011"=> LED7<="01001111";--3WHEN "0100"=> LED7<="01100110";--4WHEN "0101"=> LED7<="01101101";--5WHEN "0110"=> LED7<="01111101";--6WHEN "0111"=> LED7<="00000111";--7WHEN "1000"=> LED7<="01111111";--8WHEN "1001"=> LED7<="01101111";--9WHEN "1010"=> LED7<="01110111";--10WHEN "1011"=> LED7<="01111100";--11WHEN "1100"=> LED7<="00111001";--12WHEN "1101"=> LED7<="01011110";--13WHEN "1110"=> LED7<="01111001";--14WHEN "1111"=> LED7<="01110001";--15WHEN OTHERS =>NULL;END CASE;END PROCESS;END;波形图设计:引脚锁定:Clk----A14 SEL[0]-----PIN_C22 SEL[1]----PIN_D22 SEL[2]----PIN_G9 SEG[0]---PIN_G16—a ~~~~SEG[7]---PIN_M21—dp DATA[0]—DATA[3]锁定于k1,k2,k3,k4 DATA[4]-DATA[7]锁定于k7,k8,k9,k10DATA[11]-DATA[8] 锁定于s1,s2,s3,s4DATA[15]-DATA[12] 锁定于s7,s8,s9,s10。
十六进制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段数码显示译码器电路。
当输入端口接收到一个十六进制信号时,通过电路的处理和转换,将其转化为了相应的七段信号,用于控制数码管的每个段的亮灭情况。
通过实验观察,我们发现电路的输出结果与预期一致,且工作稳定。
五、实验总结通过这个实验,我们对于数字电路的工作原理和数码管的控制方式有了更深的了解。
十六进制7段数码显示译码器设计
实验目的:学习7段数码显示译码器的硬件设计。
实验原理:7段数码是纯组合电路。
通常的小规模专用,如74或4000系列的器件只能做十进制码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的。
为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在中来实现。
首先要设计一段程序。
该程序可按照例3-2的语句表述方法,再根据表4-2的真值表写出程序。
设输入的4位码为A[3:0],输出控制7段共阴数码管的7位数据为7S[6:0]。
输出信号7S的7位分别接图4-47的共阴数码管的7个段,高位在左,低位在右。
例如当7S输出为“1101101”时,数码管的7个段g , f , e , d , c , b , a 分别接在1,1,0,1,1,0,1;接有高电平的段发亮,于是数码管显示“5”。
这里没有考虑小数点的发光管,如果要考虑,需要增加段h,然后将7S改为8位输出。
实验过程:1:新建工程2:编程3:保存(与模块名一致) 4:新建波形图5:保存6:导入波形7:设置输入波形8:设置仿真9:生成网表10:仿真程序代码:(7S);[3:0]A;[6:0]7S;[6:0]7S;@ (A) :(A)4'b0000: 7S<=7'b0111111; 4'b0001: 7S<=7'b0000110; 4'b0010: 7S<=7'b1011011; 4'b0011: 7S<=7'b1001111; 4'b0100: 7S<=7'b1100110; 4'b0101: 7S<=7'b1101101; 4'b0110: 7S<=7'b1111101; 4'b0111: 7S<=7'b0000111; 4'b1000: 7S<=7'b1111111; 4'b1001: 7S<=7'b1101111; 4'b1010: 7S<=7'b1110111; 4'b1011: 7S<=7'b1111100; 4'b1100: 7S<=7'b0111001; 4'b1101: 7S<=7'b1011110; 4'b1110: 7S<=7'b1111001; 4'b1111: 7S<=7'b1110001;: 7S<=7'b0111111;程序代码正确波形仿真:。
十六进制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也有了深入了解。
十六进制七段数码显示管设计
十六进制七段数码显示管设计数码显示管是一种常见的显示设备,用于将数字或字符显示在屏幕上。
七段数码显示管由七个线段组成,可以显示0-9和一些字母。
每个线段可以点亮或熄灭来形成相应的数字或字符。
设计一个十六进制七段数码显示管是一个有趣的挑战。
在这个设计中,我们将使用十六进制数字0-F来表示0-15,而不仅仅是0-9、接下来,我将详细介绍如何设计一个功能齐全的十六进制七段数码显示管。
首先,让我们来看看七段数码显示管的结构。
通常,它由七个线段组成,分别称为a,b,c,d,e,f和g。
根据线段的状态,可以显示不同的数字或字符。
每个线段都与一个输入引脚相连,用于控制它的状态。
接下来,我们需要确定每个数字或字符的线段状态。
对于十六进制数字0-F,我们可以创建一个真值表来描述它们的线段状态。
例如,0的线段状态可以是abcdef,1的线段状态可以是b和c,以此类推。
根据这些线段状态,我们可以确定每个数字或字符的输入引脚状态。
然后,我们需要设计控制电路来控制每个线段的状态。
通常,我们使用二进制编码来表示数字或字符。
在这种情况下,我们需要四个输入引脚来表示十六进制数字0-F。
根据输入引脚的状态,我们可以确定每个线段的状态。
最后,我们需要设计一个时钟电路来控制七段数码显示管的刷新速率。
通过定期改变线段的状态,可以达到显示数字或字符的效果。
我们可以根据应用的需求选择适当的刷新速率。
总结起来1.确定七段数码显示管的结构,并了解每个线段的定义。
2.创建一个真值表来描述每个数字或字符的线段状态。
3.设计控制电路,根据输入引脚的状态确定每个线段的状态。
4.使用逻辑门来实现控制电路,并将输入引脚的状态转换为相应的线段状态。
5.设计时钟电路来控制七段数码显示管的刷新速率。
通过完成以上步骤,我们可以设计一个功能齐全且可靠的十六进制七段数码显示管。
这个设计可以广泛应用于各种数字显示应用,例如时钟,计数器和仪表等。
7段显示译码器设计实验报告
数字钟实验报告学生专业:电子信息工程学生班级:151143C学生学号:*********学生姓名:***7段显示译码器设计151143324 ***一、实验目的:学习七段数码显示译码器设计,多层次设计方法和总线数据输入方式的仿真。
二、实验原理:7段BCD码译码器的设计,输出信号Segmentout的7位分别接数码管的7个段,高位在左,低位在右。
例如当Segmentout输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1,接有高电平的段发亮,于是数码管显示数字“5”。
如果是共阳极的数码显示器,则8段输出应取反,段显码为“10010010”,使用时要注意数码管的接法。
实际产品设计中,一般会用到多个数码管,显示几位数字。
4位数的7段数码管,4位数字共用同样的段输出。
若只想让第一个位显示,其他的位不显示,那么可以只给第一位数字供电,其他的断电,用4LED来控制的,4LED输出0001即可,若只让第二位显示则4LED输出0010即可。
这里的4LED选择控制要显示的位,称为位选。
三、实验内容:module BCD_Segment7(BCDin,Segmentout,Select);input[3:0]BCDin;output Select;output [6:0]Segmentout;reg[6:0]Segmentout;always@(BCDin)begincase(BCDin)4'h0:Segmentout=7'b1000000;4'h1:Segmentout=7'b1111001;4'h2:Segmentout=7'b0100100;4'h3:Segmentout=7'b0110000;4'h4:Segmentout=7'b0011001;4'h5:Segmentout=7'b0010010;4'h6:Segmentout=7'b0000010;4'h7:Segmentout=7'b1111000;4'h8:Segmentout=7'b0000000;4'h9:Segmentout=7'b0010000;4'hA:Segmentout=7'b0001000;4'hB:Segmentout=7'b0000011;4'hC:Segmentout=7'b1000110;4'hD:Segmentout=7'b0100001;4'hE:Segmentout=7'b0000110;4'hF:Segmentout=7'b0001110;default:Segmentout=7'bxxxxxxx;endcaseendassign Select=1'b0;endmodule四、时序仿真波形:引脚设定时序仿真波形参考设置:1、设置仿真时间。
FPGA与数字系统设计-实验六7段数码显示译码器设计
7段数码显示译码器设计1、实验目的熟悉ISE系列软件的设计流程和基本工具使用,学习7段数码显示译码器设计,学习VHDL的CASE语句应用。
2、实验内容7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中实现。
本实验中,7段译码器的数码管采用共阴数码管,而且不考虑小数点的发光管。
其输出信号LED7S的7位分别接数码管的7个段,高电平有效。
例如,当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。
3、实验器材Spartan 3E开发板。
4、实验说明实验中所需要的源文件在本报告附录中。
5、实验步骤步骤1:创建ISE工程(1)启动桌面上的ISE9.1图标,在Project Navigator中选择File→New Project。
(2)在弹出的对话框(见图1)中,设置工程名为ymq7s,工程存放路径为E:\work\,顶层模块类型选择HDL,并单击Next按钮。
图1 ISE工程属性对话框(3)出现图2所示对话框,目标器件选择spartan3E,具体设计如下图。
图2 ISE工程属性对话框(4)一直点击Next,直到出现图3(即是刚才所设定的),最后点击Finish。
图3 工程设计总表出现图4,这就是所建立的工程,现在我们需要在里面完成我们的设计。
图4 ISE工程属性对话框步骤2:创建新的VHDL设计文件(1)在ISE用户界面中,选择Project→New Source。
(2)在弹出的对话框(见图5)中,选择VHDL Module作为源程序类型,设置文件名为ymq7s,并单击“下一步”按钮。
图5 VHDL的New Source Wizard(3)点击Next,直到出现图6,直到Finish。
七段数码显示译码器设计
实验一七段数码显示译码器设计一、实验目的: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语言有了一定的理解与认识,但在很多地方没有很好的熟练度,在以后的学习中还要好好的熟悉之。
(完整word版)十六进制7段数码显示译码器设计实验报告
实验名称:十六进制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、硬件测试。
实验报告模板:实验二7段数码显示译码器
班级:学号:姓名:实验二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段数码显示译码器设计
十六进制7段数码显示译码器设计一、实验目的1.学习7段数码显示译码器的Verilog的设计,并掌握其原理方法2.学习使用QuartusⅡ软件3.学习设计仿真软件的正确使用方法二、实验原理7段显示译码器是纯组合电路。
通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码器,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用Verilog译码程序在FPGA/CPLD 来实现。
所以首先要设计一段程序(参考以下的真值表1)。
设输入的4位码为A[3:0],输出控制7段共阴数码管的7位数码管的7位数据为LED7S的7位分别接图的共阴数码管的7个段,高位在左,低位在右。
例如当LED7S输出为“1101101”时,数码管的7个段g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。
这里没有考虑或者表示小数点的发光管,如果要考虑,需要增加段h,然后将LED7S改为8位输出。
表1 7段译码器真值表输入码输出码代表数据0000 0111111 00001 0000110 10010 1011011 20011 1001111 30100 1100110 40101 1101101 50110 1111101 60111 0000111 71000 1111111 81001 1101111 91010 1110111 A1011 1111100 B1100 0111001 C1101 1011110 D1110 1111001 E1111 1110001 F三、实验任务将设计好的Verilog译码器程序在QuartusⅡ上进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
四、实验步骤1.新建一个文件夹DECL_DEMO,然后选择File,点击new,再打开Verilog HDL File文件类型。
EDA实验报告31_十六进制7段数码管显示译码设计
实验结果及分析
1.十六进制计数器计数到“1111”时cout产生进位信号
2.每一次计数对应数码管不同的显示译码输出,由顶层文件nt_7seg_top.vhdl的时序仿真波形图可见,当数码管显示到“71”即对应的十六进制“F”时,计数值清零(rst0 <= ‘0’),数码管重新从“3F”即‘1’递增至‘F’循环显示。
2.输出信号LED_7seg的7位分别接数码管的7个段a-b-c-d-e-f-g(-h),高位在左,低位在右(如果有小数点,增加h段)。由于使用的是共阴极数码管,各个段接高电平时发光,低电平不亮。
实验内容
实验一:十六进制7段数码显示译码设计
1.用VHDL文本输入方法,完成十六进制计数器和7段数码显示译码电路设计
EDA技术与应用实验报告
姓名
学号
专业年级
电子信息工程
实验题目
十六进制7段数码显示译码设计
实验目的
1.学习7段数码显示译码设计和硬件验证
2.通过VHDL语言设计7段数码显示译码电路,进一步掌握层次化设计方法
实验原理
1.数字系统中的数据处理和运算都是二进制的,输出表达为十六进制数。为了满足十六进制数的译码显示,可利用译码程序在FPGA/CPLD中来实现
3.将clk0接到78脚的时钟输出端,可以获得0-1MHz的时钟调节范围,这解决了数码管循环显示过快,看不清译码输出的问题
附录
(原理图或VHDL代码)
实验过程中所遇到的问题及相应的解决方法
实验47段数码显示译码器设计
实验4 7段数码显示译码器设计(1) 实验目的:学习7段数码显示译码器设计;学习VHDL 的CASE 语句应用及多层次设计方法。
(2) 实验原理:7段数码是纯组合电路,通常的小规模专用IC ,如74或4000系列的器件只能作十进制BCD 码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD 中来实现。
例3-4作为7段译码器,输出信号LED7S 的7位分别接如图5-18数码管的7个段,高位在左,低位在右。
例如当LED7S 输出为“1101101”时,数码管的7个段:g 、f 、e 、d 、c 、b 、a 分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。
注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h ,例3-4中的LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)应改为…(7 DOWNTO 0) 。
(3) 实验内容1:在QuartusII 上进行编程、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
提示:用输入总线的方式给出输入信号仿真数据,仿真波形示例图如图1所示。
图1 7段译码器仿真波形(4) 实验内容2:引脚锁定及硬件测试。
建议选GW48系统的实验电路模式6(参考图2),用数码8显示译码输出(PIO46-PIO40),键8、键7、键6和键5四位控制输入,硬件验证译码器的工作性能。
CLOCK9CLOCK5CLOCK2CLOCK0PIO8D11D12PIO9D13PIO10D14PIO11D15PIO12PIO13D16D6D5D4D3D2D1D7D8)(12345678实验电路结构图NO.6目标芯片FPGA/CPLD 扬声器S P E A K E RPIO3-PIO0PIO7-PIO4HEX HEXPIO16PIO13-PIO8PIO23PIO22PIO21PIO20PIO19PIO18PIO17直接与7段显示器相接PIO46-PIO40PIO38-PIO32PIO30-PIO24PIO22-PIO16PIO46-PIO40 接 g, f, e, d, c, b, aPIO38-PIO32 接 g, f, e, d, c, b, aPIO30-PIO24 接 g, f, e, d, c, b, a 七段PIO22-PIO16 接 g,f,e,d,c,b,a键1键2键3键4键5键6键7键8图2 实验电路结构图NO.6(5) 实验内容3:用第3章介绍的例化语句,按图4的方式连接成顶层设计电路(用VHDL 表述),图中的CNT4B 是一个4位二进制加法计数器;模块DECL7S 即为实体元件,重复以上实验过程。
实验报告模板:实验二7段数码显示译码器
班级:2011145 学号:201114507 姓名:许飞祥实验二7段数码显示译码器【实验目的】1.设计七段显示译码器,并在实验板上验证2.学习V erilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具的使用方法;【实验内容】1.实现BCD/七段显示译码器的“Verilog ”语言设计。
说明:7段显示译码器的输入为:IN0…IN3共5根,7段译码器的逻辑表同学自行设计,要求实现功能为:输入“0…15 ”(二进制),输出“0…9…F ”(显示数码),输出结果应在数码管(共阴)上显示出来。
2.使用工具为译码器建立一个元件符号3.设计仿真文件,进行验证。
4.编程下载并在实验箱上进行验证。
【实验原理】1:首先新建文件:并且全程编译成功。
:2:创建波形文件,然后进行波形仿真,以下是仿真结果。
班级:2011145 学号:201114507 姓名:许飞祥3:管脚分配班级:2011145 学号:201114507 姓名:许飞祥4:编译文件下载班级:2011145 学号:201114507 姓名:许飞祥【程序源代码】(加注释)module Led7s(DIN,Led7);input[3:0] DIN;output[6:0] Led7;reg[6:0] Led7;always@(DIN)case(DIN)4'b0000:Led7=7'b0111111;//04'b0001:Led7=7'b0000110;//14'b0010:Led7=7'b1011011;//24'b0011:Led7=7'b1001111;//3班级:2011145 学号:201114507 姓名:许飞祥4'b0100:Led7=7'b1100110;//44'b0101:Led7=7'b1101101;//54'b0110:Led7=7'b1111101;//64'b0111:Led7=7'b0000111;//74'b1000:Led7=7'b1111111;//84'b1001:Led7=7'b1101111;//94'b1010:Led7=7'b1110111;//A4'b1011:Led7=7'b1111100;//b4'b1100:Led7=7'b0111001;//c4'b1101:Led7=7'b1011110;//d4'b1110:Led7=7'b1111001;//E4'b1111:Led7=7'b1110001;//Fdefault:Led7=7'b0000000;endcaseendmodule【仿真和测试结果】当配置成功后,在EDA6000启动,当点击屏幕上DIN键时,八段数码管会从0到9数字变化,然后字母从A到F变化,在仿真板上也可以看到。
实验五 7段数码显示译码器设计
实验五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四位控制输入,硬件验证译码器的工作性能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:十六进制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:OUT STD_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、硬件测试。
程序不一样,其他步骤相同操作LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4B ISPORT (CLK,RST,ENA:IN STD_LOGIC;OUTY:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC);END CNT4B;ARCHITECTURE behav OF CNT4B ISBEGINPROCESS(CLK,RST,ENA)VARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST='0' THEN Q:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF ENA='1' THENQ:=Q+1;END IF;END IF;IF Q="1111" THEN COUT<='1';ELSE COUT<='0';END IF;OUTY<=Q;END PROCESS;END behav;2、时序仿真波形:3、RTL原理图:实验内容三:1、源代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY adder ISPORT (clock0,rst0,ena0:IN STD_LOGIC;led:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); cout0:OUT STD_LOGIC);END ENTITY adder;ARCHITECTURE ad1 OF adder ISCOMPONENT CNT4BPORT (CLK,RST,ENA:IN STD_LOGIC;OUTY:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END COMPONENT;COMPONENT DECL7SPORT (A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COMPONENT;SIGNAL tmp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINu1:CNT4B PORT MAP(CLK=>clock0, RST=>rst0, ENA=>ena0, OUTY=>tmp, COUT=>cout0);u2:DECL7S PORT MAP(A=>tmp, q=>led);END ARCHITECTURE ad1;2、时序仿真波形:3、RTL原理图:(计数器和译码器连接电路的顶层文件原理图)注意:运用实验三,调用实验一和实验二的RTl原理图得计数器和译码器连接电路的顶层文件原理图在引脚锁定及硬件测试。
建议选GW48系统的实验电路模式6(参考附录图F-6),用数码8显示译码输出(PIO46~PIO40),键8、键7、键6和键5四位控制输入,硬件验证译码器的工作性能。
提示1:目标器件选择MAX7000S系列的EPM7128SLC84-15。
提示2:引脚锁定除了参考第5章第2节内容外,具体引脚编号选定应参考“实验附注资料附注3:万能接插口与结构图信号/与芯片引脚对照表”的“EPM7128S-PL84”栏目。
提示3:选实验电路模式6,参考“实验附注资料附注2:实验电路结构图”的“附图2-8 实验电路结构图NO.6”栏目。
实验心得及个人心得:通过本次实验,对Quartus II有了进一步的学习和认识,对Verilog也有了深入了解。
学会了7段数码显示译码器的Verilog硬件设计,学习了VHDL的CASE语句应用及多层次设计方法。
在设计顶层文件时,最有深刻体会,自己在不知道弄错了多少次和请教过别人多次,在终于知道顶层文件怎样生成的所以我们应该学会认真分析程序,弄清实验原理,做实验时耐心、认真,遇到问题争取自己解决。
认真总结实验,分析波形,完成实验报告。
特别经过一个学期的学习,我并不说我完全懂得EDA技术,我知道在程序方面还有很多要学习的,对于EDA,我都还懂得一些必要的语法和程序。
这门课程锻炼了我读程序的能力和分析语法用法的能力,为我将来学更高级的语言打下了基础,很多语言都是有相通的地方,只是有些用法不太一样而已。
但我学到了运用Quartus II 这个软件,并靠自己慢慢去摸索,慢慢研究。
能多学一些软件就多学一些,毕竟不知道将来的路怎样发展。
虽然老师说EDA这门课程出来后用处不大,但我觉得锻炼了自我学能力和分析问题、解决问题的能力。