1、一、任务及要求CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。并最终完成电路的编程调试。具体要求如下:用一个1616的点阵使用逐列循环扫描的方式不间断的显示你姓名的全部大写拼音字母。二、进度安排第一周:周一:集中布置课程设计相关事宜。周二周三:子模块程序设计,顶层电路程序设计。周四周日:子模块,顶层电路仿真。第二周:周一周三:编程下载,系统调试。周四周五:设计报告撰写。周五进行答辩和设计结果检查。三、参考资料1. 张 原编著,可编程逻辑器件设计及应用,机械工业出版社。2.荀殿栋,徐志军编著,
2、数字电路设计实用手册,电子工业出版社。3. 刘洪喜,陆颖编著. VHDL电路设计实用教程 清华大学出版社。1.3.顶层文件设计 2一、总体设计思路 1.1基本原理 LED就是LightEmittingDiode(发光二极管)的缩写。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。16扫
3、描LED点阵的工作原理同8位扫描数码管类似。它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯,所以其扫描译码地址需4位信号线(SEL0-SEL3),其汉字扫描码由16位段地址(0-15)输入。 通过时钟的每列扫描显示完整汉字。点阵LED一般采用扫描式显示,实际运用分为三种方式:(1)点扫描(2)行扫描(3)列扫描若使用第一种方式,其扫描频率必须大于1664=1024Hz,周期小于1ms即可。若使用第二和第三种方式,则频率必须大于168=128Hz,周期小于7.8ms即可符合视觉暂留要求。此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。实验箱上为我
4、们提供了16*16的点阵显示模块。通过观察,我们可以看到,此点阵显示屏即为16行、16列的LED显示灯。那么控制这些灯的亮暗分布,就能达到字符显示的目的。首先输出预定义“吕、苏、田、口”四个汉字,显示屏上的灯的亮暗情况具体应如何。如第一个汉字吕:00000000000000000000000001111100001111110100010000100001010001000000000001000100如果高电平1时表示灯是亮的,低电平0时灯是暗的,这样上面的灯呈现在我们眼前的就是吕字了。依次类推,我们就可以设计出所有要显示的汉字了。这样这些汉字就好象是被我们当作了固定模型了。但如何点亮这些灯
5、呢,这就要求有一个脉冲循环扫描的电路,我们采用列扫描,当扫描的和我们先设计好的汉字模型的高电平相匹配时,灯就相应的点亮。由于扫描的速度很快,我们人的眼睛并不会感到灯的闪烁,所以每扫描完16列就会显示在我们眼中一个汉字了。但要所有的汉字就可以依次的显示出来并不停的循环显示,就还要再有一个时序控制电路来控制。此时序控制电路象一个计数器,有自动清零的功能,这样就可以实现循环的效果了。1.2设计框图 图1.2 总体设计框图1.3顶层文件设计 图1.3 顶层文件设计二、单元电路设计2.1列循环扫描 通过对每一列的扫描来完成对字母的现实,只要扫描的频率足够快,就能给人以连续的感觉。因此要控制扫描的频率,不
6、能太低,否则,就会造成视觉上的不连续, 输入一个时钟信号,输出为4位二进制(用sel表示)列选信号,用来选中列,进行扫描,扫描程序如下:Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;Entity dz_xs is Port(enable,clk:in std_logic; -端口定义 输入信号 Sel:out std_logic_vector(3 downto 0); -端口定义 输出信号End dz_xs;Architecture count of dz_xs is Signal lie:st
7、d_logic_vector(3 downto 0);BeginProcess(clk,enable) -脉冲、使能信号beginIf clkevent and clk=1thenIf enable= thenIf lie0000 Lie=lie-0001;Else=1111End if; End if;SelCase lie is -“吕”字设计0011h000000000h8End case;01Case lie is -“苏”字设计0010000010001100011100001000000000101000001000111111110010000110111111100000110
8、010Case lie is -“田”字设计 When0001111111110000000100010001000011Case lie is -“口”字设计11100000 End case;2.3循环扫描及期间的延时环节 为使汉字不断地循环显示,并且使每个汉字之间有停顿,就需要在中间加一定的延时和循环环节。在这一环节中,可以通过修改其数值来控制每个字母的显示时间,其程序如下:process(clk) variable int: integer range 0 to 10000; if clkevent and clk=1then if int10000 then int:=int+1;
9、else int:=0; if next1=”11”then next1=”00”; else= next1+1; end if; end if;end process;2.4总程序library ieee;entity yz_ok is port(enable,clk: sel:out std_logic_vector(3 downto 0); h0,h8:end yz_ok;architecture count of yz_ok is signal lie: signal next1: std_logic_vector(1 downto 0);a1:process(clk,enable)
10、End if;a2:process(enable,clk)Case next1 isCase lie is a3: if clk if next1= next1+end count;第三章 系统调试与仿真3.1开发环境介绍Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、Veril-ogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II支持Altera的IP核,包含了LPM/MegaFunction
11、宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。3.2调试与仿真3.2.1 创建工程在Quartus II 中新建一个VHDL File文件,将VHDL代码输入这个文件,并保存到工作目录,名为yz_ok.vhd。利用ne
12、w preject wizard 工具创建一个工程,工程名为yz_ok,顶层文件实体名为yz_ok,并将上面创建的yz_ok.vhd文件加入到工程中。3.2.2 编译前设置 (1)选择目标芯片。用assignmemts- settings命令,弹出settings对话框,选择目标芯片为EP1C3T144C8。图3-1 选择目标器件(2)选择工作方式,编程方式,及闲置引脚状态单击上图中的device&pin options按钮,弹出device&pin options窗口。 在General项中选中auto-restart configuration after error,使对FPGA的配置失
13、败后能自动重新配置,并加入JTAG用户编码。 图3-2 选择配置器件工作方式在configuration项中,其下方的Generate compressed bitstreams处打勾,这样就能产生用于EPCS的POF压缩配置文件。在Configuration 选项页,选择配置器件为EPCS1,其配置模式选择为active serial。图3-3选择编程方式在Unused pins项,将目标器件闲置引脚状态设置高阻态,即选择As input,tri-stated。图3-4 设置闲置引脚状态3.2.3 全程编译设置好前面的内容之后,就可以进行编译了。选择Processing菜单中start compilation,在窗口的下方processing栏中显示编译信息。图3-5 全程编译成功完成完成后在工程管理窗口左是角显示了工程yz_ok 的层次结构和其中结构模块耗用的逻辑宏单元数。此栏的右边是编译处理流程,包括数据网表建立、逻辑综合、适配、配
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1