《电子信息科学与技术专业EDA课程设计.ppt》由会员分享,可在线阅读,更多相关《电子信息科学与技术专业EDA课程设计.ppt(29页珍藏版)》请在三一办公上搜索。
1、,EDA课程设计-16X16字符发生器,学 院:阜阳师范学院专 业:电子信息科学与技术 班 级:08级电子一班,本组成员姓 名(学 号):,一设计任务及要求,1.设计任务:利用实验箱上16X16点阵,设计字符发生器,可以循环显 示预置字符:同心协力。2.设计要求:(1)利用VHDL编写字符扫描驱动电路;(2)设计一个可以自动循环显示4个字符的电路;(3)编写预置字符的rom程序生成模块接入电路。,二.总体框图,设计思路:,1.设计任务:利用实验箱上16X16点阵,设计字符发生器,可以循环显 示预置字符:同心协力。2.设计要求:(1)利用VHDL编写字符扫描驱动电路;(2)设计一个可以自动循环显
2、示4个字符的电路;(3)编写预置字符的rom程序生成模块接入电路。,八进制计数器是在addr7.0输出0-3的循环计数,由此输出与ADDRESS1的输出addr4.0共同作为rom的输入地址,以此决定q7.0的输出(即ADDRESS1的DIN7.0的输入),此八进制计数器是由74LS160十进制计数器修改得来的,输出由原来十进制的0-9循环输出变为八进制的0-3循环输出。Rom是一个用来存储数据的具有读写功能的的存储器,在此电路中的作用是存储“同心协力”四个字.在addr7.0输入相应的地址时读取rom中的相应的数据,然后在输出端q7.0输出。在时钟脉冲的作用下,地址计数器计数,EPROM相对
3、应的地址单元中的代码输出,以驱动列选通线产生电路。地址计数器同时又为行选通线产生电路。地址随着地址计数器计数值的变化,发光二极管显示屏逐行扫描,显示屏上显示出字符或图案。,ROM是只读存储器存放字符的代码,它是字符显示器的核心部件。2)发光二极管显示屏用来显示字符或图案,他是由若干发光二极管组成的点阵式显示屏。3)ADDRESS1的作用是在时钟clk的作用下将从ROM256*8中读出的信号对应正确的写在1616的点阵上。,各模块功能:,选择器件与功能模块:,用来构成输出八进制的74LS160十进制计数器74LS160器件图如下:,A.B.C.D 为输入端;LDN为置数端;ENT与ENP为使能控
4、制端;CLRN为置零端;RCO为进位输出端;QA.QB.QC.QD为输出端;CLK为脉冲信号输入端.,74160内部结构图:,74160功能表:,ADDRESS1模块设计文件ADDRESS1.VHD,说明:,CLK为时钟输入端口;RESER为置零端;DIN7.0为接受ROM数据信号端口;AD4.0为片选地址输出;HOUT7.0,LOUT7.0分别为高八位断驱动和 低八位短驱动.,Address1设计程序:,LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY address1 ISPORT
5、(clk,reset:IN STD_LOGIC;ad:OUT STD_LOGIC_VECTOR(4 downto 0);din:in STD_LOGIC_VECTOR(7 DOWNTO 0);hout,lout:out STD_LOGIC_VECTOR(7 downto 0);END address1;ARCHITECTURE a OF address1 ISBEGIN process(clk,din,reset),VARIABLE Q1:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGIN IF CLKEVENT AND CLK=1THEN IF RESET=0OR(Q1=1
6、1111)THEN Q1:=00000;ELSE Q1:=Q1+1;END IF;END IF;CASE Q1(0)IS WHEN 0=LOUT0);WHEN 1=HOUT0);WHEN OTHERS=null;END CASE;ad=Q1;END PROCESS;END a;,地址选择器包含行选线产生电路和列选线产生电路,从ROM中选择相应的地址输出。Clk为扫描时钟脉冲,控制扫描速度的快慢;RESET为复位端,只有在RESET为高电平的情况下,在脉冲上升沿到来时,ad计数,其中ad4.1输出扫描驱动信号,接入扫描片选端,依次选中LED点阵的各列,din输入字符存储器中每个存储单元的数据,h
7、out7.0控制LED点阵的高八位lout7.0 控制LED点阵的低八位,din中存储器中调用的数据模块分别由hout7.0或lout7.0输出,在LED点阵中经扫描显示字符。,模块功能:,仿真图:,3.用来存储字符的ROM256X8存储器(1).存入ROM中的数据,width=8;depth=256;address_radix=hex;data_radix=hex;content begin00:00;01:00;02:fe;03:ff;04:02;05:00;06:02;07:00;-tong08:92;09:3f;0a:92;0b:10;0c:92;0d:10;0e:92;0f:10;1
8、0: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;-xin28: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
9、: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;-liEnd;,(2)由VHDL编译生成的ROM256X8存储器图,1616扫描LED点阵的工作原理同8位扫描数码管类似。它有
10、16个共阴极输出端口,每个共阴极对应有16个LED显示灯。所以其扫描译码地址需4位信号线。2864E2PROM存贮器是电可擦除/编程的只读存贮器,容量为8k8bit,有13位并行地址线和8位并行数据线,而一个完整的字符所需的存贮容间为32字节即324bit,也就是说2864最多可连续存256个1616点阵字形。存贮方式可事先约定好.,四.总体设计电路图,四.总体设计电路图,1).工作情况:,将74LS160十进制计数器变为了八进制的计数器。在输入clk1的作用下在输出端输出000-111的地址数据。八进制输出的地址数据与ADDRESS1的输出addr4.0共同作为了存储器ROM的地址输入。此输
11、入地址选定了存储器中在该地址上存储的数据。然后将数据在存储器的输出端q7.0输出。存储器的输出作用下输出的addr4.1决定了输出结果在1616的点阵上列循环扫描。而addr0则决定着输出在1616的点阵上的行扫描,也即输出时在低位(lout)还是在高位(hout)。总体上说来就是计数器提供部分地址,而ROM是一个字符的存储库,ADDRESS1则是决定着要输出的字符如何在1616的点阵上扫描输出.,2).模块间的连接关系:,计数器的输出连接在 ROM2568的地址输入端,ROM2568的输出q7.0连接在 ADDRESS1的din7.0端。ADDRESS1的输出addr4.0又回到了ROM25
12、68的地址输入端。,1.时序仿真结果,仿真分析:,RESET接低电平;CLK1为CLK的10倍,当CLK1第一个上升沿未到来时,列选信号输出端为00,即点阵第一列选通,此时LED低八位L7L4为1110十六进制为E,L3L0为0000十六进制为0;LED高八位L15L12为0000十六进制为0,L11L8为0000十六进制为0.由此可推断模拟结果符合设计要求.,管脚分配图:,五心得体会,通过本次课程设计我感触很深,这是我做的第一次课程设计,从开始到结束到是在匆匆忙忙的生活中度过的,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。在编辑模块过程中我遇到很多问题,所以慢慢的很少讨论问题的我跟同学对设计的交流成了家常便饭,在整个过程中虽然付出了很多的努力,当看到显示频上不断跳出自己设计的字符时我觉得任何困难都值得。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。,六附录,