ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:369.32KB ,
资源ID:15336844      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15336844.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Verilog的DDS设计与显示综述Word格式文档下载.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于Verilog的DDS设计与显示综述Word格式文档下载.docx

1、2.设计原理及分析一)DDS原理(以正弦信号为例)对于正弦信号发生器,它的输出可以用下式来描述:()其中,SOUT 是指该信号发生器的输出信号波形,fOUT 指输出信号对应的频率。上式的表述对于时间t是连续的,为了用数字逻辑实现该表达式,必须进行离散化处理,用基准时钟clk进行抽样,令正弦信号的相位为()在一个clk周期Tclk,相位的变化量为()为了对进行数字量化,把2切割为2N由此,每份clk周期的相位增量用量化值()且为整数。()显然,信号发生器的输出可描述为:()其中K-1指前一个clk周期的相位值,同样得出()由上面的推导可以看出,只要对相位的量化值进行简单的累加运算,就可以得到正弦

2、信号的当前相位值,为用于累加的相位增量量化值决定了信号的输出频率fOUT,并呈现简单的线性关系。直接数字合成器DDS就是根据上述原理而设计的数控频率合成器,主要由相位累加器、相位调制器、正弦ROM查找表、和DAC构成。如图1中相位累加器、相位调制器、正弦ROM查找表是DDS结构中的数字部分,由于具有数控频率合成的功能,可称为NOC(Numerically Controlled Oscillators)。图1 DDS信号发生器结构二)VGA显示原理常见的计算机显示器有CRT( Cathode Ray Tube ,阴极射线管)显示器和液晶显示器,本次设计针对CRT显示。CRT中的阴极射线枪发出电子

3、束打在涂有荧光粉的荧光屏上,产生RGB三基色,合成一个彩色像素。用逐行扫描的方式显示图像。扫描从屏幕左上方开始,从左到右,从上到下,进行扫描。每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。图2 扫描轨迹其中蓝色 行正程,红色 行逆程;正程显示(实线),逆程消隐(虚线)1.VGA显示标准VGA标准共有5个信号:R(红色)、G(绿色)、B(蓝色)、HS(行同步)、VS(场同步)支持640*480分辨率 图3 VGA显示标准(行)

4、表1 行扫描时序行扫描时序(单位:像素,即输出一个像素的时间)TaTbTcTdTeTfTg时间96408640800图4 VGA显示标准(场) 表2 场扫描时序场扫描时序(单位:行,即输出一行的时间)225480525VGA显示标准时钟频率:25.175MHz(输出像素的频率)行频:31469Hz场频:59.94Hz (每秒图像刷新频率, 约60Hz)2.时序处理分别将场同步信号和行同步信号做时间近似处理表3 对行同步做近似处理us)3.81.60.325.4前项之和5.7us26us表4 对场同步做近似处理行)作近似处理忽略482这样,便可通过计数分频得到行同步信号和场同步信号。下面以开发板

5、的50Mhz时钟信号为例,得到32Khz的行同步信号和64hz的长同步信号图5 时序处理图三)波形显示原理要显示波形,需要将波形数据存入存储器(简称wave_RAM)。wave_RAM中可以写入读出波形数据。下面将以幅值为256的正弦波为例,阐明波形显示原理。图6 波形显示结构图每个时钟沿到来,从存储器中读出一个数,通过判断x_cnt与addr的关系以及y_cnt 与data的关系是否满足条件,控制屏幕上以x_cnt 和y_cnt为坐标的像素点的颜色值。其中,x_cnt与addr的关系以及y_cnt 与data的关系如下图7所示。图7 波形显示像素位置与存储器地址之间关系x_cnt与存储器地址

6、对应;若高度等于数据值,则该处颜色为红色。关键算法如下:若在(m,n)处开始显示波形当x_cnt=m时,addr=0 若y_cnt=n-data,则rgb=010;当x_cnt=m+1时,addr=1 当x_cnt=m+i时,addr=i四)字符显示原理要显示字母、数字、符号、汉字等,需要自建字库(以后简称Char_ROM)。Char_ROM中存放字模数据。字模尺寸自行设定,例如英文字母、数字等可设置为16行*8列像素,汉字可设置为16行*16列像素。图8 字符库端口图1. 字模库设计 以16行*8列的字模1的设计及存储为例。图9 字模库设计举例字库容量:地址线与所有字符所占列数(决定于字符数

7、量)有关,数据线与一个字符所占行数有关。该例中数据线位数为16bit,地址为2bit。2.字符显示思路:1)确定屏幕显示起始位置,屏幕显示起始位置由行列计数值决定。2)求Char_ROM地址Char_ROM起始地址由所要显示的字符决定(可将地址用宏定义的方法与字符关联)。3)读取该地址对应的数据4)确定数据位和像素位置的关系数据位和像素位置的关系由行计数值、起始行数、字符所占行数决定。5)显示颜色,RGB赋值若数据为1,则对应位置上的RGB赋值为字符色,否则RGB值赋值为背景色。至此,DDS及VGA显示的原理介绍结束,下面开始进行系统设计及程序编写仿真。三、系统设计实现由于实验时间有限,在实际

8、设计时并未对所生成波形做移相与改变幅值的处理,整体设计思路如下图10所示。图10 系统设计思路一) 参数设计本次实验中所生成的正弦波共采样256个点,存储器采用8位地址线,数据为16bit。设N为18位,M为地址线位数为8位,频率字=(000000010000000000)2,则当输入时钟为vga_clk=25Mhz时,由DDS原理部分公式可推知当输出DDS输出频率fOUT=100Khz。由于显示屏幕大小为640*480,需要显示两个周期的波形共256*2=512个点,设置屏幕显示横向范围为50到561,纵向范围为100到300;字符显示范围为横向50到305,纵向310到325。二) 各模块

9、实现程序及仿真结果1. DDS模块程序如下:module DDS1(CLK ,CTR,Q); input CLK; input CTR; /input 17:0 BK0; /频率设置字 /input 3:0 A; /幅值设置字 /input 2:0 BKI0; /初相位设置字 output 7:0 Q; /DDS数字量输出 wire 17:0 BK1;0 BK2;0 BK3; wire 7:0 addr;0 Q0;0 Q1; reg 7:0 Q2;assign BK0=17b000000010000000000; assign BKI2 = BK217:10;/取N位的高M位 DFF32 DD

10、F1 (CLK,BK0,BK1); ADD ADD1(CLK,BK1,BK2,BK3); DFF32 DDF2 (CLK,BK3,BK2); /相位累加器 ROM10 ROM1 (BKI2,CLK,Q0);/正弦ROM查找表 ROM10tri ROM2 (BKI2,CLK,Q1); always (posedge CLK) if (CTR) Q2 = Q0; else Q2 = Q1; assign Q = Q2;endmodule仿真结果如下图11所示图11 DDS模块仿真结果2.vga显示模块module ddsvga (vga_clk,clk,hs,vs,blank_n,red, gre

11、en, blue, sync_n);input clk;output hs,vs;output blank_n;output9:0 red;0 green;0 blue;output sync_n;output vga_clk;wire r,g,b;wire 3:1 grb;wire vs,hs,sync_n_r;wire fclk,cclk;wire clk_div;wire 7:0 data;wire 4:0 addrchar;wire 15:0 datachar;integer i;reg 7:0 addr1;reg 4:0 addr1char;reg hs1,vs1;wire 8:0 y_cnt;reg 9:0 xcc;reg 5:0 fs;0 cc;/hang tong bureg 8:0 ll;/chang tong bureg 3:1 grbp;div_2 div_2(clk,clk_div);ROMsin ROM(addr,clk,data);/testchar testchar(addrchar,clk,datachar);assign vga_clk=clk_div;assign grb2=(grbp2)&hs1&vs1;assign grb3=(grbp3)&assign grb1=(grbp1)&always

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1