基于FPGA的1602液晶屏试验设计.docx
- 文档编号:12091918
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:12
- 大小:58.87KB
基于FPGA的1602液晶屏试验设计.docx
《基于FPGA的1602液晶屏试验设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的1602液晶屏试验设计.docx(12页珍藏版)》请在冰豆网上搜索。
基于FPGA的1602液晶屏试验设计
目录
1.EDA技术发展及介绍2
1.1EDA技术的介绍2
1.2EDA技术的发展2
1.3EDA技术的发展趋势3
2.总体方案设计4
2.1设计内容4
2.2CRC编码与检错原理4
2.3CRC编码步骤4
3.源代码5
4.特殊器件的介绍6
4.1CPLD器件介绍6
4.2FPGA器件介绍6
5.系统仿真及调试8
5.1仿真8
5.2调试9
6.总结9
6.1设计小结9
6.2设计收获9
6.3设计改进9
参考文献11
1.EDA技术发展及介绍
1.1EDA技术的介绍
EDA是电子设计自动化(ElectronicDesignAutomation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
EDA技术是以计算机为工具,根据硬件描述语言HDL(HardwareDescriptionlanguage)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
硬件描述语言HDL是相对于一般的计算机软件语言,如:
C、PASCAL而言的。
HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。
设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。
目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL。
1.2EDA技术的发展
(1)七十年代为CAD阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作,产生了计算机辅助设计的概念。
(2)八十年代为CAE阶段,与CAD相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计,这就是计算机辅助工程的概念。
CAE的主要功能是:
原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。
(3)九十年代为ESDA阶段,尽管CAD/CAE技术取得了巨大的成功,但并没有把人从繁重的设计工作中彻底解放出来。
在整个设计过程中,自动化和智能化程度还不高,各种EDA软件界面千差万别,学习使用困难,并且互不兼容,直接影响到设计环节间的衔接。
基于以上不足,人们开始追求:
贯彻整个设计过程的自动化,这就是ESDA即电子系统设计自动化。
1.3EDA技术的发展趋势
目前的EDA产业正处在一场大变革的前夕,对更低成本、更低功耗的无止境追求和越来越短的产品上市压力正迫使IC供应商提供采用0.13μm或以下的千万门级的系统芯片,而这些系统芯片的高复杂性设计更加依赖于EDA供应商提供全新的设计工具和方法以实现模拟前后端、混合信号和数字电路的完全整合。
然而,这些新的需求为当代EDA工具和设计方法带来了不少新的挑战与机会。
例如,如何在工艺上防止模拟电路与数字电路之间的干扰;现有的大部份EDA工具最多只能处理百万门级设计规模,随着IC设计向千万门级以上规模发展,现有EDA工具和方法必须进行升级。
如何融合各EDA供应商的工具,以便向IC设计界提供更高效能和更方便的RTL-to-GDSIIConc-ept-to-GDSII整合设计环境;为保证深亚微米(0.13μm或以下)和更低内核工作电压(1.8V或以下)时代的信号完整性和设计时序收敛,必须采用新的设计方法。
半导体工艺的每一次跃升都促使EDA工具改变自己,以适应工艺的发展;反过来EDA工具的进步又推动设计技术的发展。
可以说EDA工具是IC设计产业的背后推手。
系统芯片(SOC)正在迅速地进入主流产品的行列。
由此引发的“芯片就等于整机”的现象,将对整个电子产业形成重大的冲击。
种种迹象表明,整个电子产业正在酝酿着一场深刻的产业重组,这将为许多新兴的企业提供进入这一行业的最佳。
2.总体方案设计
2.1设计内容
在数字农业中,计算机在数据通信中的应用越来越广泛。
但由于农作物生长环境、数据传输距离等诸多因素的影响,计算机与采集设备之间的通讯数据往往会发生无法预测的错误。
传输数据的检错方法一般包括奇偶码、汉明码和循环码,其中循环码的检错效果最好。
而循环冗余校验(CRC:
cyclicredundancycheck)码(简称循环码或CRC码)的编码与解码电路比较简单且容易实现,其在数据传输、通信系统的设计、通信协议的分析及软件保护等方面常被用于实现差错控制。
2.2CRC编码与检错原理
设待传送的K为信息码为(
,
.....
),所对应的多项式为:
M(x)=
+
+....+
+
其中,
=0或1,x的幂次对应于码元的位置。
所谓编码就是根据k位信息元,计算出与这k为信息位码元相关的r为监督码元,形成(n,k)(n=k+r)格式的码字才C(x),C(x)就是要发送的码元序列。
C(x)的码字结构如图1所示。
r(x):
n-k为校验码元
M(x):
k为信息码元
图1CRC码结构
2.3CRC编码步骤
(1)将信息多项式M(x)左移r=n-k位,即M(x)乘以
得
M(x);
(2)将
M(x)除以生成多项式g(x),得余式r(x)。
r(x)为CRC校验码多项式,相应r位监督码元;
(3)码字C(x)=
M(x)+r(x)。
3.源代码
其生成多项式为:
g(x)=
+
+
+1,其代码如下。
modulecrc(crc_reg,crc,d,calc,init,d_valid,clk,reset);
inputcalc,init,d_valid,clk,reset;input[7:
0]d;
outputreg[15:
0]crc_reg;outputreg[7:
0]crc;wire[15:
0]next_crc;
always@(posedgeclk,posedgereset)
begin
if(reset)begincrc_reg<=16'h0000;crc<=8'h00;end
elseif(init)begincrc_reg<=16'h0000;crc<=8'h00;end
elseif(calc&d_valid)
begincrc_reg<=next_crc;
crc<=~{next_crc[8],next_crc[9],next_crc[14],next_crc[15]};
end
elseif(~calc&d_valid)
begincrc_reg<={crc_reg[7:
0],8'h00};
crc<=~{crc_reg[0],crc_reg[1],crc_reg[2],crc_reg[3],crc_reg[4],crc_reg[5],crc_reg[6],crc_reg[7]};
end
end
assignnext_crc[0]=crc_reg[12]^d[7]^crc_reg[8]^d[3];
assignnext_crc[1]=crc_reg[13]^d[6]^d[2]^crc_reg[9];
assignnext_crc[2]=d[5]^crc_reg[14]^d[1]^crc_reg[10];
assignnext_crc[3]=d[4]^crc_reg[15]^d[0]^crc_reg[11];
assignnext_crc[4]=crc_reg[12]^d[3];
assignnext_crc[5]=crc_reg[12]^crc_reg[13]^d[7]^crc_reg[8]^d[2]^d[3];
assignnext_crc[6]=crc_reg[13]^d[6]^crc_reg[14]^d[1]^d[2]^crc_reg[9];
assignnext_crc[7]=d[5]^crc_reg[14]^crc_reg[15]^d[0]^d[1]^crc_reg[10];
assignnext_crc[8]=d[4]^crc_reg[15]^d[0]^crc_reg[0]^crc_reg[11];
assignnext_crc[9]=crc_reg[12]^crc_reg[1]^d[3];
assignnext_crc[10]=crc_reg[13]^d[2]^crc_reg[2];
assignnext_crc[11]=crc_reg[3]^crc_reg[14]^d[1];
assignnext_crc[12]=crc_reg[12]^crc_reg[4]^d[7]^crc_reg[15]^d[0]^crc_reg[8]^d[3];
assignnext_crc[13]=crc_reg[13]^d[6]^crc_reg[5]^d[2]^crc_reg[9];
assignnext_crc[14]=d[5]^crc_reg[14]^crc_reg[6]^d[1]^crc_reg[10];
assignnext_crc[15]=d[4]^crc_reg[15]^d[0]^crc_reg[7]^crc_reg[11];
endmodule
4.特殊器件的介绍
4.1CPLD器件介绍
CPLD是ComplexProgrammableLogicDevice的缩写,它是有最早的PLD器件发展形成的高密度可编程逻辑器件,它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点。
CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。
其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。
许多公司都开发出了CPLD可编程逻辑器件。
比较典型的就是Altera、Lattice、Xilinx世界三大权威公司的产品。
如Altera公司的MAXII器件,就是其极具代表性的一类CPLD器件,是有史以来功耗最低、成本最低的CPLD。
MAXIICPLD基于突破性的体系结构,在所有CPLD系列中,其单位I/O引脚的功耗和成本都是最低的。
Altera公司的MAX7000A系列器件是高密度、高性能的EPLD,它是基于第二代MAX结构,采用CMOSEPROM工艺制造的。
该系列的器件具有一定得典型性,其他结构都与此结构非常的类似。
它包括逻辑阵列块、宏单元、扩展乘积项、可编程连线阵列和IO控制部分。
由于大多数CPLD是基于乘积项的“与或”结构,故适合设计组合逻辑电路。
4.2FPGA器件介绍
FPGA(Field-ProgrammableGateArray)可以达到比PLD更高的集成度,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展起来的,具有更复杂的布线结构和逻辑实现。
PLD器件和FPGA的主要区别在于PLD是通过修改具有固定内连电路得逻辑功能来进行编程,而FPGA是通过修改一根或多根分割宏单元的基本功能块的内连线的布线来进行编程。
它一般由可嵌入式阵列块(EAB)、逻辑阵列块(LAB)、快速互联通道(FastTrack)、IO单元(IOE)组成。
AlteraCycloneII采用全铜层、低K值、1.2伏SRAM工艺设计,裸片尺寸被尽可能最小的优化。
采用300毫米晶圆,以TSMC成功的90nm工艺技术为基础,CycloneII器件提供了4,608到68,416个逻辑单元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。
CycloneII器件扩展了FPGA在成本敏感性、大批量应用领域的影响力,延续了第一代Cyclone器件系列的成功。
由于FPGA是基于查找表(LUT)结构的器件,且每个LAB由10个LE组成,一个LE由LUT和寄存器组成,适合于时序逻辑电路的设计。
5.系统仿真及调试
5.1仿真
通过QuartusII软件,我们进行了仿真,其功能仿真波形如下图:
图7-1功能仿真图
通过QuartusII软件,我们进行了仿真,其时序仿真波形如下图:
5.2调试
在QuartusII软件中,通过对所设计的硬件描述语言代码进行波形仿真后,达到了预期效果,于是,我们在该软件上进行下载配置设置。
在Assignments菜单下选中Devices,在Family栏选择ACEX1K,选中EPX74OLC44-12器件。
再在Assignments菜单下选中Pins按照相应要求对管脚进行锁定。
调试过程为在线调试。
在通过调试中,我们发现了很多问题,现归纳如下:
在软件上能实现仿真的程序不一定在硬件电路上就能运行,原因有很多,这里是由于电路中的时钟频率太快,若不增加一个分频电路,灯闪烁时间太快,肉眼无法观察,故设计了一个20MHZ到2HZ的分频电路。
调试中的实际问题需要考虑,。
若同时发生几个事件,我们需要优先响应的事件是什么。
通过分析我们知道,在电路设计中则是利用带优先级的IF语句来控制输入信号即可。
由于分频的运算很大,故增加分频电路后,在QuartusII软件中则不能进行正确的仿真,可以直接将程序下载到电路板上去调试。
6.心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
通过这次课程设计,不仅增强了我们的实践动手能力,也让我们对课堂上所学到的理论知识的理解加深了许多,这给我们提供了一个在学习生活中很难得的理论联系实际的机会。
能够借此机会了解到部分EDA技术的知识和学习运用其中一种硬件描述语言VHDL编程实现各种常用器件的功能,这是在哪堂讲课上都得不到的一笔财富。
这次课程设计的顺利完成了,我觉得自己在不仅在EDA方面有了很大的进步,更让我懂得了如何学习,以及如何将学到的知识付诸实践。
还让我学会了,在做程序设计时,或其他各方面,都应该先整体考虑,纵观全局,考虑好各个方面的问题,再来实践。
另一方面我们也发现了在平时学习过程中难于发现的许多缺点跟不足。
比如实践机会过少,所学的理论知识不能灵活运用,在遇到实际的问题时无法正确处理;再者在课堂上获得的专业知识过于浅显,很多的有关基本操作原理、操作方法都理解不了;课外知识了解的也过少,导致在课程设计初期,面对完全陌生的设计课题无从下手,不知所措。
这就提醒我们在平时的学习生活中不能一味埋头于面前的课本知识,毕竟当今社会竞争越发激烈,而学校能教授的东西有限,要想在人才市场中脱颖而出就只能靠我们自己。
当然,在学习之余我们更应该积极参加各种有关专业知识的实践活动和比赛,巩固所学理论,多注意培养初步的实际工作能力和专业技术能力,这样在以后的工作岗位上不会显得那么仓促与生疏。
参考文献
[1]谢自美.电子线路设计(第二版)[M].华中科技大学出版社.2000
[2]卢毅编著.VHDL与数字电路设计[M].北京.科技大学出版.2001
[3]侯佰亨,顾新编著.VHDL硬件描述语言与实际应用[M].西安.西安电子科社.2000
[4]康华光陈大钦.电子技术基础模拟部分(第四版)[M].高等教育出版社.1987
[5](美)J.Bhasker.VerilogHDL硬件描述语言[M].机械工业出版社.2000
[6]周明德.微型计算机系统原理及应用(第四版)[M].清华大学出版社.2002
[7]张洪润等.电子线路及应用.北京.科学出版社.2002
[8]杨宝清.实用电路手册.北京.机械工业出版社.2002
课程设计评分表
东华理工大学长江学院
课程设计评分表
学生姓名:
班级:
学号:
课程题目:
基于FPGA的1602液晶屏试验设计
项目内容
满分
实评
选
题
能结合所学课程知识、有一定的能力训练。
符合选题要求
(5人一题)
10
工作量适中,难易度合理
10
能
力
水
平
能熟练应用所学知识,有一定查阅文献及运用文献资料能力
10
理论依据充分,数据准确,公式推导正确
10
能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等
10
能体现创造性思维,或有独特见解
10
成
果
质
量
总体设计正确、合理,各项技术指标符合要求。
10
说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰
10
设计说明书栏目齐全、合理,符号统一、编号齐全。
格式、绘图、表格、插图等规范准确,符合国家标准
10
有一定篇幅,字符数不少于5000
10
总分
100
指导教师评语:
指导教师签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 1602 液晶屏 试验 设计