zlq999 发表于 2009-10-19 17:04:24

自己学习FPGA的一点成果

经过了,将近三个月的学习,自己终于利用FPGA做出里一点像点样的东西--一个基本的DDS
这个东西困扰了我好久啊,今天终于弄完了,心情这个High & relax 啊,如释重负!
现在把一些相关的图片传上给大家看看,程序过些天整理好后再发上来!


http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_493459.jpg
开机后显示画面 (原文件名:002.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_493460.jpg
可以通过按键选择波形 (原文件名:003.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_493461.jpg
正弦波显示画面 (原文件名:004.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_493470.jpg
正弦波,不过还是不是很好 (原文件名:005.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_493471.jpg
三角波 (原文件名:006.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_493473.jpg
液晶和按键(按键只是一个用了) (原文件名:010.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_493474.jpg
FPGA核心板 (原文件名:011.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_493477.jpg
波形输出 (原文件名:012.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_493478.jpg
背面 (原文件名:013.jpg)



希望大家都给点建议和意见啊

crong 发表于 2009-10-20 18:04:32

挺好,继续更新吧

yvhksovo 发表于 2009-10-26 22:49:36

我觊觎楼主的dds源代码。。。楼主能分享一个么,我是初学。

AustinShun 发表于 2009-10-26 23:12:12

AD9834?

licent 发表于 2009-10-27 09:08:30

核心板是艾米电子那款吧 呵呵
不知道你的输出频率范围是多少?
看样子应该是DDS的IP 不是使用DDS芯片的吧

zlq999 发表于 2009-10-28 16:13:07

都不是,用的nios II 驱动12864
用Verilog 写的波形发生模块。
代码我还没有整理好,需要的话,关注吧。

zlq999 发表于 2009-10-28 19:54:07

这部分代码就是实现波形输出的代码。
module wave_out(Key,
                                clk,
                                D_out,
                                );
input clk ;
input Key ;
output D_out ;

wiretemp1,temp2,temp3;
reg clk_d;
reg temp;
reg count ;
reg Addr ;
/*******************/
assign D_out=temp;
/*****************


/************************/
always@(posedge clk)
begin
                if(count<25)
                count<=count+1;
                else begin
                          count<=0;
                          clk_d<=~clk_d;
                       end
end
/*******************/
always@(posedge clk_d)
begin
if(Addr<64)
Addr<=Addr+1;
else
Addr<=0;
end
/********************/
rom_sine rom_sine(
        .address(Addr),
        .clock(clk_d),
        .q(temp1));
rom_tri roms_tri(
        .address(Addr),
        .clock(clk_d),
        .q(temp2));
rom_pulse roms_pulse(
        .address(Addr),
        .clock(clk_d),
        .q(temp3));
/********************/
endmodule

yantong02 发表于 2009-12-21 15:09:22

朋友,能否发点这方面的资料给我,我的是邮箱是846003042@qq.com!最近在搞波形发生器,不知如何用液晶把波形显示出来,看到你这个真的很有美感,希望能分享一下,谢谢了^_^

wolfdong7 发表于 2009-12-26 23:49:23

偷_窥中~~~

quzegang 发表于 2009-12-27 00:08:02

mark

mowenhui28 发表于 2009-12-27 19:07:40

哇 lz好强啊我最近的EDA实训也在做波形发生器想问下你写正弦波时怎样设置一个ROM存储那二百多个采样数据?
类似单片机C51程序从数组取里数据的形式   verilog里面没有这种操作,我又不想用200多个case一个个写那些采样值呵呵!
就是你这一段:
rom_sine rom_sine(
.address(Addr),
.clock(clk_d),
.q(temp1));
rom_tri roms_tri(
.address(Addr),
.clock(clk_d),
.q(temp2));
rom_pulse roms_pulse(
.address(Addr),
.clock(clk_d),
.q(temp3));

andywyt 发表于 2009-12-29 02:17:15

不错,呵呵

zlq999 发表于 2009-12-29 15:39:29

回复【10楼】mowenhui28
-----------------------------------------------------------------------

这个只要设置rom时设置好rom的大小为200就可以啊。

machaokuku 发表于 2009-12-29 20:05:35

rom可以写一段matlab代码生成相应的文件
页: [1]
查看完整版本: 自己学习FPGA的一点成果