《第12章数字设计实例课件.ppt》由会员分享,可在线阅读,更多相关《第12章数字设计实例课件.ppt(44页珍藏版)》请在三一办公上搜索。
1、第12章 数字设计实例,12.1 基于FPGA实现点阵式液晶显示控制12.2 基于CPLD实现字符液晶显示控制12.3 VGA彩条信号发生器12.4 VGA图像显示控制器设计12.5 异步串行接口(UART)设计12.6 直接数字频率合成器(DDS)12.7 等精度频率计12.8 FIR数字滤波器12.9 CRC校验码,内容,数字设计实例,12.1 基于FPGA实现点阵式液晶显示控制,GDM12864的结构及指令,GDM12864A原理简图,“写数据”时序图,控制指令功能表,顶层设计及状态分配,顶层设计,用状态机来进行设计。设置5个状态,分别是空闲状态“Idle”,写页面地址状态“Xpage”
2、,写列地址状态“Yline”,写数据状态“Data”,显示状态“Display”。当处于Xpage状态时,rs=0,rw=0,按照前面介绍的命令格式“1 0 1 1 1 P2 P1 P0”将页面地址送上数据总线(P2 P1 P0表示页面地址)。当处于Yline状态时,rs=0,rw=0,将列地址“0 1 C5 C4 C3 C2 C1 C0”送上数据总线(C5 C4 C3 C2 C1 C0代表0至63的列地址)。当处于Data状态时,rs=1,rw=0,依次将ROM中的显示数据送上数据总线。将8个页面全部扫描过一遍后,进入Display状态,rs=0,rw=0,将命令“00111111”送上数据
3、总线。,液晶控制,字符液晶由点阵字符液晶显示器件和专用的行、列驱动器、控制器及必要的连接件装配而成,可显示数字和英文字符。字符液晶本身具有字符发生器,显示容量大,功能丰富,一般最少可显示1行8个或l行16个字符,每个字符由57、58或511的一组像素点阵排列构成,每个字符间有一点的间隔,每行间也有一行的间隔,12.2 基于CPLD实现字符液晶显示控制,CPLD与字符液晶HS162的接口典型电路,HS162读写控制,状态机设计及源代码,HS162-4液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的,为了方便控制,可以采用状态机进行设计。在设计中设置8个状态,分别是空闲状态“IDLE”
4、,设置CGRAM状态“SETCGRAM”,工作方式设置状态“SETFUNCTION”,输入方式设置状态“SWITCHMODE”,光标归位状态“RETURNCURSOR”,字符移位状态“SHIFT”,写RAM状态“WRITERAM”。,12.3 VGA彩条信号发生器,VGA显示器采用光栅扫描方式,即轰击荧光屏的电子束在CRT显示器上从左到右、从上到下做有规律的移动,其水平移动受水平同步信号HSYNC控制,垂直移动受垂直同步信号VSYNC控制。扫描方式一般分为逐行扫描和隔行扫描,这里采用逐行扫描。完成一行扫描的时间称为水平扫描时间,其倒数称为行频率,完成一帧(整屏)扫描的时间称为垂直扫描时间,其倒
5、数称为场频,又称刷新率。VGA工业标准要求的时钟频率如下:时钟频率(Clock frequency)25.175MHz(像素输出的频率)行频(Line frequency)31469Hz场频(Field frequency)59.94Hz,颜色编码,一个象素点可有多种颜色,由表示该象素点的二进数确定,这里每个象素点我们采用3位二进制数表示:分别为三基色信号R、G、B。因此只可表示8种颜色,如表所示。,颜色编码,VGA行扫描时序,VGA场扫描时序,VGA时序,行扫描时序要求(单位:像素,即输出一个像素Pixel的时间间隔),场扫描时序要求(单位:行,即输出一行Line的时间间隔),根据以上的行、
6、场扫描时序要求,可设置两个计数器,一个是行扫描计数器hcnt,进行模800计数;另一个是场扫描计数器vcnt,进行模525计数。行扫描计数器的驱动时钟频率(像素输出的频率)按照VGA工业标准为25.175MHz。场扫描计数器以行同步信号HS为驱动时钟,当HS的下降沿到来时进行计数。设置完计数器后,就可对行图像H_Td和场图像V_Td所对应的640480个点赋值。,12.4 VGA图像显示控制器设计,VGA图像显示控制器结构框图,本例在VGA显示器上显示了一幅128128点的图像,每个像素点依然使用3比特量化。因此ROM的存储单元数目为16384,即地址线宽度为14比特,数据线宽度为3比特。增加
7、了一个图像位置移动控制部分,使得图像在屏幕范围内成45度角移动,撞到边缘后变向,类似于屏保。很显然,由于量化的比特数较少,显示出的图像只能看出大体的形状轮廓,若想提高图像的质量,必须增加对三基色R、G、B分别量化的比特数,而后再分别通过D/A转换器输出。,三基色分别采用8比特表示,三基色分别采用1比特表示,VGA图像显示控制器顶层设计,12.5 异步串行接口(UART)设计,基本的UART通信只需要两条信号线:RXD和TXD,TXD是UART的发送端,RXD是UART的接收端,接收与发送全双工工作。UART是异步通信方式,发送方和接收方分别有各自独立的时钟,传输的速率由双方约定,使用起至式异步
8、协议。,起止式异步协议,起止式异步协议的特点是一个字符一个字符地进行传输,字符之间没有固定的时间间隔要求,每个字符都以起始位开始,以停止符结束。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5到8比特数据位组成,接着是一位校验位(也可以没有校验位),最后是一位(或一位半、二位)停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平,这样就保证起始位开始处一定有一个下降沿。,数据接收,数据接收:接收的首要任务是能够正确找到数据的位置。这主要靠检测数据的起始位和停止位来实现。起始位是一位0,它作为联络信号附加进发送信息,因为空闲位都为高电平,所以当接收数据线的信号突然变
9、为低电平时,告诉接收端数据的到来。一个字符接收完毕后,对数据进行校验(若数据包含奇偶校验位),最后检测停止位,以确认数据接收完毕。,UART接收示意图,由于传输中有可能会产生毛刺,接收端极有可能将毛刺误认为是起始位,所以要对检测到的下降沿进行判别。一般采用如下的方法:取接收端的时钟频率是发送频率的16倍频,当检测到一个下降沿后,在接下来的16个周期内检测数据线上“0”的个数,若“0”的个数超过8个或者10(根据具体情况设置),则认为是起始位到来,否则认为起始位没有到来,继续检测传输线,等待起始位。,起始位的检测,数据发送:数据的发送实际上就是按照帧格式将寄存器中的并行数据转为串行数据,为其加上
10、起始位和停止位,以一定的波特率进行传输。波特率可以有多种选择,如9600bits/s,14400bits/s,19200bits/s,38400bits/s等,数据发送,12.6 直接数字频率合成器,1、DDS原理与顶层设计,DDS的基本结构如图所示,主要由相位累加器、加法器、波形存储ROM、D/A转换器组成。,DDS结构图,其中K为频率控制字,P为相位控制字。设fc为参考时钟频率,N为相位累加器的字长,M为ROM数据位和D/A转换器的字长。相位累加器在时钟fc的控制下以步长K累加,输出的N位二进制码经过处理(截断处理)后与相位控制字相加,结果作为ROM的输入地址,对波形ROM寻址。ROM中输
11、出的M位的幅度码经D/A转换后就可得到合成波形。合成信号的波形取决于ROM中存储的幅度码,因此可以用DDS产生任意波形。,DDS顶层设计,图中加法器add32和寄存器reg32构成了相位累加器,加法器add12和寄存器reg12构成了相位调制器。乘法器mult用于调节DDS的步进频率,频率控制字和相位控制字分别由单片机控制键盘输入,锁相环输出40MHz的频率。波形存储器sin_rom的输出和D/A转换器相连。,2、ROM初始化数据文件生成,初始化数据文件格式有2种:Memory Initialization File(.mif)格式文件,或Hexadecimal(Intel-Format)Fi
12、le(.hex)格式文件。生成初始化数据文件的方法通常有下面几种。(1)建立.mif格式文件(2)建立hex格式文件(3)其他方法,3、宏功能模块的定制,选择ROM数据线地址线宽度,添加数据文件,4、使用嵌入式逻辑分析仪在线测试,Quartus II软件具有SignalTap II嵌入式逻辑分析仪,它提供了一种对器件进行实时测试的手段。SignalTap II嵌入式逻辑分析仪可以随设计文件一起下载到目标芯片中,用以捕捉目标芯片中设计者感兴趣的信号节点处的信息,而不影响芯片的正常工作。SignalTap II将测得的样本信号暂存于目标芯片的片内RAM(如ESB、M4K)中,然后通过器件的JTAG
13、端口和ByteBlaster II编程线将采得的信息传出,送入计算机进行分析。,(1)新建SignalTap II文件,SignalTap II编辑窗,(2)调入待测信号,为了调入待测信号名,在下栏的空白处双击,即弹出如图所示的“Node Finder”对话框,根据需要在“Filter”中选择感兴趣的类,然后单击“List”按钮,即在左栏出现与此工程相关的所有信号,可将欲查看的信号调入SignalTap II信号观察窗口。,(3)设置信号,单击全屏按钮和窗口左下角的“Setup”选项卡,即出现如图13.14所示的全屏编辑窗口。,(4)SignalTap II文件存盘,选择菜单“Assignme
14、nts”中的“Settings”,在Category栏中选择“SignalTap II Logic Analyzer”.在“SignalTap II File”栏中选中已存盘的SignalTap II文件名,并选中“Enable SignalTap II Logic Analyzer”,单击“OK”按钮。,(5)编译下载,选择菜单“Processing”中的“Start Compilation”,启动全程编译。编译结束后,SignalTap II的观察窗通常会自动打开,若没有打开,可选择菜单“Tools”中的“SignalTap II Logic Analyzer”打开。打开试验开发系统的电源
15、,连接JTAG编程接口,设定通信模式。通过“Setup”按钮选择硬件通信模式:ByteBlaster II或ByteBlaster MV。然后单击下方的“Device”栏的Scan Chain按钮,对试验板进行扫描。如果在栏中出现FPGA的型号,表示系统JTAG通信正常,可以进行下载。最后在SOF Manager中选择下载文件,单击下载图标,在左上角观察下载信息。,(6)启动SignalTap II进行测试,单击Instance名“sin_stp”,再单击“Autorun Analysis”按钮,即启动了SignalTap II,通常会自动弹出“Data”页,这时就能在SignalTap II数据窗口中观察来自FPGA内部的实时信号。,12.8 FIR数字滤波器,直接型结构FIR滤波器的实现方案,12.9 CRC校验码,习 题,12-1 设计一个先进先出存储器(FIFO),其尺寸为8256,端口包括时钟信号、读、写使能信号、数据输入、输出信号和存储器状态指示信号(空、满)等。12-2 设计并实现一个15阶的FIR滤波器。12-3 设计实现一个8点的FFT运算模块。12-4 设计一个VGA图像显示控制器,将北京奥运福娃图片显示在VGA显示器上。可增加必要的动画效果。,