您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页vhdl实验报告_16乘16点阵_列选_显示

vhdl实验报告_16乘16点阵_列选_显示

来源:保捱科技网


综 合 实 践 总 结 报 告

综合实践名称: EDA技术与实践 综合实践地点、时间

一. 题目功能分析和设计

实验的要求有如下三点:

1.用16*16点阵的发光二极管显示字符;

2.可显示字符为0~9的数字字符与A~F英文字母的大写; 3.输入为四位二进制矢量;

按照要求可知,LED点阵模块,共由16×16=256个LED发光二极管组成,如何在该点阵模块上显示数字和字母是本实验的关键。

先将要显示的每一幅图像画在一个16×16共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上

“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布

以数字8为例,点阵分布为:

0000000000000000 0000000000000000 0001111111111000 0001111111111000 0001100000011000 0001100000011000 0001100000011000 0001111111111000 0001111111111000 0001100000011000 0001100000011000 0001100000011000 0001111111111000 0001111111111000 0000000000000000 0000000000000000

考虑到实际物理实验平台上点阵发光二极管的原理,以下为16×16点阵LED外观图,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。

所以我采用行列扫描的方法,用四位二进制数做列选信号(总共16列),如选中第一列,则扫描第一列之中哪些行是高电平(1),哪些行是低电平(0);为高电平的则点亮,为低电平的不亮。(列信号都接地)。如此,列选信号由“0000”变到“1111”时,16列扫描完毕,一个字也就出来了,列选信号重新由“0000”开始扫描。注意扫描频率必须要足够快,才能保证显示一个数字或字母时所有灯在肉眼看来是同时在闪烁的。

再者,就是字变换的问题。题目要求可显示字符为0~9的数字字符与A~F英文字母的大写;16个字正好用四位二进制表示,字选信号。每个字选信号对应一个0到9,A到F中的一个字模(像前面列出的8的字模一样)。通常情况下是1s变一个字符,但我在实验时考虑到仿真的问题,将字选信号的变化周期缩小很多,以便仿真。

要注意的是,列选信号变化频率一定是比字选信号大得多的。

二. 总体模块划分

1. 字选模块

输入为一个时钟信号,输出为4位二进制(用xuan 表示)字选信号,用来顺序输出题目要求的16个字。因为设计采用字选模块和列选模块使用同一个输入时钟脉冲,但是字选信号的变化

频率比列选信号要小得多。所以该模块中还应该设置一个计数器,计数器满,则Q加1,即变向下一个字,同时计数器重新置零。

2. 列选模块

输入为一个时钟信号,输出为4位二进制(用sel表示)列选信

号,用来选中列,进行扫描。

3. 显示模块

输入为字选信号和列选信号,输出为16位二进制,用来表示一

列,该列中的1的位置就表示亮灯的位置,0的位置表示不亮。每扫描一列就输出一列,看该列中哪些行是1,哪些行是0。该模块应该包含0~9,A~F这16个字模。

4. 顶层模块

该模块采用图形模式(.gdf),将所有的模块按要求合理连接起来

后,再添加上顶层的输入输出信号。附顶层图:

三. 代码实现

1.顶层模块:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY dianzhen IS

PORT(k1,clk,reg,red,RES:IN STD_LOGIC; SEL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END DIANZHEN;

ARCHITECTURE A OF DIANZHEN IS COMPONENT XUANZI PORT(CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );

END COMPONENT; COMPONENT XUANZ PORT(CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );

END COMPONENT; COMPONENT XUA

PORT(CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );

END COMPONENT; COMPONENT XU

PORT(CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );

END COMPONENT;

COMPONENT XUS

PORT(red,REG:IN STD_LOGIC;

ZI,si,MI,NI:in STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );

END COMPONENT; COMPONENT LIEXUAN PORT(CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );

END COMPONENT; COMPONENT XIANSHI PORT(

res:IN STD_LOGIC;

XUAN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEL:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0) ); END COMPONENT;

SIGNAL ZI_DAOUT,SI_DAOUT,MI_DAOUT,NI_DAOUT,XUAN_DAOUT,SEL_DAOUT:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

SEL<=SEL_DAOUT;

U1:XUANZI PORT MAP(CLK=>CLK, Q=>ZI_DAOUT); U2:XUANZ PORT MAP(CLK=>CLK, Q=>SI_DAOUT); U3:XUA PORT MAP(CLK=>CLK, Q=>MI_DAOUT); U4:XU PORT MAP(CLK=>CLK,

Q=>NI_DAOUT); U5:XUS PORT MAP(REG=>REG, RED=>RED,

ZI=>ZI_DAOUT, SI=>SI_DAOUT, MI=>MI_DAOUT, NI=>NI_DAOUT, Q=>XUAN_DAOUT); U6:LIEXUAN PORT MAP(CLK=>CLK, Q=>SEL_DAOUT );

U7:XIANSHI PORT MAP(RES=>RES, SEL=>SEL_DAOUT, XUAN=>XUAN_DAOUT, Q=>Q); END A;

2.列选模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY LIEXUAN IS PORT(CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );

END ENTITY LIEXUAN;

ARCHITECTURE LX OF LIEXUAN IS BEGIN PROCESS(CLK)

VARIABLE LI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

IF CLK'EVENT AND CLK='1' THEN IF LI=\"1111\" THEN LI:=\"0000\";

ELSE LI:=LI+1; END IF; END IF; Q<=LI; END PROCESS;

END ARCHITECTURE LX;

3.显示模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL; ENTITY XIANSHI IS PORT(

res:IN STD_LOGIC;

XUAN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEL:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0) );

END ENTITY XIANSHI;

ARCHITECTURE XSDZ OF XIANSHI IS BEGIN

PROCESS(XUAN,SEL,res) BEGIN CASE RES IS WHEN '1'=> CASE XUAN IS WHEN \"0000\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\"; 点亮第一列 when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\";

when \"0100\"=>Q<=\"0000000000000000\"; when \"0101\"=>Q<=\"0000000000000000\"; when \"0110\"=>Q<=\"0000000000000000\"; when \"0111\"=>Q<=\"0000000000000000\"; when \"1000\"=>Q<=\"0000000000000000\"; when \"1001\"=>Q<=\"0000000000000000\"; when \"1010\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0001\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";---点亮前二列 when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0000000000000000\"; when \"0101\"=>Q<=\"0000000000000000\"; when \"0110\"=>Q<=\"0000000000000000\"; when \"0111\"=>Q<=\"0000000000000000\"; when \"1000\"=>Q<=\"0000000000000000\"; when \"1001\"=>Q<=\"0000000000000000\"; when \"1010\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\";

when others=>null; END CASE; WHEN \"0010\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";---点亮前三列 when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0000000000000000\"; when \"0101\"=>Q<=\"0000000000000000\"; when \"0110\"=>Q<=\"0000000000000000\"; when \"0111\"=>Q<=\"0000000000000000\"; when \"1000\"=>Q<=\"0000000000000000\"; when \"1001\"=>Q<=\"0000000000000000\"; when \"1010\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0011\"=> CASE SEL IS

when\"0000\"=>Q<=\"1111111111111111\"; when\"0001\"=>Q<=\"1111111111111111\"; when\"0010\"=>Q<=\"1111111111111111\"; when\"0011\"=>Q<=\"1111111111111111\"; when\"0100\"=>Q<=\"0000000000000000\"; when\"0101\"=>Q<=\"0000000000000000\"; when\"0110\"=>Q<=\"0000000000000000\"; when\"0111\"=>Q<=\"0000000000000000\";

点亮前四列

when\"1000\"=>Q<=\"0000000000000000\"; when\"1001\"=>Q<=\"0000000000000000\"; when\"1010\"=>Q<=\"0000000000000000\"; when\"1011\"=>Q<=\"0000000000000000\"; when\"1100\"=>Q<=\"0000000000000000\"; when\"1101\"=>Q<=\"0000000000000000\"; when\"1110\"=>Q<=\"0000000000000000\"; when\"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0100\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";--点亮前五列 when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\"; when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"0000000000000000\"; when \"0110\"=>Q<=\"0000000000000000\"; when \"0111\"=>Q<=\"0000000000000000\"; when \"1000\"=>Q<=\"0000000000000000\"; when \"1001\"=>Q<=\"0000000000000000\"; when \"1010\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0101\"=> CASE SEL IS

when\"0000\"=>Q<=\"1111111111111111\"; 6 when\"0001\"=>Q<=\"1111111111111111\"; when\"0010\"=>Q<=\"1111111111111111\"; when\"0011\"=>Q<=\"1111111111111111\"; when\"0100\"=>Q<=\"1111111111111111\"; when\"0101\"=>Q<=\"1111111111111111\"; when\"0110\"=>Q<=\"0000000000000000\"; when\"0111\"=>Q<=\"0000000000000000\"; when\"1000\"=>Q<=\"0000000000000000\"; when\"1001\"=>Q<=\"0000000000000000\"; when\"1010\"=>Q<=\"0000000000000000\"; when\"1011\"=>Q<=\"0000000000000000\"; when\"1100\"=>Q<=\"0000000000000000\"; when\"1101\"=>Q<=\"0000000000000000\"; when\"1110\"=>Q<=\"0000000000000000\"; when\"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0110\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\"; 7 when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\"; when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"1111111111111111\"; when \"0110\"=>Q<=\"1111111111111111\"; when \"0111\"=>Q<=\"0000000000000000\"; when \"1000\"=>Q<=\"0000000000000000\"; when \"1001\"=>Q<=\"0000000000000000\"; when \"1010\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\";

when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0111\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";---8” when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\"; when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"1111111111111111\"; when \"0110\"=>Q<=\"1111111111111111\"; when \"0111\"=>Q<=\"1111111111111111\"; when \"1000\"=>Q<=\"0000000000000000\"; when \"1001\"=>Q<=\"0000000000000000\"; when \"1010\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1000\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";--”9\" when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\";

when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"1111111111111111\"; when \"0110\"=>Q<=\"1111111111111111\"; when \"0111\"=>Q<=\"1111111111111111\"; when \"1000\"=>Q<=\"1111111111111111\"; when \"1001\"=>Q<=\"0000000000000000\"; when \"1010\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1001\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";--“10” when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\"; when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"1111111111111111\"; when \"0110\"=>Q<=\"1111111111111111\"; when \"0111\"=>Q<=\"1111111111111111\"; when \"1000\"=>Q<=\"1111111111111111\"; when \"1001\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null;

END CASE; WHEN \"1010\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";---“11” when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\"; when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"1111111111111111\"; when \"0110\"=>Q<=\"1111111111111111\"; when \"0111\"=>Q<=\"1111111111111111\"; when \"1000\"=>Q<=\"1111111111111111\"; when \"1001\"=>Q<=\"1111111111111111\"; when \"1010\"=>Q<=\"1111111111111111\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1011\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";--\"12\" when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\"; when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"1111111111111111\"; when \"0110\"=>Q<=\"1111111111111111\"; when \"0111\"=>Q<=\"1111111111111111\"; when \"1000\"=>Q<=\"1111111111111111\";

when \"1001\"=>Q<=\"1111111111111111\"; when \"1010\"=>Q<=\"1111111111111111\"; when \"1011\"=>Q<=\"1111111111111111\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1100\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";--”13\" when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\"; when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"1111111111111111\"; when \"0110\"=>Q<=\"1111111111111111\"; when \"0111\"=>Q<=\"1111111111111111\"; when \"1000\"=>Q<=\"1111111111111111\"; when \"1001\"=>Q<=\"1111111111111111\"; when \"1010\"=>Q<=\"1111111111111111\"; when \"1011\"=>Q<=\"1111111111111111\"; when \"1100\"=>Q<=\"1111111111111111\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1101\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";--\"14”

when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\"; when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"1111111111111111\"; when \"0110\"=>Q<=\"1111111111111111\"; when \"0111\"=>Q<=\"1111111111111111\"; when \"1000\"=>Q<=\"1111111111111111\"; when \"1001\"=>Q<=\"1111111111111111\"; when \"1010\"=>Q<=\"1111111111111111\"; when \"1011\"=>Q<=\"1111111111111111\"; when \"1100\"=>Q<=\"1111111111111111\"; when \"1101\"=>Q<=\"1111111111111111\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1110\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";--“15” when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\"; when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"1111111111111111\"; when \"0110\"=>Q<=\"1111111111111111\"; when \"0111\"=>Q<=\"1111111111111111\"; when \"1000\"=>Q<=\"1111111111111111\"; when \"1001\"=>Q<=\"1111111111111111\"; when \"1010\"=>Q<=\"1111111111111111\"; when \"1011\"=>Q<=\"1111111111111111\"; when \"1100\"=>Q<=\"1111111111111111\";

when \"1101\"=>Q<=\"1111111111111111\"; when \"1110\"=>Q<=\"1111111111111111\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1111\"=> CASE SEL IS

when \"0000\"=>Q<=\"1111111111111111\";---“16” when \"0001\"=>Q<=\"1111111111111111\"; when \"0010\"=>Q<=\"1111111111111111\"; when \"0011\"=>Q<=\"1111111111111111\"; when \"0100\"=>Q<=\"1111111111111111\"; when \"0101\"=>Q<=\"1111111111111111\"; when \"0110\"=>Q<=\"1111111111111111\"; when \"0111\"=>Q<=\"1111111111111111\"; when \"1000\"=>Q<=\"1111111111111111\"; when \"1001\"=>Q<=\"1111111111111111\"; when \"1010\"=>Q<=\"1111111111111111\"; when \"1011\"=>Q<=\"1111111111111111\"; when \"1100\"=>Q<=\"1111111111111111\"; when \"1101\"=>Q<=\"1111111111111111\"; when \"1110\"=>Q<=\"1111111111111111\"; when \"1111\"=>Q<=\"1111111111111111\"; when others=>null; END CASE;

WHEN OTHERS=>NULL; END CASE;

WHEN '0'=> k1 CASE XUAN IS 选字 WHEN \"0000\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";----显示“0” when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0001111111111000\"; when \"0101\"=>Q<=\"0010000000000100\"; when \"0110\"=>Q<=\"0100000000000010\"; when \"0111\"=>Q<=\"0100000000000010\"; when \"1000\"=>Q<=\"0100000000000010\"; when \"1001\"=>Q<=\"0010000000000100\"; when \"1010\"=>Q<=\"0001111111111000\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0001\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";---显示\"1\" when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0000000000000000\"; when \"0101\"=>Q<=\"0000000000000000\"; when \"0110\"=>Q<=\"0110000000000000\"; when \"0111\"=>Q<=\"0111111111111110\"; when \"1000\"=>Q<=\"0111111111111110\"; when \"1001\"=>Q<=\"0110000000000110\"; when \"1010\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\";

when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0010\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";---显示“2” when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0110000111111110\"; when \"0101\"=>Q<=\"0110000111111110\"; when \"0110\"=>Q<=\"0110000110000110\"; when \"0111\"=>Q<=\"0110000110000110\"; when \"1000\"=>Q<=\"0111111110000110\"; when \"1001\"=>Q<=\"0111111110000110\"; when \"1010\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0011\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";--显示”3“ when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\";

when \"0100\"=>Q<=\"0000000000000000\"; when \"0101\"=>Q<=\"0000000000000000\"; when \"0110\"=>Q<=\"0111111111111110\"; when \"0111\"=>Q<=\"0111111111111110\"; when \"1000\"=>Q<=\"0110000110000110\"; when \"1001\"=>Q<=\"0110000110000110\"; when \"1010\"=>Q<=\"0110000110000110\"; when \"1011\"=>Q<=\"0110000110000110\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0100\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";--显示”4“ when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000001100000000\"; when \"0100\"=>Q<=\"0000001100000000\"; when \"0101\"=>Q<=\"0000001100000000\"; when \"0110\"=>Q<=\"0000001100000000\"; when \"0111\"=>Q<=\"0111111111111110\"; when \"1000\"=>Q<=\"0111111111111110\"; when \"1001\"=>Q<=\"0000001100000100\"; when \"1010\"=>Q<=\"0000001100111000\"; when \"1011\"=>Q<=\"0000001111100000\"; when \"1100\"=>Q<=\"0000001110000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\";

when others=>null; END CASE; WHEN \"0101\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";---显示”5“ when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0111111100000110\"; when \"0100\"=>Q<=\"0111111100000110\"; when \"0101\"=>Q<=\"0110001100000110\"; when \"0110\"=>Q<=\"0110001100000110\"; when \"0111\"=>Q<=\"0110001100000110\"; when \"1000\"=>Q<=\"0110001100000110\"; when \"1001\"=>Q<=\"0110001111111110\"; when \"1010\"=>Q<=\"0110001111111110\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0110\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";--显示”6\" when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0111111110000110\"; when \"0101\"=>Q<=\"0111111110000110\"; when \"0110\"=>Q<=\"0110000110000110\"; when \"0111\"=>Q<=\"0110000110000110\";

when \"1000\"=>Q<=\"0110000110000110\"; when \"1001\"=>Q<=\"0111111111111110\"; when \"1010\"=>Q<=\"0111111111111110\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"0111\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";--显示“7” when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0111111111111110\"; when \"0101\"=>Q<=\"0111111111111110\"; when \"0110\"=>Q<=\"0000000000000110\"; when \"0111\"=>Q<=\"0000000000000110\"; when \"1000\"=>Q<=\"0000000000000110\"; when \"1001\"=>Q<=\"0000000000000110\"; when \"1010\"=>Q<=\"0000000000000110\"; when \"1011\"=>Q<=\"0000000000000110\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1000\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";---显示“8” when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0111111111111110\"; when \"0101\"=>Q<=\"0111111111111110\"; when \"0110\"=>Q<=\"0110000110000110\"; when \"0111\"=>Q<=\"0110000110000110\"; when \"1000\"=>Q<=\"0110000110000110\"; when \"1001\"=>Q<=\"0111111111111110\"; when \"1010\"=>Q<=\"0111111111111110\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1001\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";--显示\"9\" when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0111111111111110\"; when \"0101\"=>Q<=\"0111111111111110\"; when \"0110\"=>Q<=\"0110000110000110\"; when \"0111\"=>Q<=\"0110000110000110\"; when \"1000\"=>Q<=\"0110000110000110\"; when \"1001\"=>Q<=\"0110000111111110\"; when \"1010\"=>Q<=\"0110000111111110\"; when \"1011\"=>Q<=\"0000000000000000\";

when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1010\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";--显示”A\" when \"0001\"=>Q<=\"0111000000000000\"; when \"0010\"=>Q<=\"0011110000000000\"; when \"0011\"=>Q<=\"0000111100000000\"; when \"0100\"=>Q<=\"0000001111000000\"; when \"0101\"=>Q<=\"0000001111100000\"; when \"0110\"=>Q<=\"0000001100111000\"; when \"0111\"=>Q<=\"0000001100001110\"; when \"1000\"=>Q<=\"0000001100001110\"; when \"1001\"=>Q<=\"0000001100111000\"; when \"1010\"=>Q<=\"0000001111100000\"; when \"1011\"=>Q<=\"0000001111000000\"; when \"1100\"=>Q<=\"0000111100000000\"; when \"1101\"=>Q<=\"0011110000000000\"; when \"1110\"=>Q<=\"0111000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1011\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";--显示\"B” when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\";

when \"0100\"=>Q<=\"0011111001111100\"; when \"0101\"=>Q<=\"0111111111111110\"; when \"0110\"=>Q<=\"0110000110000110\"; when \"0111\"=>Q<=\"0110000110000110\"; when \"1000\"=>Q<=\"0110000110000110\"; when \"1001\"=>Q<=\"0110000110000110\"; when \"1010\"=>Q<=\"0111111111111110\"; when \"1011\"=>Q<=\"0111111111111110\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1100\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";--显示“C” when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0110000000000110\"; when \"0101\"=>Q<=\"0110000000000110\"; when \"0110\"=>Q<=\"0110000000000110\"; when \"0111\"=>Q<=\"0110000000000110\"; when \"1000\"=>Q<=\"0110000000000110\"; when \"1001\"=>Q<=\"0110000000000110\"; when \"1010\"=>Q<=\"0111000000001110\"; when \"1011\"=>Q<=\"0011100000011100\"; when \"1100\"=>Q<=\"0001111111111000\"; when \"1101\"=>Q<=\"0000111111110000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\";

when others=>null; END CASE; WHEN \"1101\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";---显示“D” when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0000000000000000\"; when \"0101\"=>Q<=\"0000000000000000\"; when \"0110\"=>Q<=\"0000000000000000\"; when \"0111\"=>Q<=\"0000001110000000\"; when \"1000\"=>Q<=\"0000011001100000\"; when \"1001\"=>Q<=\"0000110000110000\"; when \"1010\"=>Q<=\"0001100000011000\"; when \"1011\"=>Q<=\"0011000000001100\"; when \"1100\"=>Q<=\"0011111111111100\"; when \"1101\"=>Q<=\"0011111111111100\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1110\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";--显示”E“ when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0110000110000110\"; when \"0101\"=>Q<=\"0110000110000110\"; when \"0110\"=>Q<=\"0110000110000110\"; when \"0111\"=>Q<=\"0110000110000110\";

when \"1000\"=>Q<=\"0110000110000110\"; when \"1001\"=>Q<=\"0110000110000110\"; when \"1010\"=>Q<=\"0111111111111110\"; when \"1011\"=>Q<=\"0111111111111110\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE; WHEN \"1111\"=> CASE SEL IS

when \"0000\"=>Q<=\"0000000000000000\";--显示“F\" when \"0001\"=>Q<=\"0000000000000000\"; when \"0010\"=>Q<=\"0000000000000000\"; when \"0011\"=>Q<=\"0000000000000000\"; when \"0100\"=>Q<=\"0000000000000000\"; when \"0101\"=>Q<=\"0000000110000011\"; when \"0110\"=>Q<=\"0000000110000011\"; when \"0111\"=>Q<=\"0000000110000011\"; when \"1000\"=>Q<=\"0111111111111111\"; when \"1001\"=>Q<=\"0111111111111111\"; when \"1010\"=>Q<=\"0000000000000000\"; when \"1011\"=>Q<=\"0000000000000000\"; when \"1100\"=>Q<=\"0000000000000000\"; when \"1101\"=>Q<=\"0000000000000000\"; when \"1110\"=>Q<=\"0000000000000000\"; when \"1111\"=>Q<=\"0000000000000000\"; when others=>null; END CASE;

WHEN OTHERS=>NULL; END CASE;

WHEN OTHERS=>NULL; END CASE; END PROCESS;

END ARCHITECTURE XSDZ;

四. 仿真结果

这里只仿真顶层模块。

由仿真结果可以看出,设计完全符合要求。

五. 心得与体会

通过这次大作业,我深深地感受到,要把知识真正掌握到手里,在理论的基础上,还必须要有更深一步的实践。通过大作业的实践,把那些书本上的知识点都运用起来,去真正地做点东西出来,远比死记硬背理论知识更有意义。 从刚开始的毫无头绪,无从下手,到之后积极查找资料,与组员讨论,再到后来着手设计,划分模块,编写代码,编译仿真,纠错反思。这样一步步脚踏实地迈向成功的感觉真的不错。

以后,我会继续用VHDL去做一些自己感兴趣的东西,慢慢积累,慢慢地争取往更高的目标发展。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务