当前位置:文档之家› 基于Verilog的DDS设计与显示

基于Verilog的DDS设计与显示

基于Verilog的DDS设计与显示
基于Verilog的DDS设计与显示

硬件描述语言课程设计

题目:基于Verilog的DDS设计与显示

学院:自动化工程学院

专业:信号与信息处理

年级:2012级

姓名:黄山

2013年1 月19 日

1.设计要求

设计一个DDS 信号发生器,能够产生三角波,要求频率、相位可调。实现VGA 显示波形和参数。要求用DE2-70开发板完成。 设计要求:

一、DDS 信号发生器设计要求:

(1) 频率两档可调; (2) 峰峰值两档可调;

二、VGA 波形和字符显示设计要求:

(1) 用红色显示2个周期波形; (2) 在屏幕下方显示字符库。

2.设计原理及分析

一)DDS 原理(以正弦信号为例)

对于正弦信号发生器,它的输出可以用下式来描述:

(1)

其中,S OUT 是指该信号发生器的输出信号波形,f OUT 指输出信号对应的频率。上式的表述对于时间t 是连续的,为了用数字逻辑实现该表达式,必须进行离散化处理,用基准时钟clk 进行抽样,令正弦信号的相位θ为

t

f out πθ2=

(2)

在一个clk 周期Tclk ,相位θ的变化量为

clk

out clk out f f T f /22ππθ==?

(3)

为了对θ?进行数字量化,把2π切割为2N 由此,每份clk 周期的相位增量θ?用量化值

(4) 且θ?B 为整数。

sin(2)=sin()

out out S A f t A πθ=22N

B θ

θπ

??≈?2N

out CLK

f B f θ?≈

?

(5)

显然,信号发生器的输出可描述为:

(6)

其中θK-1指前一个clk 周期的相位值,同样得出

(7)

由上面的推导可以看出,只要对相位的量化值进行简单的累加运算,就可以

得到正弦信号的当前相位值,为用于累加的相位增量量化值θ?B 决定了信号的输出频率f OUT ,并呈现简单的线性关系。

直接数字合成器DDS 就是根据上述原理而设计的数控频率合成器,主要由相位累加器、相位调制器、正弦ROM 查找表、和DAC 构成。如图1中相位累加器、相位调制器、正弦ROM 查找表是DDS 结构中的数字部分,由于具有数控频率合成的功能,可称为NOC(Numerically Controlled Oscillators)。

BK0

BK1

BK2

BK3

BKI0

BKI1BKI2

BKI3

Q0

MULT

A

幅值输入

Q

图1 DDS 信号发生器结构

二)VGA 显示原理

常见的计算机显示器有CRT ( Cathode Ray Tube ,阴极射线管)显示器和液晶显示器,本次设计针对CRT 显示。CRT 中的阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生RGB 三基色,合成一个彩色像素。用逐行扫描的方式显示图像。扫描从屏幕左上方开始,从左到右,从上到下,进行扫描。每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT 对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,

1sin(+)

k outk S A B B θθ-?=N

k θπ

θ

B k

221

1

?=

--

并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。

图2 扫描轨迹

其中蓝色

– 行正程,红色 – 行逆程;正程显示(实线),逆程消隐(虚线)

1.VGA 显示标准

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显示标准(场)

表2 场扫描时序

场扫描时序(单位:行,即输出一行的时间)

Ta Tb Tc Td Te Tf Tg 时间225848082525

VGA显示标准

时钟频率:25.175MHz(输出像素的频率)

行频:31469Hz

场频:59.94Hz (每秒图像刷新频率, 约60Hz)

2.时序处理

分别将场同步信号和行同步信号做时间近似处理

表3 对行同步做近似处理

行扫描时序(单位:us)

Ta Tb Tc Td Te Tf Tg

时间 3.8 1.60.325.40.30.3前项之和

5.7us26us

表4 对场同步做近似处理

场扫描时序(单位:行)

Ta Tb Tc Td Te Tf Tg

时间225848082525

作近似处理2忽略480忽略482

这样,便可通过计数分频得到行同步信号和场同步信号。下面以开发板的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 与存储器地址对应;若高度等于数据值,则该处颜色为红色。 关键算法如下:若在(m,n)处开始显示波形

26分频

2分频

482分频

50Mhz 25Mhz

31Khz 64hz clk vga_clk HS VS 系统时钟

像素时钟

行同步信号

场同步信号

当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时,addr=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)确定屏幕显示起始位置,屏幕显示起始位置由行列计数值决定。

2)求Char_ROM地址

Char_ROM起始地址由所要显示的字符决定(可将地址用宏定义的方法

与字符关联)。

3)读取该地址对应的数据

4)确定数据位和像素位置的关系

数据位和像素位置的关系由行计数值、起始行数、字符所占行数决定。

5)显示颜色,RGB 赋值

若数据为1,则对应位置上的RGB 赋值为字符色,否则RGB 值赋值为背景色。 至此,DDS 及VGA 显示的原理介绍结束,下面开始进行系统设计及程序编写仿真。

三、系统设计实现

由于实验时间有限,在实际设计时并未对所生成波形做移相与改变幅值的处理,整体设计思路如下图10所示。

Sin_ROM

计数分频

计数分频

Char_ROM

条件判断赋值

条件判断

+

D

Q

>

>

>

频率字

vga_clk

N

N

M

addr

addrchar

RGB

HS

VS xcc

clk

字符输出

DDS 发生器,波形输出

图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到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 BK0=17'b000000010000000000;

assign BKI2 = BK2[17: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

仿真结果如下图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;

output[9:0] red;

output[9:0] green;

output[9: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] 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 testchar(addrchar,clk,datachar);

assign vga_clk=clk_div;

assign grb[2]=(grbp[2])&hs1&vs1;

assign grb[3]=(grbp[3])&hs1&vs1; assign grb[1]=(grbp[1])&hs1&vs1;

always @(posedge clk) begin

if (fs==53) fs<=0;

else fs<=(fs+1'b1);

end

assign fclk=fs[5];

always @(posedge fclk) begin

if (cc==29) cc<=5'b00000;

else cc<=cc+1'b1;

end

assign cclk=cc[4];

always @(posedge cclk) begin

if (ll==481) ll<=9'b0;

else ll<=ll+1'b1;

end

assign y_cnt=ll;

//生成行同步,场同步信号

always @(cc or ll) begin

if (cc>23) hs1<=1'b0;

else hs1<=1'b1;

if (ll>479) vs1<=1'b0;

else vs1<=1'b1;

end

always @( posedge vga_clk)

if(blank_n)

begin

if(xcc==639) xcc<=0;

else xcc<=xcc+1'b1;

end

else xcc<=0;

always@(xcc,y_cnt,data)

begin

if (xcc>=10'd200 && xcc<=10'd455) begin

addr1<=xcc-8'd200;

if (y_cnt==9'd300-data) grbp<=3'b001;

else grbp<=3'b000;

end

else

begin

addr1<=3'b000;

grbp <=3'b000;

end

end

/****************/

always @(posedge clk_div)

begin

if(y_cnt >= 9'd100 && y_cnt <= 9'd115)

begin

if (xcc == 10'd500)

addr1char <= 0; //求地址

else if (xcc >= 10'd501 && xcc <= 10'd516 )

addr1char<=addr1char+1'b1;

end

end

wire [3:0] dis_bit=10'd115-y_cnt;

always @ (posedge clk_div) //数据位

begin

grbp<=3'b000;

if (y_cnt>=9'd100 && y_cnt<=9'd115 && xcc>=10'd501 && xcc<=10'd516 ) begin

if(datachar[dis_bit])

grbp <= 3'b010; //RGB赋值

else grbp <= 3'b000;

end

end

/****************/

assign addr=addr1;

assign addrchar=addr1char;

assign hs=hs1;

assign vs=vs1;

assign r=grb[2];

assign g=grb[3];

assign b=grb[1];

assign blank_n=hs&vs;

assign sync_n_r=1'b0;

assign sync_n=sync_n_r;

assign red={10{r&blank_n}};

assign green={10{g&blank_n}};

assign blue={10{b&blank_n}};

endmodule

最终显示结果如图12所示

图12 结果显示

基于FPGA的DDS设计

一、实验名称:基于F P G A的D D S信号源设计 二、技术规范: 1.实验目标: 设计一个直接数字频率合成(DDS,Direct Digital Synthesis),DDS是一种新型的频率合成技术。DDS 技术是一种把一系列数字形式的信号通过DAC 转换成模拟信号的合成技术。 DDS 技术具有频率切换时间短,频率分辨率高,频率稳定度高,输出信号的频率和相位可以快速切换,输出相位可连续,并且在改变时能够保持相位的连续,很容易实现频率、相位和幅度的数字控制。它在相对带宽、频率转换时间、相位连续性、高分辨率以及集成化等一系列性能指标方面远远超过了传统频率合成技术。 因此在现代电子系统及设备的频率源设计中,尤其在通信领域,直接数字频率合成器的应用越来越广泛。 2.实现功能: 本实验最后将设计出一个具有频率控制和相位移控制功能的DDS。 3.引脚: 本实验有三个输入端口,8位的频率控制字端口,分别接8个开关按键,8位的相位控制字端口,分别接另外的8个开关按键,系统时钟输入端口;一个8位输出端口,接D/A的输入端口。FPGA板上的时钟频率为50MHz,本实验将其10分频后得到5MHz再使用。 三.总体设计方案; 原理: 实验采用目前使用最广泛的一种DDS 方式是利用高速存储器作查找表,然后通过高速DAC 输出已经用数字形式存储的波形。 图1:DDS 系统的基本原理图 图1中虚方框部分是DDS 的核心单元,它可以采用CPLD/FPGA 来实现。图中的相位累加器由N位全加器和N位累加寄存器级联而成,可对频率控制字的二进制码进行累加运算,是典型的反馈电路。 频率控制字M和相位控制字分别控制DDS 输出正(余)弦波的频率和相位。每来一个时钟脉冲,相位寄存器以步长M递增。相位寄存器的输出与相位控制字相加,其结果作为正(余)弦查找表的地址。正(余)弦查找表的数据存放在ROM中,内部存有一个周期的正弦波信号的数字幅度信息,每个查找表的地址对应于正弦波中0°~360°范围内的一个相位点。查找表把输入的址信息映射成正(余)弦波的数字幅度信号,同时输出到数模转换器DAC 的输入端,DAC输出的模拟信号经过低通滤波器(LPF),可得到一个频谱纯净的正(余)弦波。 DDS 具体工作过程如下:每来一个时钟脉冲clk,N 位全加器将频率控制数据M 与累加寄存器输出的累加相位数据N 相加,把相加后的结果送至累加寄存器的输入端。累加寄存器一方面将上一时钟周期作用后所产生的新的数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据M 相加;另一方

高速电路设计的经典案例

该文章版权归 smarteebit 所有。若有疑问,请联系 songmin2@https://www.doczj.com/doc/6d1885315.html,
高速数字设计的经典案例若干则
【摘要】 随着这些年半导体工艺突飞猛进的发展, “高速数字设计”对广大硬件工程师来说,已经不再是一 个陌生的词。从航空、雷达到汽车电子,从无线通信到有线接入,甚至在一些低端的嵌入式系统上,高 速数字电路都已经在大行其道。 目前行业内已经有不少关于高速数字电路理论的好文章, 笔者就不在这 上面掺和了。 本文着眼于理论和实际相结合, 所用的素材都来自笔者亲历过的案例, 相信活生生的事实, 比空洞的理论更有说服力,也希望能使入行不久的硬件工程师们得到他们想要的信息,今后少走弯路。 由于不会对理论作过多的阐述, 因此, 本文的阅读对象应该具有一点点高速数字设计的理论基础, 请知。 【关键词】 高速数字设计 高速数字电路 案例
1 信号完整性
什么词汇在高速数字设计中出现得最多?对了,SI(Signal Integrity),也就是信号完整性。信 号完整性问题的表现形式多种多样,主要有如下种类:
图 1 过冲(OVERSHOOT)
图 2 振铃(RING)
图 3 非单调性(NON MONOTONIC)
过冲: 当较快的信号沿驱动一段较长的走线, 而走线拓扑上又没有有效的匹配时, 往往会产生过冲。 过冲带来的问题主要是“1”电平高于接收端器件的输入最大电压值(VIHmax),或“0”电平低于接收端 器件的输入最小电压值(VILmin),这样可能给器件带来潜在的累积性伤害,缩短其工作寿命,从而影响 产品的长期稳定性。
Smarteebit
Page 1 of 17

DDS信号发生器电路设计

1. 信号产生部分 1.1 频率控制字输入模块 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity ddsinput is port(a,b,c,clk,clr:in std_logic; q1,q2,q3,q4,q5:buffer unsigned(3 downto 0)); end ddsinput; architecture a of ddsinput is signal q:std_logic_vector(2 downto 0); begin q<=c&b&a; process(cp,q,clr) begin if clr='1'then q1<="0000";q2<="0000";q3<="0000";q4<="0000";q5<="0000"; elsif clk 'event and clk='1'then

DDS信号信号发生器电路设计 case q is when"001"=>q1<=q1+1; when"010"=>q2<=q2+1; when"011"=>q3<=q3+1; when"100"=>q4<=q4+1; when"101"=>q5<=q5+1; when others=>NULL; end case; end if; end process; end a; 1.2 相位累加器模块 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity xiangwei is port(m:in std_logic_vector(19 downto 0); clk,clr:in std_logic; data:out std_logic_vector(23 downto 0)); end xiangwei; architecture a of xiangwei is signal q:std_logic_vector(23 downto 0); begin process(clr,clk,m,q) begin if clr='1'then q<="000000000000000000000000"; elsif (clk'event and clk='1')then q<=q+m; end if; data<=q; end process; end a;

verilog综合心得

综合:不可综合的运算符:= = = ,!= =,/(除法),%(取余数)。 1、不使用初始化语句。 2、不使用带有延时的描述。 3、不使用循环次数不确定的循环语句,如:forever、while等。 4、尽量采用同步方式设计电路。 5、除非是关键路径的设计,一般不调用门级元件来描述设计的方法,建议采用行为语句来完成设计。 6、用always过程块描述组合逻辑,应在信号敏感列表中列出所有的输入信号。 7、所有的内部寄存器都应该能够被复位,在使用FPGA实现设计时,应尽量使用器件的全局复位端作为系统总的复位。 8、在verilog模块中,任务(task)通常被综合成组合逻辑的形式,每个函数(function)在调用时通常也被综合为一个独立的组合电路模块。 9、用户自定义原语(UDP)是不可综合的,它只能用来建立门级元件的仿真模型。 一般综合工具支持的V erilog HDL结构

移位运算符:V erilog HDL提供向右(>>)及向左(<<)两种运算符,运算符高位或地位一旦移出即予丢弃,其空缺的位则予以补零。 连续赋值语句(assign)、case语句、if…else语句都是可以综合的 initial 语句内若包含有多个语句时,必须以begin end 作聚合;单一的初值赋值,因此并不需以begin end做聚合。 循环(Loops)并不能单独地在程序中存在,而必须在initial和always块中才能使用。initial过程块中的语句仅执行一次,而always块中的语句是不断重复执行的。 编写顶层模块的注意事项 每个端口除了要声明是输入、输出还是双向外,还要声明其数据类型,是连线型(wire)还是寄存器型(reg),如果没有声明则综合器默认为wire型。 1、输入和双向端口不能声明为寄存器型。 2、在测试模块中不需要定义端口。 编写testbentch所归纳的心得

数字电路设计实例

数字电路综合设计案例 8.1 十字路口交通管理器 一、要求 设计一个十字路口交通管理器,该管理器自动控制十字路口两组红、黄、绿三色交通灯,指挥各种车辆和行人安全通过。 二、技术指标 1、交通管理器应能有效操纵路口两组红、黄、绿灯,使两条交叉道路上的车辆交替通行,每次通行时间按需要和实际情况设定。 2、在某条道路上有老人、孩子或者残疾人需要横穿马路时,他们可以举旗示意, 执勤人员按动路口设置的开关,交通管理器接受信号,在路口的通行方向发生转换时,响应上述请求信号,让人们横穿马路,这条道上的车辆禁止通行,即管理这条道路的红灯亮。 3、横穿马路的请求结束后,管理器使道口交通恢复交替通行的正常状态。 三、设计原理和过程: 本课题采用自上而下的方法进行设计。 1.确定交通管理器逻辑功能 ⑴、十字路口每条道路各有一组红、黄、绿灯,用以指挥车辆和行人有序地通行。其中红灯亮表示该条道路禁止通行;黄灯亮表示停车;绿灯亮表示通行。因此,十字路口车辆运行情况有以下几种可能: ①甲道通行,乙道禁止通行; ②甲道停车线以外的车辆禁止通行(必须停车),乙道仍然禁止通行,以便让甲道停车线以内的车辆安全通过; ③甲道禁止通行,乙道通行; ④甲道仍然不通行,乙道停车线以外的车辆必须停车,停车线以内的车辆顺利通行。 ⑵、每条道路的通车时间(也可看作禁止通行时间)为30秒~2分钟,可视需要和实际情况调整,而每条道路的停车时间即黄灯亮的时间为5秒~10秒,且也可调整。 ⑶、响应老人、孩子或残疾人特殊请求信号时,必须在一次通行—禁止情况完毕后, 阻止要求横穿的那条马路上车辆的通行。换句话说,使另一条道路增加若干通行时间。 设S1和S2分别为请求横穿甲道和乙道的手控开关,那么,响应S1或S2的时间必定在甲道通乙道禁止或甲道禁止乙道通两种情况结束时,且不必过黄灯的转换。这种规定是为了简化设计。 由上述逻辑功能,画出交通管理器的示意图如图8-1所示,它的简单逻辑流程图如图8-2所示。示意图中甲道的红、黄、绿灯分别用R、Y、G表示,而乙道的红、黄、绿灯分别用r、y、g表示。简单逻辑流程图中设定通行(禁止)时间为60秒,停车时间为10秒。

详细设计方案_DDS

DDS详细设计方案 1.DDS简介: DDS同DSP(数字信号处理)一样,是一项关键的数字化技术。DDS 是直接数字式频率合成器(Direct Digital Synthesizer)的英文缩写。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。 一块DDS芯片中主要包括频率控制寄存器、高速相位累加器和正弦计算器三个部分(如Q2220)。频率控制寄存器可以串行或并行的方式装载并寄存用户输入的频率控制码;而相位累加器根据频率控制码在每个时钟周期内进行相位累加,得到一个相位值;正弦计算器则对该相位值计算数字化正弦波幅度(芯片一般通过查表得到)。DDS芯片输出的一般是数字化的正弦波,因此还需经过高速D/A转换器和低通滤波器才能得到一个可用的模拟频率信号。 2.DDS规格: Xxx 3.实现原理 DDS的核心部分是相位累加器,相位累加器有一个累加器和相位寄存器组成,它的作用是再基准时钟源的作用下进行线性累加,当产生溢出时便完成一个周期,即DDS的一个频率周期。其中频率字的位宽为K位,作为累加器的一个输入,累加器的另一个输入端位宽为N位(N>K),每来一个时钟,频率字与累加器的另一个输入相加的结果存入相位寄存器,再反馈给累加器,这相当于每来一个时钟,相位寄存器的输出就累加一次,累加的时间间隔为频率字的时间,输入加法器的位宽为(N-K)位,它与同样宽度的相位控制字相加形成新的相位,并以此作为查找表的地址。每当累加器的值溢出一次,输入加法器的值就加一,相应的,作为查找表的地址就加一,而查找表的地址中保存波形的幅度值,这些离散的幅度值经DAC和PLF便课还原为模拟波形。

非常好的Verilog设计经验谈

时序是设计出来的 我的boss有在华为及峻龙工作的背景,自然就给我们讲了一些华为及altera 做逻辑的一些东西,而我们的项目规范,也基本上是按华为的那一套去做。在工作这几个月中,给我感触最深的是华为的那句话:时序是设计出来的,不是仿出来的,更不是湊出来的。 在我们公司,每一个项目都有很严格的评审,只有评审通过了,才能做下一步的工作。以做逻辑为例,并不是一上来就开始写代码,而是要先写总体设计方案和逻辑详细设计方案,要等这些方案评审通过,认为可行了,才能进行编码,一般来说这部分工作所占的时间要远大于编码的时间。 总体方案主要是涉及模块划分,一级模块和二级模块的接口信号和时序(我们要求把接口信号的时序波形描述出来)以及将来如何测试设计。在这一级方案中,要保证在今后的设计中时序要收敛到一级模块(最后是在二级模块中)。什么意思呢?我们在做详细设计的时候,对于一些信号的时序肯定会做一些调整的,但是这种时序的调整最多只能波及到本一级模块,而不能影响到整个设计。记得以前在学校做设计的时候,由于不懂得设计时序,经常因为有一处信号的时序不满足,结果不得不将其它模块信号的时序也改一下,搞得人很郁闷。 在逻辑详细设计方案这一级的时候,我们已经将各级模块的接口时序都设计出来了,各级模块内部是怎么实现的也基本上确定下来了。 由于做到这一点,在编码的时候自然就很快了,最重要的是这样做后可以让设计会一直处于可控的状态,不会因为某一处的错误引起整个设计从头进行。 ==================================================================== 如何提高电路工作频率 对于设计者来说,我们当然希望我们设计的电路的工作频率(在这里如无特别说明,工作频率指FPGA片内的工作频率)尽量高。我们也经常听说用资源换速度,用流水的方式可以提高工作频率,这确实是一个很重要的方法,今天我想进一步去分析该如何提高电路的工作频率。 我们先来分析下是什么影响了电路的工作频率。 我们电路的工作频率主要与寄存器到寄存器之间的信号传播时延及 clock skew有关。在FPGA内部如果时钟走长线的话,clock skew很小,基本上可以忽略, 在这里为了简单起见,我们只考虑信号的传播时延的因素。 信号的传播时延包括寄存器的开关时延、走线时延、经过组合逻辑的时延(这样划分或许不是很准确,不过对分析问题来说应该是没有可以的),要提高电路的工作频率,我们就要在这三个时延中做文章,使其尽可能的小。 我们先来看开关时延,这个时延是由器件物理特性决定的,我们没有办法去改变,所以我们只能通过改变走线方式和减少组合逻辑的方法来提高工作频率。

Saber常见电路仿真实例

Saber常见电路仿真实例 一稳压管电路仿真 (2) 二带输出钳位功能的运算放大器 (3) 三5V/2A的线性稳压源仿真 (4) 四方波发生器的仿真 (7) 五整流电路的仿真 (10) 六数字脉冲发生器电路的仿真 (11) 七分频移相电路的仿真 (16) 八梯形波发生器电路的仿真 (17) 九三角波发生器电路的仿真 (18) 十正弦波发生器电路的仿真 (20) 十一锁相环电路的仿真 (21)

一稳压管电路仿真 稳压管在电路设计当中经常会用到,通常在需要控制电路的最大输入、输出或者在需要提供精度不高的电压参考的时候都会使用。下面就介绍一个简单例子,仿真电路如下图所示: 在分析稳压管电路时,可以用TR分析,也可以用DT分析。从分析稳压电路特性的角度看,DT分析更为直观,它可以直接得到稳压电路输出与输入之间的关系。因此对上面的电路执行DT分析,扫描输入电压从9V到15V,步长为0.1V,分析结果如下图所示: 从图中可以看到,输入电压在9~15V变化,输出基本稳定在6V。需要注意的是,由于Saber仿真软件中的电源都是理想电源,其输出阻抗为零,因此不能直接将电源和稳压管相连接,如果直接连接,稳压管将无法发挥作用,因为理想电源能够输

出足以超出稳压管工作范围的电流。 二带输出钳位功能的运算放大器 运算放大器在电路设计中很常用,在Saber软件中提供了8个运放模板和大量的运放器件模型,因此利用Saber软件可以很方便的完成各种运方电路的仿真验证工作.如下图所示的由lm258构成的反向放大器电路,其放大倍数是5,稳压二极管1N5233用于钳位输出电压. 对该电路执行的DT分析,扫描输入电压从-2V->2V,步长为0.1V,仿真结果如下图所示:

DDS设计实验报告(DOC)

DDS设计实验报告实验名称:直接数字频率合成器 指导老师:花汉兵,姜萍 姓名:陈维兵 学号:114108000808 院系:能源与动力工程学院

目录 目录 (1) 摘要 (2) 正文 一、设计内容 (3) 二、设计原理 (3) 三、设计要求 (5) 四、设计思路以及部分电路图 (6) 五、实验感想 (16) 六、参考书目 (16)

摘要 本文介绍的是数字频率合成器(DDS)的设计以及其附加功能的拓展,附加功能有双通道显示、多波形显示、输出频率测量,另外,本文还介绍了一些在原有数字频率合成器的基础上做一些改进的想法和思路,虽然有的想法并没有实施,但是,作为一种参考也未尝不可。希望本文对读者有所帮助。 关键字:数字频率合成,附加功能,改进想法 Abstract The page introduces the design of the Direct Digital Frequency Synthesizer , which shorts for DDS , and other new more additions of it , the additions includes double-rows vision , wave-patterns vision , measuring of the output frequency , what’s more , this page introduces many more thoughts of improving the system which has been made ,even though the thoughts have not been applied , still they are good references for we and you .Wishing it helpful to you. Keywords: DDS ,addition of the system ,improving thoughts

个人总结FPGA设计中Verilog编程的27条经验

个人总结Verilog编程27条经验 1.强烈建议用同步设计; 2.在设计时总是记住时序问题; 3.在一个设计开始就要考虑到地电平或高电平复位、同步或异步复位、上升沿 或下降沿触发等问题,在所有模块中都要遵守它; 4.在不同的情况下用if和case,最好少用if的多层嵌套(1层或2层比较合 适,当在3层以上时,最好修改写法,因为这样不仅可以reduce area,而且可以获得好的timing); 5.在锁存一个信号或总线时要小心,对于整个design,尽量避免使用latch, 因为在DFT时很难test; 6.确信所有的信号被复位,在DFT时,所有的FlipFlop都是controllable; 7.永远不要再写入之前读取任何内部存储器(如SRAM); 8.从一个时钟到另一个不同的时钟传输数据时用数据缓冲,他工作像一个双时 钟FIFO(是异步的),可以用Async SRAM搭建Async FIFO; 9.在VHDL中二维数组可以使用,它是非常有用的。在VERILOG中他仅仅可以使 用在测试模块中,不能被综合; 10.遵守register-in register-out规则; 11.像synopsys的DC的综合工具是非常稳定的,任何bugs都不会从综合工具中 产生 12.确保FPGA版本与ASIC的版本尽可能的相似,特别是SRAM类型,若版本一致 是最理想的,但是在工作中FPGA版本一般用FPGA自带的SRAM,ASIC版本一般用厂商提供的SRAM; 13.在嵌入式存储器中使用BIST; 14.虚单元和一些修正电路是必需的; 15.一些简单的测试电路也是需要的,经常在一个芯片中有许多测试模块; 16.除非低功耗不要用门控时钟,强烈建议不要在design中使用gate clock; 17.不要依靠脚本来保证设计。但是在脚本中的一些好的约束能够起到更好的性 能(例如前向加法器); 18.如果时间充裕,通过时钟做一个多锁存器来取代用MUX; 19.不要用内部tri-state, ASIC需要总线保持器来处理内部tri-state,如IO cell; 20.在top level中作pad insertion; 21.选择pad时要小心(如上拉能力,施密特触发器,5伏耐压等),选择合适的 IO cell; 22.小心由时钟偏差引起的问题; 23.不要试着产生半周期信号; 24.如果有很多函数要修正,请一个一个地作,修正一个函数检查一个函数; 25.在一个计算等式中排列每个信号的位数是一个好习惯,即使综合工具能做; 26.不要使用HDL提供的除法器; 27.削减不必要的时钟。它会在设计和布局中引起很多麻烦,大多数FPGA有1- 4个专门的时钟通道;

DDS电路设计

DDS 电路设计

摘要 本文介绍了DDS的原理,给出了用Altera Cyclone 1 EP1CQ240C8 FPGA芯片实现直接数字频率合成器的工作原理、设计思路、电路结 构和仿真结果以及频谱纯度分析。 关键词:直接数字频率合成(DDS);现场可编程门阵列(FPGA);相位累 加器 一、DDS原理概述 1、DDS在基本原理 框图如图所示。它主要由标准参考频率源、相位累加器、波形存储器、数/模转换器、 低通平滑滤波器等构成。其中,参考频率源一般是一个高稳定度的晶体振荡器,其输出信号 用于DDS中各部件同步工作。DDS的实质是对相位进行可控等间隔的采样。 为实现全数字化的频率可调的频率合成器,本系统基于FPGA采用Verilog HDL设计而 成直接数字频率合成器(DDS)。 系统由加法器、累加寄存器、波形存储器、D/A转换器、低通滤波器构成。在FPGA 里面做到的是D/A转换器之前的部分。 图一DDS原理图

DDS 系统的核心是相位累加器,它由一个N 位累加器与N 位相位寄存器构成。时钟脉冲每触发一次,累加器便将频率控制数据与相位寄存器输出的累加相位数据相加,然后把相加后的结果送至相位寄存器的数据输入端。相位寄存器将累加器在上一个时钟作用后所产生的新相位数据反馈到累加器的输入端,以使加法器在下一个时钟的作用下继续与频率控制数据相加。这样,相位累加器在参考时钟的作用下将进行线性相位累加,当相位累加器累加满时,就会产生一次溢出,以完成一个周期性的动作,这个周期就是DDS 合成信号的一个频率周期,相位累加器的溢出频率就是DDS 输出的信号频率。 2、DDS 参数计算 相位寄存器每经过2N/M 个f c 时钟后回到初始状态,相应地正弦查询表经过一个循环回到初始位置,整个DDS 系统输出一个正弦波。 输出正弦波频率: 2 N C out f f M ? = 本设计中,N=10,M 为位宽为32的频率控制字,fc=20Mhz 二、DDS 电路结构设计 1、电路描述 接口信号 名称 位宽 方向 描述 备注 freq 32 输入 输入频率字 reset 1 输入 复位 高电平异步复位 clock 1 输入 时钟 上升沿有效 sinout 8 输出 输出波形 2补码格式 2、电路结构

Verilog的135个经典设计实例

【例3.1】4位全加器 module adder4(cout,sum,ina,inb,cin); output[3:0] sum; output cout; input[3:0] ina,inb; input cin; assign {cout,sum}=ina+inb+cin; endmodule 【例3.2】4位计数器 module count4(out,reset,clk); output[3:0] out; input reset,clk; reg[3:0] out; always @(posedge clk) begin if (reset) out<=0; //同步复位 else out<=out+1; //计数 end endmodule 【例3.3】4位全加器的仿真程序 `timescale 1ns/1ns `include "adder4.v" module adder_tp; //测试模块的名字 reg[3:0] a,b; //测试输入信号定义为reg型 reg cin; wire[3:0] sum; //测试输出信号定义为wire型 wire cout; integer i,j; adder4 adder(sum,cout,a,b,cin); //调用测试对象 always #5 cin=~cin; //设定cin的取值 initial begin a=0;b=0;cin=0; for(i=1;i<16;i=i+1) #10 a=i; //设定a的取值 end - 1 -

initial begin for(j=1;j<16;j=j+1) #10 b=j; //设定b的取值 end initial//定义结果显示格式 begin $monitor($time,,,"%d + %d + %b={%b,%d}",a,b,cin,cout,sum); #160 $finish; end endmodule 【例3.4】4位计数器的仿真程序 `timescale 1ns/1ns `include "count4.v" module coun4_tp; reg clk,reset; //测试输入信号定义为reg型 wire[3:0] out; //测试输出信号定义为wire型 parameter DELY=100; count4 mycount(out,reset,clk); //调用测试对象 always #(DELY/2) clk = ~clk; //产生时钟波形 initial begin//激励信号定义 clk =0; reset=0; #DELY reset=1; #DELY reset=0; #(DELY*20) $finish; end //定义结果显示格式 initial $monitor($time,,,"clk=%d reset=%d out=%d", clk, reset,out); endmodule 【例3.5】“与-或-非”门电路 module AOI(A,B,C,D,F); //模块名为AOI(端口列表A,B,C,D,F) input A,B,C,D; //模块的输入端口为A,B,C,D output F; //模块的输出端口为F - 2 -

射频电路设计实例以及一些经常遇见的问

射频电路设计实例以及一些经常遇见的问射频电路设计很多人都会,那么你知道它的一些注意事项吗?在实际电路设计中,会遇到各种奇怪的问题,这就需要自己通过实践来积攒经验。真正实用的技巧是当这些准则和法则因各种设计约束而无法准确地实施时如何对它们进行折衷处理。当然,有许多重要的RF设计课题值得讨论,包括阻抗和阻抗匹配、绝缘层材料和层叠板以及波长和驻波等,在全面掌握各类设计原则前提下的仔细规划是一次性成功设计的保证。 一、RF电路设计的常见问题 1、数字电路模块和模拟电路模块之间的干扰 如果模拟电路(射频)和数字电路单独工作,可能各自工作良好。但是,一旦将二者放在同一块电路板上,使用同一个电源一起工作,整个系统很可能就不稳定。 这主要是因为数字信号频繁地在地和正电源(>3 V)之间摆动,而且周期特别短,常常是纳秒级的。由于较大的振幅和较短的切换时间。使得这些数字信号包含大量且独立于切换频率的高频成分。在模拟部分,从无线调谐回路传到无线设备接收部分的信号一般小于lμV。因此数字信号与射频信号之间的差别会达到120 dB。显然.如果不能使数字信号与射频信号很好地分离。微弱的射频

信号可能遭到破坏,这样一来,无线设备工作性能就会恶化,甚至完全不能工作。 2、供电电源的噪声干扰 射频电路对于电源噪声相当敏感,尤其是对毛刺电压和其他高频谐波。微控制器会在每个内部时钟周期内短时间突然吸人大部分电流,这是由于现代微控制器都采用CMOS工艺制造。因此,假设一个微控制器以lMHz的内部时钟频率运行,它将以此频率从电源提取电流。如果不采取合适的电源去耦,必将引起电源线上的电压毛刺。如果这些电压毛刺到达电路RF部分的电源引脚,严重时可能导致工作失效。 3、不合理的地线 如果RF电路的地线处理不当,可能产生一些奇怪的现象。对于数字电路设计,即使没有地线层,大多数数字电路功能也表现良好。而在RF频段,即使一根很短的地线也会如电感器一样作用。粗略地计算,每毫米长度的电感量约为l nH,433 MHz时10 toni PCB线路的感抗约27Ω。如果不采用地线层,大多数地线将会较长,电路将无法具有设计的特性。 4、天线对其他模拟电路部分的辐射干扰 在PCB电路设计中,板上通常还有其他模拟电路。 例如,许多电路上都有模,数转换(ADC)或数/模转换器(DAC)。射频发送器的天线发出的高频信号可能会到达ADC的模拟淙攵恕R蛭魏蔚缏废呗范伎赡苋缣煜咭谎⒊龌蚪邮誖F信号。如果ADC输入端的处理不合理,RF信号可能在ADC输入的ESD二极管内自激。从而引起ADC偏差。 二、五大经验总结 1、射频电路布局原则 在设计RF布局时,必须优先满足以下几个总原则: (1)尽可能地把高功率RF放大器(HPA)和低噪音放大器(LNA)隔离开来,简单地说,就是让高功率RF发射电路远离低功率RF接收电路;

基于Verilog的DDS设计与显示

硬件描述语言课程设计 题目:基于Verilog的DDS设计与显示 学院:自动化工程学院 专业:信号与信息处理 年级:2012级 姓名:黄山 2013年1 月19 日

1.设计要求 设计一个DDS 信号发生器,能够产生三角波,要求频率、相位可调。实现VGA 显示波形和参数。要求用DE2-70开发板完成。 设计要求: 一、DDS 信号发生器设计要求: (1) 频率两档可调; (2) 峰峰值两档可调; 二、VGA 波形和字符显示设计要求: (1) 用红色显示2个周期波形; (2) 在屏幕下方显示字符库。 2.设计原理及分析 一)DDS 原理(以正弦信号为例) 对于正弦信号发生器,它的输出可以用下式来描述: (1) 其中,S OUT 是指该信号发生器的输出信号波形,f OUT 指输出信号对应的频率。上式的表述对于时间t 是连续的,为了用数字逻辑实现该表达式,必须进行离散化处理,用基准时钟clk 进行抽样,令正弦信号的相位θ为 t f out πθ2= (2) 在一个clk 周期Tclk ,相位θ的变化量为 clk out clk out f f T f /22ππθ==? (3) 为了对θ?进行数字量化,把2π切割为2N 由此,每份clk 周期的相位增量θ?用量化值 (4) 且θ?B 为整数。 sin(2)=sin() out out S A f t A πθ=22N B θ θπ ??≈?2N out CLK f B f θ?≈ ?

(5) 显然,信号发生器的输出可描述为: (6) 其中θK-1指前一个clk 周期的相位值,同样得出 (7) 由上面的推导可以看出,只要对相位的量化值进行简单的累加运算,就可以 得到正弦信号的当前相位值,为用于累加的相位增量量化值θ?B 决定了信号的输出频率f OUT ,并呈现简单的线性关系。 直接数字合成器DDS 就是根据上述原理而设计的数控频率合成器,主要由相位累加器、相位调制器、正弦ROM 查找表、和DAC 构成。如图1中相位累加器、相位调制器、正弦ROM 查找表是DDS 结构中的数字部分,由于具有数控频率合成的功能,可称为NOC(Numerically Controlled Oscillators)。 BK0 BK1 BK2 BK3 BKI0 BKI1BKI2 BKI3 Q0 MULT A 幅值输入 Q 图1 DDS 信号发生器结构 二)VGA 显示原理 常见的计算机显示器有CRT ( Cathode Ray Tube ,阴极射线管)显示器和液晶显示器,本次设计针对CRT 显示。CRT 中的阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生RGB 三基色,合成一个彩色像素。用逐行扫描的方式显示图像。扫描从屏幕左上方开始,从左到右,从上到下,进行扫描。每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT 对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步, 1sin(+) k outk S A B B θθ-?=N k θπ θ B k 221 1 ?= --

DDS电路设计

DDS 电路设计 摘要 本文介绍了DDS的原理,给出了用Altera Cyclone 1 EP1CQ240C8 FPGA芯片实现直接数字频率合成器的工作原理、设计思路、电路结 构和仿真结果以及频谱纯度分析。

关键词:直接数字频率合成(DDS);现场可编程门阵列(FPGA);相位累加器 一、DDS原理概述 1、DDS在基本原理 框图如图所示。它主要由标准参考频率源、相位累加器、波形存储器、数/模转换器、低通平滑滤波器等构成。其中,参考频率源一般是一个高稳定度的晶体振荡器,其输出信号用于DDS中各部件同步工作。DDS的实质是对相位进行可控等间隔的采样。 为实现全数字化的频率可调的频率合成器,本系统基于FPGA采用Verilog HDL设计而成直接数字频率合成器(DDS)。 系统由加法器、累加寄存器、波形存储器、D/A转换器、低通滤波器构成。在FPGA 里面做到的是D/A转换器之前的部分。 图一DDS原理图 DDS系统的核心是相位累加器,它由一个N位累加器与N位相位寄存器构成。时钟脉冲每触发一次,累加器便将频率控制数据与相位寄存器输出的累加相位数据相加,然后把相加后的结果送至相位寄存器的数据输入端。相位寄存器将累加器在上一个时钟作用后所产生的新相位数据反馈到累加器的输入端,以使加法器在下一个时钟的作用下继续与频率控制数据相加。这样,相位累加器在参考时钟的作用下将进行线性相位累加,当相位累加器累加满时,就会产生一次溢出,以完成一个周期性的动作,这个周期就是DDS合成信号的一个频率周期,相位累加器的溢出频率就是DDS输出的信号频率。 2、DDS参数计算

相位寄存器每经过2N/M 个f c 时钟后回到初始状态,相应地正弦查询表经过一个循环回到初始位置,整个DDS 系统输出一个正弦波。 输出正弦波频率: 2 N C out f f M ? = 本设计中,N=10,M 为位宽为32的频率控制字,fc=20Mhz 二、DDS 电路结构设计 1、电路描述 接口信号 名称 位宽 方向 描述 备注 freq 32 输入 输入频率字 reset 1 输入 复位 高电平异步复位 clock 1 输入 时钟 上升沿有效 sinout 8 输出 输出波形 2补码格式 2、电路结构 DDS 模块RTL Viewer

verilog学习心得

verilog学习心得 1.数字电路基础知识:布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计 2.数字系统的构成:传感器AD 数字处理器DA 执行部件 3.程序通在硬件上的执行过程: C语言(经过编译)-->该处理器的机器语言(放入存储器)-->按时钟的节拍,逐条取出指令、分析指令、执行指令 4.DSP处理是个广泛概念,统指在数字系统中做的变换(DFT)、滤波、编码解码、加密解密、压缩解压等处理 5.数字处理器包括两部分:高速数据通道接口逻辑、高速算法电路逻辑 6.当前,IC产业包括IC制造和IC设计两部分,IC设计技术发展速度高于IC设计 7.FPGA设计的前续课程:数值分析、DSP、C语言、算法与数据结构、数字电路、HDL语言计算机微体系结构 8.数字处理器处理性能的提高:软件算法的优化、微体系结构的优化 9.数字系统的实现方式: 编写C程序,然后用编译工具得到通用微处理器的机器指令代码,在通用微处理器上运行(如8051/ARM/PENTUIM) 专用DSP硬件处理器 用FPGA硬件逻辑实现算法,但性能不如ASIC 用ASIC实现,经费充足、大批量的情况下使用,因为投片成本高、周期长 10.FPGA设计方法:IP核重用、并行设计、层次化模块化设计、top-down思想 FPGA设计分工:前端逻辑设计、后端电路实现、仿真验证 11.matlab的应用: matlab中有许多现成的数学函数可以利用,节省了复杂函数的编写时间 matlab可以与C程序接口 做算法仿真和验证时能很快生成有用的数据文件和表格 DSP builder可以直接将simulink模型转换成HDL代码,跳过了中间的C语言改写步骤 12.常规从算法到硬件电路的开发过程: 算法的开发 C语言的功能描述 并行结构的C语言改写 verilog的改写 仿真、验证、修正 综合、布局布线、投入实用 13.C语言改写成verilog代码的困难点: 并行C语言的改写,因为C本身是顺序执行,而不是并行执行 不使用C语言中的复杂数据结构,如指针 目前有将C语言转换成verilog的工具? 14.HDL HDL描述方法是从电路图描述方法演化来的,相比来说更容易修改 符合IEEE标准的有verilog HDL和VHDL VHDL由美国国防部开发,有1987和1993两个版本 verilog由cadence持有,有1995、2001、2005三个版本 verilog较VHDL更有前景:具有模拟电路描述能力、不仅可以开发电路还可以验证电路、门级以下描述比VHDL强

基于FPGA的DDS设计

基于FPGA的DDS设计与实现 摘要 随着现代电子技术的不断发展,在通信系统中往往需要在一定频率范围内提供一系列稳定和准确的频率信号,一般的振荡器己不能满足要求,这就需要频率合成技术。直接数字频率合成(Direct Digital Frequency Synthesis,DDS)是把一系列数据量形式的信号通过D/A转换器转换成模拟量形式的信号合成技术。DDS具有相对带宽宽、频率转换时间短、频率分辨率高、输出相位连续、可产生宽带正交信号及其他多种调制信号等优点,已成为现代频率合成技术中的姣姣者。目前在高频领域中,专用DDS芯片在控制方式、频率控制等方面与系统的要求差距很大,利用FPGA来设计符合自己需要的DDS 系统就是一个很好的解决方法。 现场可编程门阵列(FPGA)器件具有工作速度快、集成度高、可靠性高和现场可编程等优点,并且FPGA支持系统现场修改和调试,由此设计的DDS电路简单,性能稳定,也基本能满足绝大多数通信系统的使用要求。 Abstract With the continuous development of modern electronic technology in communications systems often require a certain frequency range provides a range of stable and accurate frequency signal, the general oscillator has been unable to meet the requirements, which require frequency synthesis。Direct Digital Frequency Synthesis :“DDS”。It is to form a data signal through D / A converter converts the signal into analog form of synthesis。DDS has a relatively wide bandwidth, frequency conversion time is short, high frequency resolution, the output phase continuous, can produce a variety of broadband quadrature modulation signals and other advantages, has become a modern synthesizer technology leader. Present in high frequency areas, special DDS chip control, frequency control and other aspects of system requirements differ greatly, the use of FPGA to design DDS system suits their needs is a good solution. Field programmable gate array (FPGA) devices have to work fast, high integration, high reliability and the advantages of field programmable and support system for FPGA-site to modify and debug the design of the DDS circuit which is simple, stable performance, but also the basic communications systems can meet most requirements. 关键词(keywords):频率合成(Frequency Synthesizer);DDS技术(DDS technology);

相关主题
文本预览
相关文档 最新文档