版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 硬件描述语言课程设计 题 目 : 基于 Verilog 的 DDS 设计与显示 学院:自动化工程学院 专业:信号与信息处理 年级:2012 级 姓名 :黄山 2013 年 1 月 19 日 1. 设计要求 设计一个 DDS 信号发生器,能够产生三角波,要求频率、相位可调。实现 VGA显示波形和参数。要求用 DE2-70开发板完成。 设计要求: 、 DDS信号发生器设计要求: (1) 频率两档可调; (2) 峰峰值两档可调; 、 VGA波形和字符显示设计要求: (1) 用红色显示 2 个周期波形; (2) 在屏幕下方显示字符库。 2. 设计原理及分析 一) DDS原理(以正弦信号为例) 对于正
2、弦信号发生器,它的输出可以用下式来描述: Sout A sin(2 foutt)= Asin( ) () 其中, SOUT 是指该信号发生器的输出信号波形, fOUT 指输出信号对应的频率。 上式的表述对于时间 t 是连续的, 为了用数字逻辑实现该表达式, 必须进行离散 化处理,用基准时钟 clk 进行抽样,令正弦信号的相位 为 2 f outt () 在一个 clk 周期 Tclk ,相位 的变化量为 2 f outTclk2 f out / f clk ) 为了对 进行数字量化,把 2切割为 2N由此,每份 clk 周期的相位增量 用量化值 () 且 B 为整数。 f out N B ou
3、t 2N fCLK ) 显然,信号发生器的输出可描述为: Soutk A sin( B k 1 +B ) () 其中 K-1 指前一个 clk 周期的相位值,同样得出 Bk 1 k 1 2N 22 由上面的推导可以看出,只要对相位的量化值进行简单的累加运算,就可以 得到正弦信号的当前相位值,为用于累加的相位增量量化值 B 决定了信号的输 出频率 f OUT,并呈现简单的线性关系。 直接数字合成器 DDS就是根据上述原理而设计的数控频率合成器, 主要由相 位累加器、相位调制器、正弦 ROM查找表、和 DAC构成。如图 1 中相位累加器、 相位调制器、正弦ROM查找表是 DDS结构中的数字部分,
4、由于具有数控频率合成 的功能,可称为 NOC(Numerically Controlled Oscillators) 。 图 1 DDS 信号发生器结构 二)VGA显示原理 常见的计算机显示器有 CRT( Cathode Ray Tube ,阴极射线管)显示器和液晶 显示器,本次设计针对 CRT显示。 CRT中的阴极射线枪发出电子束打在涂有荧光 粉的荧光屏上, 产生 RGB三基色, 合成一个彩色像素。 用逐行扫描的方式显示图 像。扫描从屏幕左上方开始,从左到右,从上到下,进行扫描。每扫完一行,电 子束回到屏幕的左边下一行的起始位置,在这期间, CRT对电子束进行消隐,每 行结束时,用行同步信号
5、进行行同步; 扫描完所有行, 用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描 场逆程 扫描轨迹 正程轨迹图 其中蓝色 行正程,红色 1.VGA显示标准 图 2 扫描轨迹 行逆程;正程显示(实线) ,逆程消隐(虚线) VGA标准共有 5个信号: R(红色)、G(绿色)、B(蓝色)、HS(行同步)、VS (场同步) 支持 640*480 分辨率 图 3 VGA 显示标准(行) 表 1 行扫描时序 行扫描时序(单位:像素,即输出一个像素的时间) Ta Tb Tc Td Te Tf Tg 时间 96 40 8 640 8 8 800 图 4 VGA 显示标准(场)
6、表 2 场扫描时序 场扫描时序(单位:行,即输出一行的时间) Ta Tb Tc Td Te Tf Tg 时间 2 25 8 480 8 2 525 VGA显示标准 时钟频率: 25.175MHz(输出像素的频率) 行频: 31469Hz 场频: 59.94Hz (每秒图像刷新频率 , 约 60Hz) 2. 时序处理 分别将场同步信号和行同步信号做时间近似处理 表 3 对行同步做近似处理 行扫描时序(单位: us) Ta Tb Tc Td Te Tf Tg 时间 3.8 1.6 0.3 25.4 0.3 0.3 前项之和 5.7us 26us 表 4 对场同步做近似处理 场扫描时序(单位:行)
7、Ta Tb Tc Td Te Tf Tg 时间 2 25 8 480 8 2 525 作近似处理 2 忽略 480 忽略 482 这样,便可通过计数分频得到行同步信号和场同步信号。 下面以开发板的 50Mhz 时钟信号为例,得到 32Khz 的行同步信号和 64hz 的长同步信号 图 5 时序处理图 三) 波形显示原理 要显示波形,需要将波形数据存入存储器(简称 wave_RAM)。wave_RAM中可 以写入读出波形数据。下面将以幅值为 256 的正弦波为例,阐明波形显示原理 图 6 波形显示结构图 每个时钟沿到来,从存储器中读出一个数,通过判断 x_cnt 与 addr 的关系 以及 y_
8、cnt 与 data 的关系是否满足条件, 控制屏幕上以 x_cnt 和 y_cnt 为坐标 的像素点的颜色值。 其中,x_cnt 与 addr 的关系以及 y_cnt 与 data 的关系如下 图 7 所示。 图 7 波形显示像素位置与存储器地址之间关系 x_cnt 与存储器地址对应;若高度等于数据值,则该处颜色为红色 关键算法如下:若在 (m,n) 处开始显示波形 当 x_cnt=m 时, addr=0 若 y_cnt=n-data ,则 rgb=010; 当 x_cnt=m+1 时, addr=1 若 y_cnt=n-data ,则 rgb=010; 当 x_cnt=m+i 时, add
9、r=i 若 y_cnt=n-data ,则 rgb=010; 四)字符显示原理 要显示字母、数字、符号、汉字等,需要自建字库(以后简称Char_ROM)。 Char_ROM中存放字模数据。字模尺寸自行设定,例如英文字母、数字等可设置 为 16行*8 列像素,汉字可设置为 16行*16 列像素。 图 8 字符库端口图 1. 字模库设计 以 16 行*8 列的字模 1 的设计及存储为例。 图 9 字模库设计举例 字库容量:地址线与所有字符所占列数(决定于字符数量)有关,数据线与一个 字符所占行数有关。该例中数据线位数为 16bit, 地址为 2bit 。 2. 字符显示思路: 1)确定屏幕显示起始
10、位置,屏幕显示起始位置由行列计数值决定。 2)求 Char_ROM地址 Char_ROM起始地址由所要显示的字符决定 (可将地址用宏定义的方法 与字符关联)。 3)读取该地址对应的数据 4)确定数据位和像素位置的关系 数据位和像素位置的关系由行计数值、 起始行数、 字符所占行数决定。 5)显示颜色, RGB赋值 若数据为 1,则对应位置上的 RGB赋值为字符色,否则 RGB值赋值为背 景色。 至此,DDS及 VGA显示的原理介绍结束, 下面开始进行系统设计及程序编写仿真。 三、系统设计实现 由于实验时间有限, 理,整体设计思路如下图 在实际设计时并未对所生成波形做移相与改变幅值的处 图 10
11、系统设计思路 条件判断赋 10 所示。 一) 参数设计 本次实验中所生成的正弦波共采样 256个点,存储器采用 8 位地址线,数据 为 16bit 。设 N为 18位,M为地址线位数为 8 位,频率字 B =(000000010000000000) 2,则当输入时钟为 vga_clk=25Mhz 时,由 DDS原理部分公式可推知当输出 DDS 输出频率 f OUT=100Khz。 由于显示屏幕大小为 640*480,需要显示两个周期的波形共 256*2=512 个点, 设置屏幕显示横向范围为 50到 561,纵向范围为 100到 300;字符显示范围为横 向 50 到 305,纵向 310 到
12、 325。 二) 各模块实现程序及仿真结果 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 BK0; wire 17:0 BK1; wire 17:0 BK2; wire 17:0 BK3; wire 7:0 addr; wire 7:0 Q0; wire 7:0 Q1; reg 7:0 Q2; assign
13、 BK0=17b000000010000000000; assign BKI2 = BK217:10;/ 取 N 位的高 M 位 DFF32 DDF1 (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 仿真结
14、果如下图 11 所示 图 11 DDS 模块仿真结果 2.vga 显示模块 module ddsvga (vga_clk,clk,hs,vs,blank_n,red, green, blue, sync_n); input clk; output hs,vs; output blank_n; output9:0 red; output9:0 green; output9: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_di
15、v; wire 7:0 addr; 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; reg 4:0 cc;/hang tong bu reg 8:0 ll;/chang tong bu reg 3:1 grbp; div_2 div_2(clk,clk_div); ROMsin ROM(addr,clk,data); /testchar t
16、estchar(addrchar,clk,datachar); assign vga_clk=clk_div; assign grb2=(grbp2) assign grb3=(grbp3) assign grb1=(grbp1) always (posedge clk) begin if (fs=53) fs=0; else fs=(fs+1b1); end assign fclk=fs5; always (posedge fclk) begin if (cc=29) cc=5b00000; else cc=cc+1b1; end assign cclk=cc4; always (posed
17、ge cclk) begin if (ll=481) ll=9b0; else ll23) hs1=1b0; else hs1479) vs1=1b0; else vs1=1b1; end always ( posedge vga_clk) if(blank_n) begin if(xcc=639) xcc=0; else xcc=xcc+1b1; end else xcc=10d200 if (y_cnt=9d300-data) grbp=3b001; else grbp=3b000; end else begin addr1=3b000; grbp = 9d100 end end wire 3:0 dis_bit=10d115-y_cnt; always (posedge clk_div) /数据位 begin grbp=9d100 /RGB 赋值 else grbp = 3b000; e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市公务员2025年面试模拟试卷
- 初中学籍管理规章制度
- 初中物理看完这些自动化原理图豁然开朗
- 初中生植树节演讲稿
- 初中生学生劳动实践简报范文
- 2024-2025 学年成都市小学五年级历史期中易错点突破模拟卷及答案
- 2025年药店招聘试题及答案文库
- 河南省公务员2025年面试热点分析预测卷
- 2025年隧道检测技术试题及答案
- 2025年孵化厂电工试题及答案
- 化粪池平时管理制度
- 护士长竞聘面试题(含答案)
- 陪玩俱乐部合同协议
- 废铁回收协议书范本
- 电弧增材制造技术及其应用
- 甘肃陇南市金陇矿业开发有限公司招聘笔试题库2025
- 重症医学科个案护理查房
- 外贸企业如何提升运营效率与管理质量
- 尊享会员合同:全方位权益保障协议
- T-CRHA 088-2024 病理免疫组织化学检测质控品要求
- 自发性气胸的护理常规
评论
0/150
提交评论