- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用科学学院
SOPC/EDA综合课程设计报告
设计题目:
设 计 者:
学 号:
班 级:
指导老师:
完成时间:
设计报告
综合测试
总评 格式
(10) 内容
(40) 图表
(10) 答辩
(20) 平时
(20) 目 录
第1章 总体设计原理及原理框图 1
1.1 设计原理 1
1.2顶层文件设计 2
1.3总体仿真图 2
第2章单元电路设计 4
2.1时序控制模块设计 4
2.1.1时序控制模块的源程序及其实体图 4
2.1.2时序控制模块仿真 5
2.2扫描控制模块设计 5
2.2.1扫描控制模块源程序及其实体图 5
2.2.2扫描控制模块仿真 6
2.3显示控制模块源程序及其实体图 6
2.3.1显示控制模块 6
2.3.2显示控制模块仿真 21
第3章 心得体会 22
参考文献 23
第1章 总体设计原理及原理框图
1.1 设计原理
首先我们设计要正确显示这些字,显示屏上的灯的亮暗情况具体应如何。
如第一个字‘江’:
第一种方案 第二种方案
如果高电平‘1 时表示灯是亮的,低电平‘0’时灯是暗的,这样上面的灯呈现在我们眼前的就是‘江’字了。依次类推,我们就可以设计出所有要显示的字了。
使用FPGA设计一个16×16的点阵显示的控制器,使点阵显示器以两种花样显示“江西理工大学应用科学学院欢迎您”第一种花样是用亮着的灯组合所要显示的字,第二种方案是用暗着的灯组成所需要的字。
这样这些字就好象是被我们当作了固定模型了。但如何点亮这些灯呢,这就要求有一个脉冲循环扫描的电路,我们采用列扫描,当扫描的和我们先设计好的字模型的高电平相匹配时,灯就相应的点亮。由于扫描的速度很快,我们人的眼睛并不会感到灯的闪烁,所以每扫描完16列就会显示在我们眼中一个字了。但要所有的字母就可以依次的显示出来并不停的循环显示,就还要再有一个时序控制电路来控制。此时序控制电路象一个计数器,有自动清零的功能,这样就可以实现循环的效果了。其设计原理图框图如下
图1.1 总体设计框图
1.2顶层文件设计
顶层文件来实现循环显示各个字的功能。它由时序控制模块,扫描模块和字母显示控制模块组成。时序控制模块利用脉冲来控制每个字的显示时间。扫描控制模块利用列扫描脉冲产生列扫描信号。而字显示控制模块用时序控制模块和扫描控制模块所提供的脉冲信号来点亮各个字模型中相应的灯。在时序模块的控制下(此设计中每15个字为一个循环)实现了各个字循环显示的功能。
要实现显示“江西理工大学应用科学学院欢迎您“,结合实际,模块LCD1,LCD2, LCD3分别实现时序控制模块,扫描模块和字母显示控制模块。具体电路的 顶层文件设计如下图
图 1.2 顶层电路图
1.3总体仿真图
图1.3第一个字设计仿真图
图中使CLK1一直为低电平,即第一个字,这时从QO输出第一个字“江”的字库
第2章单元电路设计
2.1时序控制模块设计
2.1.1时序控制模块的源程序及其实体图
此模块用来控制每个字的显示时间,当计满四个脉冲时cnt自动清零,即每个字显示四个脉冲的时间。一共有15个字(江,西,理,工,大,学,应,用,科,学,学,院,欢,迎,您)。当tmp=11101时,tmp自动清零,此后是这些字显示的下一个循环。如此不停的循环显示各个字。
图2.1 时序控制模块
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity lcd1 is
port(clk:in std_logic;
q:out std_logic_vector(4 downto 0));
end lcd1;
architecture one of lcd1 is
begin
process(clk)
variable cnt:integer;
variable tmp:std_logic_vector(4 downto 0);
begin
if clkevent and clk=1then
if cnt4 then
cnt:=cnt+1;
else
cnt:=0;
if tmp=11101then
tmp:=00000;
else
tmp:=tmp+1;
end
文档评论(0)