ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:135.69KB ,
资源ID:10585341      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10585341.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(vhdl实验报告16乘16点阵字选.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

vhdl实验报告16乘16点阵字选.docx

1、vhdl实验报告16乘16点阵字选综 合 实 践 总 结 报 告 综合实践名称: EDA技术与实践 综合实践地点、时间题目功能分析和设计实验的要求有如下三点:1.用16*16点阵的发光二极管显示字符;2.可显示字符为09的数字字符与AF英文字母的大写;3.输入为四位二进制矢量;按照要求可知,LED点阵模块,共由1616=256个LED发光二极管组成,如何在该点阵模块上显示数字和字母是本实验的关键。先将要显示的每一幅图像画在一个1616共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布以数字8为例,点阵

2、分布为:0000000000000000000000000000000000011111111110000001111111111000000110000001100000011000000110000001100000011000000111111111100000011111111110000001100000011000000110000001100000011000000110000001111111111000000111111111100000000000000000000000000000000000考虑到实际物理实验平台上点阵发光二极管的原理,以下为1616点阵LED外观图,只

3、要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。 所以我采用行列扫描的方法,用四位二进制数做列选信号(总共16列),如选中第一列,则扫描第一列之中哪些行是高电平(1),哪些行是低电平(0);为高电平的则点亮,为低电平的不亮。(列信号都接地)。如此,列选信号由“0000”变到“1111”时,16列扫描完毕,一个字也就出来了,列选信号重新由“0000”开始扫描。注意扫描频率必须要足够快,才能保证显示一个数字或字母时所有灯在肉眼看来是同时在闪烁的。再者,就是字变换的问题。题目要求可显示字符为09的数字字符与AF英文字母的大写;16个字正好用四位二

4、进制表示,字选信号。每个字选信号对应一个0到9,A到F中的一个字模(像前面列出的8的字模一样)。通常情况下是1s变一个字符,但我在实验时考虑到仿真的问题,将字选信号的变化周期缩小很多,以便仿真。要注意的是,列选信号变化频率一定是比字选信号大得多的。一 总体模块划分1. 字选模块输入为一个时钟信号,输出为4位二进制(用xuan 表示)字选信号,用来顺序输出题目要求的16个字。因为设计采用字选模块和列选模块使用同一个输入时钟脉冲,但是字选信号的变化频率比列选信号要小得多。所以该模块中还应该设置一个计数器,计数器满,则Q加1,即变向下一个字,同时计数器重新置零。2. 列选模块 输入为一个时钟信号,输

5、出为4位二进制(用sel表示)列选信号,用来选中列,进行扫描。3. 显示模块 输入为字选信号和列选信号,输出为16位二进制,用来表示一列,该列中的1的位置就表示亮灯的位置,0的位置表示不亮。每扫描一列就输出一列,看该列中哪些行是1,哪些行是0。该模块应该包含09,AF这16个字模。4. 顶层模块 该模块采用图形模式(.gdf),将所有的模块按要求合理连接起来后,再添加上顶层的输入输出信号。附顶层图:二 代码实现1.顶层模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY dianzh

6、en ISPORT(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 ISCOMPONENT XUANZIPORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END COMPONENT; COMPONENT XUANZPORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGI

7、C_VECTOR(3 DOWNTO 0) );END COMPONENT; COMPONENT XUAPORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END COMPONENT; COMPONENT XUPORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END COMPONENT;COMPONENT XUSPORT(red,REG:IN STD_LOGIC; ZI,si,MI,NI:in STD_LOGIC_VECTOR(3 DOWNTO 0); Q:O

8、UT STD_LOGIC_VECTOR(3 DOWNTO 0) );END COMPONENT;COMPONENT LIEXUANPORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END COMPONENT;COMPONENT XIANSHIPORT( 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 COM

9、PONENT;SIGNAL ZI_DAOUT,SI_DAOUT,MI_DAOUT,NI_DAOUT,XUAN_DAOUT,SEL_DAOUT:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINSELCLK, 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=

10、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.字选模块:四种环节字选中间选择环节xus:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XUS ISPORT(red,REG:IN STD_LOGIC; ZI,si,MI,NI:

11、in STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END ENTITY XUS;ARCHITECTURE A OF XUS ISBEGINPROCESS(zi,si,red)BEGINCASE red ISWHEN 0=CASE reg ISWHEN 0= Q QCASE reg ISWHEN 0= Q Q=ni; END CASE;END CASE;END PROCESS;END A;(1) 情况1:zi +1循环LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE

12、IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XUANZI ISPORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END ENTITY XUANZI;ARCHITECTURE XZ OF XUANZI ISBEGINPROCESS(CLK)VARIABLE COUNT:INTEGER RANGE 1600 DOWNTO 0;VARIABLE ZI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLKEVENT AND CLK=1 THENIF COUNT=1600 THEN

13、 IF zi=1111 THENzi:=0000;ELSEzi:=zi+1;END IF;COUNT:=0;ELSECOUNT:=COUNT+1;END IF;END IF;Q=zi;END PROCESS;END ARCHITECTURE XZ;(2) 情况2SI: -1循环LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XUANZ ISPORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END ENTITY XU

14、ANZ;ARCHITECTURE XZ OF XUANZ ISBEGINPROCESS(CLK)VARIABLE COUNT:INTEGER RANGE 1600 DOWNTO 0;VARIABLE ZI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLKEVENT AND CLK=1 THENIF COUNT=1600 THEN IF zi=0000 THENzi:=1111;ELSEzi:=zi-1;END IF;COUNT:=0;ELSECOUNT:=COUNT+1;END IF;END IF;Q=zi;END PROCESS;END ARCHITECTUR

15、E XZ;(3) 情况3MI: +2循环LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XUA ISPORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END ENTITY XUA;ARCHITECTURE XZ OF XUA ISBEGINPROCESS(CLK)VARIABLE COUNT:INTEGER RANGE 1600 DOWNTO 0;VARIABLE ZI:STD_LOGIC_VECTOR(3 DOW

16、NTO 0);BEGINIF CLKEVENT AND CLK=1 THENIF COUNT=1600 THEN IF zi=1111 THENzi:=0001;ELSEzi:=zi+2;END IF;COUNT:=0;ELSECOUNT:=COUNT+1;END IF;END IF;Q=zi;END PROCESS;END ARCHITECTURE XZ;(4) 情况4NI: -2循环LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XU ISPORT(CLK:IN STD_LOGI

17、C; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END ENTITY XU;ARCHITECTURE XZ OF XU ISBEGINPROCESS(CLK)VARIABLE COUNT:INTEGER RANGE 1600 DOWNTO 0;VARIABLE ZI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLKEVENT AND CLK=1 THENIF COUNT=1600 THEN IF zi=0001 THENzi:=1111;ELSEzi:=zi-2;END IF;COUNT:=0;ELSECOUNT:=COUNT+1

18、;END IF;END IF;Q=zi;END PROCESS;END ARCHITECTURE XZ;三 仿真结果这里只仿真顶层模块。由仿真结果可以看出,设计完全符合要求。四 心得与体会通过这次大作业,我深深地感受到,要把知识真正掌握到手里,在理论的基础上,还必须要有更深一步的实践。通过大作业的实践,把那些书本上的知识点都运用起来,去真正地做点东西出来,远比死记硬背理论知识更有意义。从刚开始的毫无头绪,无从下手,到之后积极查找资料,与组员讨论,再到后来着手设计,划分模块,编写代码,编译仿真,纠错反思。这样一步步脚踏实地迈向成功的感觉真的不错。以后,我会继续用VHDL去做一些自己感兴趣的东西,慢慢积累,慢慢地争取往更高的目标发展。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1