您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > EDA技术与Verilog设计王金明版第13章
第13章数字设计实例◆直接数字频率合成器◆基于FPGA实现点阵液晶显示控制◆UART异步串行接口◆VGA彩条信号发生器◆VGA图像显示控制器◆信道编译码器◆CRC校验码内容数字设计实例13.1直接数字频率合成器13.1.1DDS原理与顶层设计DDS的基本结构如图所示,主要由相位累加器、加法器、波形存储ROM、D/A转换器组成。DDS结构图其中K为频率控制字,P为相位控制字。设fc为参考时钟频率,N为相位累加器的字长,M为ROM数据位和D/A转换器的字长。相位累加器在时钟fc的控制下以步长K累加,输出的N位二进制码经过处理(截断处理)后与相位控制字相加,结果作为ROM的输入地址,对波形ROM寻址。ROM中输出的M位的幅度码经D/A转换后就可得到合成波形。合成信号的波形取决于ROM中存储的幅度码,因此可以用DDS产生任意波形。DDS顶层设计图中加法器add32和寄存器reg32构成了相位累加器,加法器add12和寄存器reg12构成了相位调制器。乘法器mult用于调节DDS的步进频率,频率控制字和相位控制字分别由单片机控制键盘输入,锁相环输出40MHz的频率。波形存储器sin_rom的输出和D/A转换器相连。13.1.2ROM初始化数据文件生成初始化数据文件格式有2种:MemoryInitializationFile(.mif)格式文件,或Hexadecimal(Intel-Format)File(.hex)格式文件。生成初始化数据文件的方法通常有下面几种。(1)建立.mif格式文件(2)建立hex格式文件(3)其他方法13.1.3宏功能模块的定制选择ROM数据线地址线宽度添加数据文件13.1.4使用嵌入式逻辑分析仪在线测试QuartusII软件具有SignalTapII嵌入式逻辑分析仪,它提供了一种对器件进行实时测试的手段。SignalTapII嵌入式逻辑分析仪可以随设计文件一起下载到目标芯片中,用以捕捉目标芯片中设计者感兴趣的信号节点处的信息,而不影响芯片的正常工作。SignalTapII将测得的样本信号暂存于目标芯片的片内RAM(如ESB、M4K)中,然后通过器件的JTAG端口和ByteBlasterII编程线将采得的信息传出,送入计算机进行分析。(1)新建SignalTapII文件SignalTapII编辑窗(2)调入待测信号为了调入待测信号名,在下栏的空白处双击,即弹出如图所示的“NodeFinder”对话框,根据需要在“Filter”中选择感兴趣的类,然后单击“List”按钮,即在左栏出现与此工程相关的所有信号,可将欲查看的信号调入SignalTapII信号观察窗口。(3)设置信号单击全屏按钮和窗口左下角的“Setup”选项卡,即出现如图13.14所示的全屏编辑窗口。(4)SignalTapII文件存盘选择菜单“Assignments”中的“Settings”,在Category栏中选择“SignalTapIILogicAnalyzer”.在“SignalTapIIFile”栏中选中已存盘的SignalTapII文件名,并选中“EnableSignalTapIILogicAnalyzer”,单击“OK”按钮。(5)编译下载选择菜单“Processing”中的“StartCompilation”,启动全程编译。编译结束后,SignalTapII的观察窗通常会自动打开,若没有打开,可选择菜单“Tools”中的“SignalTapIILogicAnalyzer”打开。打开试验开发系统的电源,连接JTAG编程接口,设定通信模式。通过“Setup”按钮选择硬件通信模式:ByteBlasterII或ByteBlasterMV。然后单击下方的“Device”栏的ScanChain按钮,对试验板进行扫描。如果在栏中出现FPGA的型号,表示系统JTAG通信正常,可以进行下载。最后在SOFManager中选择下载文件,单击下载图标,在左上角观察下载信息。(6)启动SignalTapII进行测试单击Instance名“sin_stp”,再单击“AutorunAnalysis”按钮,即启动了SignalTapII,通常会自动弹出“Data”页,这时就能在SignalTapII数据窗口中观察来自FPGA内部的实时信号。13.2FPGA实现点阵液晶显示控制13.2.1GDM12864的结构及指令GDM12864A原理简图“写数据”时序图指令名称控制信号控制代码RSR/WD7D6D5D4D3D2D1D0显示开关设置000011111D显示起始行设置0011L5L4L3L2L1L0页面地址设置0010111P2P1P0列地址设置0001C5C4C3C2C1C0读取状态字01busy0on/offreset0000写显示数据10数据控制指令功能表13.2.1顶层设计及状态分配顶层设计用状态机来进行设计。设置5个状态,分别是空闲状态“Idle”,写页面地址状态“Xpage”,写列地址状态“Yline”,写数据状态“Data”,显示状态“Display”。当处于Xpage状态时,rs=0,rw=0,按照前面介绍的命令格式“10111P2P1P0”将页面地址送上数据总线(P2P1P0表示页面地址)。当处于Yline状态时,rs=0,rw=0,将列地址“01C5C4C3C2C1C0”送上数据总线(C5C4C3C2C1C0代表0至63的列地址)。当处于Data状态时,rs=1,rw=0,依次将ROM中的显示数据送上数据总线。将8个页面全部扫描过一遍后,进入Display状态,rs=0,rw=0,将命令“00111111”送上数据总线。液晶控制13.3UART异步串行接口基本的UART通信只需要两条信号线:RXD和TXD,TXD是UART的发送端,RXD是UART的接收端,接收与发送全双工工作。UART是异步通信方式,发送方和接收方分别有各自独立的时钟,传输的速率由双方约定,使用起至式异步协议。0/10/10/10/10/10/10/1校验位0/1空闲位起始位停止位数据位起止式异步协议起止式异步协议的特点是一个字符一个字符地进行传输,字符之间没有固定的时间间隔要求,每个字符都以起始位开始,以停止符结束。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5到8比特数据位组成,接着是一位校验位(也可以没有校验位),最后是一位(或一位半、二位)停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平,这样就保证起始位开始处一定有一个下降沿。数据接收数据接收:接收的首要任务是能够正确找到数据的位置。这主要靠检测数据的起始位和停止位来实现。起始位是一位0,它作为联络信号附加进发送信息,因为空闲位都为高电平,所以当接收数据线的信号突然变为低电平时,告诉接收端数据的到来。一个字符接收完毕后,对数据进行校验(若数据包含奇偶校验位),最后检测停止位,以确认数据接收完毕。空闲位……起始位数据位UART接收示意图由于传输中有可能会产生毛刺,接收端极有可能将毛刺误认为是起始位,所以要对检测到的下降沿进行判别。一般采用如下的方法:取接收端的时钟频率是发送频率的16倍频,当检测到一个下降沿后,在接下来的16个周期内检测数据线上“0”的个数,若“0”的个数超过8个或者10(根据具体情况设置),则认为是起始位到来,否则认为起始位没有到来,继续检测传输线,等待起始位。起始位的检测数据发送:数据的发送实际上就是按照帧格式将寄存器中的并行数据转为串行数据,为其加上起始位和停止位,以一定的波特率进行传输。波特率可以有多种选择,如9600bits/s,14400bits/s,19200bits/s,38400bits/s等数据发送13.4VGA彩条信号发生器VGA接口,也叫D-Sub接口,是计算机与外部显示设备之间的通用接口,主要向显示设备提高R、G、B三原色信号和行、场同步信号。VGA显示器采用光栅扫描方式,即轰击荧光屏的电子束在CRT显示器上从左到右、从上到下做有规律的移动,其水平移动受水平同步信号HSYNC控制,垂直移动受垂直同步信号VSYNC控制。扫描方式一般分为逐行扫描和隔行扫描,这里采用逐行扫描。完成一行扫描的时间称为水平扫描时间,其倒数称为行频率,完成一帧(整屏)扫描的时间称为垂直扫描时间,其倒数称为场频,又称刷新率。VGA工业标准要求的时钟频率如下:时钟频率(Clockfrequency)25.175MHz(像素输出的频率)行频(Linefrequency)31469Hz场频(Fieldfrequency)59.94Hz颜色黑蓝绿品红青黄白R00001111G00110011B01010101颜色编码一个象素点可有多种颜色,由表示该象素点的二进数确定,这里每个象素点我们采用3位二进制数表示:分别为三基色信号R、G、B。因此只可表示8种颜色,如表所示。颜色编码VGA行扫描时序VGA场扫描时序VGA时序行扫描时序要求(单位:像素,即输出一个像素Pixel的时间间隔)场扫描时序要求(单位:行,即输出一行Line的时间间隔)场同步头场图像场周期对应位置V_TfV_TaV_TbV_TcV_TdV_TeV_Tg时间(Lines)222584808525行同步头行图像行周期对应位置H_TfH_TaH_TbH_TcH_TdH_TeH_Tg时间(Pixels)896408640880013.5VGA图像显示控制器VGA图像显示控制器结构框图本例在VGA显示器上显示了一幅128×128点的图像,每个像素点依然使用3比特量化。因此ROM的存储单元数目为16384,即地址线宽度为14比特,数据线宽度为3比特。增加了一个图像位置移动控制部分,使得图像在屏幕范围内成45度角移动,撞到边缘后变向,类似于屏保。很显然,由于量化的比特数较少,显示出的图像只能看出大体的形状轮廓,若想提高图像的质量,必须增加对三基色R、G、B分别量化的比特数,而后再分别通过D/A转换器输出。三基色分别采用8比特表示三基色分别采用1比特表示VGA图像显示控制器顶层设计13.7CRC校验码循环冗余校验码(CyclinRedundancyChecksum,CRC)也是常用的信道编码方式,广泛应用于帧校验。习题12-1设计一个先进先出存储器(FIFO),其尺寸为8×256,端口包括时钟信号、读、写使能信号、数据输入、输出信号和存储器状态指示信号(空、满)等。12-2设计一个移位相加乘法器,其设计思路是:乘法通过逐项移位相加来实现,根据乘数的每一位是否为1进行计算,若为1则将被乘数移位相加。12-3改变第4节中FIR滤波器的指标,设计并实现一个15阶的FIR滤波器。12-4设计实现一个8点的FFT运算模块。12-5为本章第1节的DDS信号发生器增加输出波形幅度可调功能。
本文标题:EDA技术与Verilog设计王金明版第13章
链接地址:https://www.777doc.com/doc-3198890 .html