数字频率合成器 - 图文 下载本文

武汉科技大学中南分校2008届毕业设计(论文)

9'b101111110:Key_temp[4:0]<=6; 9'b101111101:Key_temp[4:0]<=7; 9'b101111011:Key_temp[4:0]<=8; 9'b101110111:Key_temp[4:0]<=9; 9'b101101111:Key_temp[4:0]<=10; 9'b101011111:Key_temp[4:0]<=11; 9'b011111110:Key_temp[4:0]<=12; 9'b011111101:Key_temp[4:0]<=13; 9'b011111011:Key_temp[4:0]<=14; 9'b011110111:Key_temp[4:0]<=15; 9'b011101111:Key_temp[4:0]<=16; 9'b011011111:Key_temp[4:0]<=17; default:Key_temp[4:0]<=31; endcase end endmodule

Key模块程序:

module key(Dout,INT,k); input[7:0] Dout; input INT; output[9:0] k; reg[9:0] k; reg[4:0] k1; reg[4:0] k2; reg[4:0] k3; reg[4:0] k4;

always@(posedge INT) begin

k1<=Dout[4:0];

第15页 共20页

xx:<数字频率合成器>

k2<=k1; k3<=k2; k4<=k3; if(Dout[4:0]==17) begin

k<=k4*1000+k3*100+k2*10+k1; k1<=0;k2<=0;k3<=0;k4<=0; end

else if(Dout[4:0]==15)

begin k1<=0;k2<=0;k3<=0;k4<=0;k<=1; end end endmodule

§3.7显示部分

在本系统中的显示功能是由评估板上自带的LCD12864完成。51单片机通过读取来自Scankey模块的数据经过处理后将其显示在LCD12864上。 单片机中的主体程序如下:

void main(void) { uchar q;

Init_Int(); //中断初始化子程序 Init_Dian(); //点阵初始化

Clear_Dian(0); //0:清除LCD文本区; Clear_Dian(1) //1:清除LCD图形区

Chars_dis(\ DDS \ //英文字符显示送显程序 Dis_line(0); //显示的行数选择 Chars_dis(\ Dis_line(1);

Chars_dis(\ IS 10HZ\ Dis_line(2);

Chars_dis(\ Dis_line(3);

Chars_dis(\

第16页 共20页

武汉科技大学中南分校2008届毕业设计(论文)

Dis_line(6);

Chars_dis(\ \ Dis_line(7);

for(q=0;q<16;q++)

Disp_Buff[q]=0x20; while(1) {

Dis_line(4); }

第4章 系统测试

§4.1具体调试

对该实验先分模块进行调试,最后调试整个DDS系统。在调试过程中的遇到的问题及解决办法如下:

从FPGA中直接出来的波形含有尖峰,从而使得经过D/A输出的波形整体上下抖动。为了克服这个影响,在D/A转换之前要补充一个去毛刺的模块滤掉毛刺。这个模块主要是由1.5KΩ的电阻和200pF的电容并联而成,八个这样的电路形成这样一个去毛刺的模块。之所以会产生毛刺是因为信号在FPGA器件中通过逻辑单元连线时,一定存在延时。延时的大小不仅和连线的长短和逻辑单元的数目有关,而且也和器件的制造工艺、工作环境等有关。因此,信号在器件中传输的时候,所需要的时间是不能精确估计的,当多路信号同时发生跳变的瞬间,就产生了“竞争冒险”。这时,往往会出现一些不正确的尖峰信号,这些尖峰信号就是“毛刺”。另外,由于FPGA以及其它的CPLD器件内部的分布电容和电感对电路中的毛刺基本没有什么过滤作用,因此这些毛刺信号就会被“保留”并传递到后一级,从而使得毛刺问题更加突出。

在FPGA中要保证键盘的时钟频率最大即接分频之前的频率(40MHz),保证在输出高频率时波形的稳定

§4.2测试结果

测试结果如1表所示:

第17页 共20页

xx:<数字频率合成器>

表1测试数据 频率控制字 K 10 200 400 600 1000

理论输出频率(Hz) 100.00 2000.00 4000.00 6000.00 10000.00 实际输出频率 (Hz) 100.05 2001.06 4002.12 6003.18 10005.30 误 差 (%) 0.05 0.053 0.053 0.053 0.053 §4.3结果分析

频率控制字K是在1~1000之间,当键盘输入为10时频率控制字为10,则

输出频率为100HZ,当K为200时输出频率为2000HZ。此系统的误差为0.05%。 在该设计中还有一个缺陷既是没有在真正意义上实现单片机与FPGA通信,在本设计中单片机与FPGA的联系仅仅是一个Scankey模块,将它作为一个单片机与键盘连接的接口。

结论

由于FPGA方便灵活的特点,使得这种器件在数字设计领域的应用越来越广泛。而作为一个设计者,必须利用设计软件的开放性,充分利用其他各种手段来保证设计的可靠性,提高设计的品质。所以得采用一系列新技术和新器件才能实现。通过应用Altera公司最新的FPGA产品,充分利用了其高速、大容量和组合灵活方便等优点,并用Altera的QUARTUSII开发环境所提供的库资源,最大限度地利用和发挥FPGA的优势,不但大大简化了系统设计,而且缩短了设计周期。

第18页 共20页