EDA课程设计1616字符发生器.docx
- 文档编号:13510145
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:13
- 大小:185.14KB
EDA课程设计1616字符发生器.docx
《EDA课程设计1616字符发生器.docx》由会员分享,可在线阅读,更多相关《EDA课程设计1616字符发生器.docx(13页珍藏版)》请在冰点文库上搜索。
EDA课程设计1616字符发生器
EDA课程设计
-----16X16字符发生器
学院:
##师范学院
专业:
电子信息科学与技术
班级:
08级电子一班
时间:
20##12月1日
一.设计任务与要求
1.设计任务:
利用实验箱上16X16点阵,设计字符发生器,可以循环显
示预置字符:
同心协力。
2.设计要求:
(1)利用VHDL编写字符扫描驱动电路;
(2)设计一个可以自动循环显示4个字符的电路;
〔3〕编写预置字符的rom程序生成模块接入电路。
二.总体框图
设计思路:
此电路由八进制计数器,ROM和ADDRESS1这三部分构成。
ADDRESS1的作用是在时钟clk的作用下将从rom中读出的信号对应正确的写在16×16的点阵上。
Reset是复位端,起复位作用。
输出addr[4..1]选中16X16LED点阵的对应列,随着addr[4..1]值得增加,从左往右依次选中点阵的各列addr0则决定输出是在高位还是在低位。
FLEX10的lout0-7和hout0-7分别与LED点阵的低八位L0-7和高八位L8-15相连。
八进制计数器是在addr[7..0]输出0-3的循环计数,由此输出与ADDRESS1的输出addr[4..0]共同作为rom的输入地址,以此决定q[7..0]的输出〔即ADDRESS1的DIN[7..0]的输入〕,此八进制计数器是由74LS160十进制计数器修改得来的,输出由原来十进制的0-9循环输出变为八进制的0-3循环输出。
Rom是一个用来存储数据的具有读写功能的的存储器,在此电路中的作用是存储“同心协力〞四个字.在addr[7..0]输入相应的地址时读取rom中的相应的数据,然后在输出端q[7..0]输出。
在时钟脉冲的作用下,地址计数器计数,EPROM相对应的地址单元中的代码输出,以驱动列选通线产生电路。
地址计数器同时又为行选通线产生电路。
地址随着地址计数器计数值的变化,发光二极管显示屏逐行扫描,显示屏上显示出字符或图案。
各模块功能:
1)ROM是只读存储器存放字符的代码,他是字符显示器的核心部件。
2〕发光二极管显示屏用来显示字符或图案,他是由若干发光二极管组成的点阵式显示屏。
3)ADDRESS1的作用是在时钟clk的作用下将从ROM256*8中读出的信号对应正确的写在16×16的点阵上。
三.选择器件与功能模块
1.用来构成输出八进制的74LS160十进制计数器
(1).74LS160器件图
A.B.C.D为输入端;LDN为置数端;ENT与ENP为使能控制端;CLRN为置零端;
RCO为进位输出端;QA.QB.QC.QD为输出端;CLK为脉冲信号输入端.
(2).74160内部结构图
〔3〕.74160功能表
CP
CLRN(RD非)
LDN(LD非)
EPET
工作状态
X
0
X
XX
置零
↑
1
0
XX
预置数
X
1
1
01
保持
X
1
1
X0
保持(C=0)
↑
1
1
11
计数
2.ADDRESS1模块设计文件ADDRESS1.VHD
说明:
CLK为时钟输入端口;
RESET为置零端;
DIN[7..0]为接受ROM数据信号端口;
AD[4..0]为片选地址输出;
HOUT[7..0],LOUT[7..0]分别为高八位断驱动和低八位短驱动.
Address1设计程序:
LIBRARYIEEE;
USEIEEE.std_logic_1164.ALL;
USEIEEE.std_logic_unsigned.ALL;
ENTITYaddress1IS
PORT(
clk,reset:
INSTD_LOGIC;
ad:
OUTSTD_LOGIC_VECTOR(4downto0);
din:
inSTD_LOGIC_VECTOR(7DOWNTO0);
hout,lout:
outSTD_LOGIC_VECTOR(7downto0));
ENDaddress1;
ARCHITECTUREaOFaddress1IS
BEGIN
process(clk,din,reset)—敏感信号
VARIABLEQ1:
STD_LOGIC_VECTOR(4DOWNTO0);--标准逻辑变量
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFRESET='0'OR(Q1="11111")THEN
Q1:
="00000";
ELSE
Q1:
=Q1+1;
ENDIF;
ENDIF;
CASEQ1(0)IS
WHEN'0'=>
LOUT<=din;
HOUT<=(others=>'0');
WHEN'1'=>
HOUT<=din;
LOUT<=(others=>'0');
WHENOTHERS=>
null;
ENDCASE;
ad<=Q1;
ENDPROCESS;
ENDa;
模块功能:
地址选择器包含行选线产生电路和列选线产生电路,从ROM中选择相应的地址输出。
Clk为扫描时钟脉冲,控制扫描速度的快慢;RESET为复位端,只有在RESET为高电平的情况下,在脉冲上升沿到来时,ad计数,其中ad[4..1]输出扫描驱动信号,接入扫描片选端,依次选中LED点阵的各列,din输入字符存储器中每个存储单元的数据,hout[7..0]控制LED点阵的高八位lout[7..0]控制LED点阵的低八位,din中存储器中调用的数据模块分别由hout[7..0]或lout[7..0]输出,在LED点阵中经扫描显示字符。
仿真图:
3.用来存储字符的ROM256X8存储器
(1).存入ROM中的数据
width=8;
depth=256;
address_radix=hex;
data_radix=hex;
contentbegin
00:
00;01:
00;02:
fe;03:
ff;04:
02;05:
00;06:
02;07:
00;--tong
08:
92;09:
3f;0a:
92;0b:
10;0c:
92;0d:
10;0e:
92;0f:
10;
10:
92;11:
10;12:
92;13:
10;14:
92;15:
10;16:
da;17:
3f;
18:
02;19:
40;1a:
02;1b:
80;1c:
ff;1d:
7f;1e:
02;1f:
00;
20:
00;21:
00;22:
00;23:
00;24:
00;25:
04;26:
00;27:
02;--xin
28:
c0;29:
01;2a:
00;2b:
00;2c:
f0;2d:
3f;2e:
01;2f:
40;
30:
02;31:
40;32:
1c;33:
40;34:
08;35:
40;36:
00;37:
07;
38:
00;39:
70;3a:
80;3b:
00;3c:
80;3d:
00;3e:
00;3f:
07;
40:
10;41:
00;42:
10;43:
00;44:
ff;45:
ff;46:
10;47:
00;--xie
48:
10;49:
04;4a:
80;4b:
03;4c:
00;4d:
40;4e:
10;4f:
20;
50:
10;51:
1c;52:
ff;53:
03;54:
10;55:
00;56:
10;57:
40;
58:
10;59:
80;5a:
f8;5b:
7f;5c:
90;5d:
00;5e:
00;5f:
03;
60:
10;61:
80;62:
10;63:
80;64:
10;65:
80;66:
10;67:
60;--li
End;
〔2〕由VHDL编译生成的ROM256X8存储器图
16×16扫描LED点阵的工作原理同8位扫描数码管类似。
它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。
所以其扫描译码地址需4位信号线。
2864E2PROM存贮器是电可擦除/编程的只读存贮器,容量为8k×8bit,有13位并行地址线和8位并行数据线,而一个完整的字符所需的存贮容间为32字节即32×4bit,也就是说2864最多可连续存256个16×16点阵字形。
存贮方式可事先约定好.
四.总体设计电路图
1〕.工作情况:
将74LS160十进制计数器变为了八进制的计数器。
在输入clk1的作用下在输出端输出000-111的地址数据。
八进制输出的地址数据与ADDRESS1的输出addr[4..0]共同作为了存储器ROM的地址输入。
此输入地址选定了存储器中在该地址上存储的数据。
然后将数据在存储器的输出端q[7..0]输出。
存储器的输出作用下输出的addr[4..1]决定了输出结果在16×16的点阵上列循环扫描。
而addr0则决定着输出在16×16的点阵上的行扫描,也即输出时在低位〔lout〕还是在高位〔hout〕。
总体上说来就是计数器提供部分地址,而ROM是一个字符的存储库,ADDRESS1则是决定着要输出的字符如何在16×16的点阵上扫描输出.
2〕.模块间的连接关系:
计数器的输出连接在ROM259×8的地址输入端,ROM259×8的输出q[7..0]连接在ADDRESS1的din[7..0]端。
ADDRESS1的输出addr[4..0]又回到了ROM256×8的地址输入端。
1.时序仿真结果
仿真分析:
RESET接低电平;CLK1为CLK的10倍,当CLK1第一个上升沿未到来时,列选信号输出端为"00",即点阵第一列选通,此时LED低八位L7~L4为"1110"十六进制为'E',L3~L0为"0000"十六进制为'0';LED高八位L15~L12为"0000"十六进制为'0',L11~L8为"0000"十六进制为'0'.
由此可推断模拟结果符合设计要求.
2.管脚分配图
五.心得体会
通过本次课程设计我感触很深,这是我做的第一次课程设计,从开始到结束到是在匆匆忙忙的生活中度过的,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。
在编辑模块过程中我遇到很多问题,所以慢慢的很少讨论问题的我跟同学对设计的交流成了家常便饭,在整个过程中虽然付出了很多的努力,当看到显示频上不断跳出自己设计的字符时我觉得任何困难都值得。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。
六.附录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 1616 字符 发生器