FPGA报告实验5_第1页
FPGA报告实验5_第2页
FPGA报告实验5_第3页
FPGA报告实验5_第4页
FPGA报告实验5_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南科技大学实验报告课程名称基于FPGA的现代数字系统设计实验名称基于处理器核的LCD驱动电路设计姓名学号班级通信1301指导教师刘桂华西南科技大学信息工程学院制2基于处理器核的LCD驱动电路设计一、实验目的1、认识和了解SOPC设计技术;2、熟悉基于PICOBLAZE内核的SOPC系统设计流程;3、熟悉和掌握字符型LCD屏的操作时序。二、原理说明本次实验将完成的设计是一个基于PICOBLAZE的SOPC系统,其示意图如图21所示。图程序存储器(ROM)PICOBLAZE处理器核输入端口输出端口FPGA时钟异步复位多路拨码输入LEDLCD211、PICOBLAZE微处理器核PICOBLAZE是一个8位RISC(精简指令集计算机)微处理器,是由VHDL语言开发的软处理器内核包,已经被专门设计和优化,在XILINX公司的VIRTEX、SPARTANII系列以上FPGA与COOLRUNNERII系列以上的CPLD器件设计中以IP核的方式提供,使用是免费的。在XC3S500E的FPGA中,只用到了96个SILICE,也就是只占用到5的逻辑资源。PICOBLAZE执行一条命令需要2个时钟周期,在SPARTAN3ESTARTERKIT板上以50MHZ时钟为例,PICOBLAZE也能达到25MIPS的性能。PICOBLAZE起初命名为KCPSM,是CONSTANTKCODEDPROGRAMMABLESTATEMACHINE的简称,意为常量编码可编程状态机。现在已有三个版本(1)KCPSM,其支持类型有VIRTEX,VIRTEXE,SPARTANII和SPARTANIIEFPGA;(2)KCPSM2,其支持类型有VIRTEXII,VIRTEXIIPROFPGA;(3)KCPSM3,其支持类型有SPARTAN3,VIRTEX4,VIRTEXII,VIRTEXIIPRO,VIRTEX5,SPARTAN6,VIRTEX6FPGA。PICOBLAZE8位微处理器内部结构如图22所示。PICOBLAZE处理器IPCORE由全局寄存器、计算逻辑单元(ALU)、程序流控制标志和复位逻辑、输入/输出(I/O)、中断控制器等几大部分构成。PICOBLAZE提供了49个不同指令,16个寄存器(CPLD为8个),256个直接或间接的可设定地址的端口,1个可屏蔽的、速率为35MIPS的中断。它的性能超过了传统独立元器件组成的微处理器,而且成本低,使得PICOBLAZE在数据处理和控制算法领域有着广泛的应用前景。由于可编程部分也完成嵌入,PICOBLAZE可与子程序和外围设备结合起来完成特殊的设计。3图22PICOBLAZE是由VHDL语言开发的小型8位软处理器内核包,其汇编器是简单的命令行式可执行文件KCPSM3EXE,用汇编语言编写的程序经过编译后放入FPGA的块RAM存储器区。KCPSM3支持程序的指令可以到1024(使用一个BRAM),多个KCPSM3处理器可以用于处理不同的任务。图23是PICOBLAZE的应用框架示意图。表21列出了PICOBLAZE的各个端口并给予了说明。图23表21端口功能I/O端口功能I/OINSTRUCTION18位指令输入INPUTADDRESS10位地址线OUTPUTIN_PORT8位输入接口INPUTPORT_IDI/O地址控制OUTPUTINTERRUPT中断输入INPUTWRITE_STROBE写控制OUTPUTRESET复位INPUTREAD_STROBE读控制OUTPUTCLK时钟输入INPUTINTERRUPT_ACK中断响应OUTPUTINSTRUCTION18位指令输出OUTPUTOUT_PORT8位输出接口OUTPUT2、2X16字符液晶显示器及其驱动液晶显示器以其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。液晶显示器通常可分为两大类,一类是点阵型,另一类是字符型。点阵型液晶通常面积较大,4可以显示图形;而一般的字符型液晶只有两行,面积小,只能显示字符和一些很简单的图形,简单易控制且成本低。SPARTAN3ESTARTER开发板上使用了一个216字符LCD,其内嵌一个SITRONIXST7066U图形控制器,功能与三星的S6A0069X或KS0066U、HITACHI的HD44780(国内使用较广)和SMOS的SED1278一样。与FPGA的连接关系如图24所示。图24该控制器有三个内部存储空间DDRAM、CGROM和CGRAM,每个都有专门用途。送数据给这些空间之前必须初始化。(1)显示数据RAM(DDRAM)存储要送显的字符编码。绝大多数应用中,都是与DDRAM相结合的。存储在DDRAM中的字符编码所涉及的特定的字符位图要么存在CGROM字符设置中,要么存在用户自定义的CGRAM的字符设置中。图25给出了显示器32位字符位置的默认地址。字符的最上行存储在地址0X00与0X0F之间。第二行的字符存储在地址0X40与0X4F之间。图25从物理上讲,DDRAM一共有80个字符位置,每行有40个字符。位置0X10到0X27和0X50到0X67之间的地址用来存储其它非显示数据。此外,这些位置也可以存储只有使用控制器的显示移位功能才能显示的字符。往DDRAM读或写之前,DDRAM地址命令得初始化地址计数器。写DDRAM数据使用写数据到CGRAM或DDRAM命令,读DDRAM使用从CGRAM或DDRAM命令读数据。DDRAM地址计数器要么在读或写之后保持常数,要么自动增加1或自动减1。(2)字符产生器RAMCGRAM提供空间给8位的自定义字符位图。每个自定义字符位由8行位图的5个点组成。本实验未使用到CGRAM。(3)字符产生器ROM(CGROM)包括每个事先定好的字符的字体位图。字符ROM内置了192个常用字符,存储有ASCII英文字符和日本字符,英语/罗马字符存储在CGROM相应的ASCII编码地址中。如图26,字符码0X000X0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),0X200X7F为标准的ASCII码,0XA00XFF为日文字符和希腊文字符,其余字符码(0X100X1F及0X800X9F)没有定义。5字符编码存储在DDRAM中,每个字符的位置与CGROM的位置按顺序对应。例如,0X53的一个16进制的字符编码存储在DDRAM中的位置显示字符是“S”。0X53最上面的高4位等同于DB740101和最低的低4位等同于DB300011。字符“S”就显示在屏幕上了。图26下面举例说明如何在LCD对应位置上显示所需的字符。假设要在第1行第2列写入字符“A“,这时先写入第1行第2列对应的DDRAM的地址01H,然后再往DDRAM中写入“A“的字符码0X41(参见图26字符与字符码对照表),这样LCD的第1行第2列就会出现字符A了。也就是说,DDRAM的内容对应于把要显示的字符地址,而DDRAM的地址就对应于显示字符的位置。总而言之,希望在LCD的某一特定位置显示某一特定字符,一般要遵循“先指定地址,后写入内容”的原则;但如果希望在LCD上显示一串连续的字符(单词等),并不需要每次写字符码之前都指定一次地址,这是因为液晶控制模块中有一个计数器叫地址计数器ACADDRESSCOUNTER。地址计数器的作用是负责记录写入DDRAM数据的地址,或从DDRAM读出数据的地址。该计数器的作用不仅仅是“写入”和“读出”地址,它还能根据用户的设定自动进行修改。比如,如果规定地址计数器在“写入DDRAM内容”这一操作完成后自动加1,那么在第1行第1列定写入一个字符后,如果不对字符显示位置DDRAM地址重新设置,再写入一个字符,则这个新的字符会出现在第1行第2列。LCD的读写控制时序如图27所示。图中说明了向LCD写操作建立、保持允许的最小时间。DF_D的数据值,寄存器选择信号(LCD_RS)以及读/写(LCD_RW)控制信号必须建立并在使能信号LCD_E转向高电平之前至少稳定40NS。使能信号必须保留高电平230NS或更长时间。在许多应用中,LCD_RW信号可以永远置低,因为FPGA一般不会从显示屏读取数据。6图27上电后,显示屏必须初始化建立所需的通信协议。该初始化步骤简单,完全适合高效的8位PICOBLAZE嵌入式控制器。初始化之后,PICOBLAZE控制器除了简单驱动显示屏外,还用来更为复杂的控制或计算。在初始化显示屏和建立通信之后,所有的命令和数据以8位形式传送给字符显示屏用2个连续的4位传送。每个8位传送必须分为2个4位,其间隔时间至少1US,如图28所示。先传高半位,再传低半位。一个8位的写操作在下个通信之前必须间隔至少40US。在清屏命令之后,该延时必须增至164MS。7三、实验步骤1、构建一个工程名为LCD1的工程。2、将提供的所有文件拷贝到建立的工程路径下。把参考的例程文件KCPSM3V、TUTORIALV添加到工程中。分析各程序之间的结构关系和顶层代码实现的功能。83、执行KCPSM3EXE,编译SOFTWAREPSM,生成新的SOFTWAREV文件。将其添加到工程中。94、打开KCPSM3V,阅读分析代码,结合DIGILENTSPARTAN3ESTARTER开发板说明确定各端口应锁定的FPGA引脚,编写约束文件,完成引脚锁定。5、综合、实现、生成下载配置文件。6、启动IMPACK完成下载配置,观察LCD和LED的显示情况,分析功能完成效果。7、用文本编辑器打开参考的软件代码程序SOFTWAREPSM,阅读代码,找到其中控制显示内容的部分,并进行修改。要求修改后,能在LCD上的第一排显示你姓名的汉语拼音,第二排显示你的学号和班级号。10对SOFTWAREPSM文件分析可知,开始时便将字符地址自已成了以该字符名命名的常量,所以在改写文件时很方便的进行了改写,如上图所示。8、重新执行KCPSM3EXE,编译修改后的SOFTWAREPSM,生成新的SOFTWAREV文件,替换原工程中SOFTWAREV文件。9、综合、实现、生成下载配置文件。1110、启动IMPACK完成下载配置,观察LCD和LED的显示情况,分析功能完成效果。LCD液晶显示屏显示了名字的拼音以及学号专业。四、思考题1基于FPGA的嵌入式系统设计中用什么语言实现了用LCD显示姓名班级,这种实现方式和FPGA用硬件描述语言实现LCD显示由什么区别4、答采用汇编语言编写实现。由于在ISE下无法编译,所以用KCPSM3EXE,编译SOFTWAREPSM,生成新的SOFTWAREV文件。与硬件描述语言,汇编语言与硬件描述语言的行为级与流程级建模接近,都具有一些C语言的特点,较抽象地描述了硬件电路功能,而硬件描述语言中的门级建模则与硬件电路非常接近,直观地体现了硬件电路。这是汇编语言做不到的。122在实验中汇编程序设计了很多延时程序有什么作用这些延时程序若用FPGA的硬件描述语言来实现应该如何设计答延时是为了满足设计需求,满足LED时序操作条件,如下第一个图所示LEDC处于写状态时时序,当输入有效数据时,根据时序参数要求,使能端LED_E至少需要延时40US才能置为高电平,故需要一个延时。同样如图二所示,需要延时1US。若用硬件描述语言实验,可以用时钟信号下的计数器实现对时间的延时控制。DELAY_1USLOADS0,DELAY_1US_CONSTWAIT_1USSUBS0,01JUMPNZ,WAIT_1USRETURNDELAY_40USLOADS1,2840X1US40USWAIT_40USCALLDELAY_1USSUBS1,0113JUMPNZ,WAIT_40USRETURN五、实验体会及心得1、通过实验,我对SOPC设计技术有了深刻的认识,体会到了它在设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论