EDN首页   博客首页

最新日志

发表于:2008-12-1 22:33:20
标签:DDS  ROM  C语言  Matlab  正弦波  

1

DDS ROM数据生成程序整理贴

                                          DDS ROM数据生成程序整理贴

    FPGADDS,如果采用ROM查表的话,波形数据必不可少,当然ROM可以存正弦、方波、三角波的数据,对应也就成为了波形发生器。

 

MATLAB生成正弦波波形数据


width=8;  %
宽度是
depth=1024;  %
深度是1024
index = linspace(0,pi*0.5,depth);
sin_a=sin(index);  %
归一化
sin_d=fix(sin_a*(2^width-1));  %
量化
plot(sin_d);
axis([0,depth-1,0,2^width-1]);
%===============================
开始写mif文件===============================
addr=0:depth-1;
str_width=strcat('WIDTH=',num2str(width));
str_depth=strcat('DEPTH=',num2str(depth));

fid=fopen('f:\sin.mif','w');  %
打开或者新建mif,存放位置和文件名任意
                              %
如果只写文件名,则在当前目录下建立此文件
fprintf(fid,str_width);
fprintf(fid,';\n');
fprintf(fid,str_depth);
fprintf(fid,';\n\n');
fprintf(fid,'ADDRESS_RADIX=HEX;\n');  %
因为下面的数据输入我选的是16进制,
                                      %
这里可根据情况改写      
fprintf(fid,'DATA_RADIX=HEX;\n\n');
fprintf(fid,'CONTENT BEGIN\n');
fprintf(fid,'\t%X : %X;\n',[addr;sin_d])  %
开始写数据了
fprintf(fid,'END;\n');
fclose(fid);

 

 

程序解释:

axis([xmin xmax ymin ymax]) [ ]中分别给出x轴和y轴的最大值、最小值

sin(x):正弦函数

fix(x):截尾取整.

>> fix( [3.12 -3.12])

ans = 3    -3

linspace(x0,x1,n) :其中n代表的是点的数目,即分成n-1等分,步长应当是(x1-x0)/(n-1)

 

C语言编写的生成正弦的数据:

 

一个网上高手编写的程序

 

 

还有几个Matlab程序

 

rar

 

ISEROM怎么转载数据可以参考如下教程:

 

pdf

 

下面是我用LabVeiw弄的正弦波波形数据正周期采集程序,准备继续完善,能生成方波,三角波,能采集1/4周期,1个周期。

 

点击看大图

 

  下载可以到我的另一篇文章:

http://blog.ednchina.com/tengjingshu/184884/message.aspx

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 整理

评论(0) | 阅读(28)
发表于:2008-12-1 21:31:16
标签:FPGA  DDS  LabVeiw  正弦波  matlab  

1

DDS ROM数据正弦波形正半周采样程序【原创】

DDS ROM数据正弦波形正半周采样程序【原创】

正在用FPGADDSDDS的主要组成部分中ROM是必须的,其中要生成正弦波形数据。网上基本是用matlabC语言生成,但matlab不是人人都有,所以我特意用LabVeiw做了一个正弦波正半周采样程序,方便大家J下面程序是LabVeiw生成的exe可执行程序,要运行要安装LabVeiw的运行引擎(Labview RunTime),当然也可以运行安装程序,想要的话,在这里留下QQ邮箱地址,我给你发过去J注意哦,是QQ邮箱地址。

 

执行程序下载地址: rar

 

执行程序界面:

 

点击看大图

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 原创

评论(1) | 阅读(42)
发表于:2008-11-30 21:09:12
标签:FPGA  综合  Synplify  下载  破解  

0

FPGA综合工具Synplify下载与破解[原创]

FPGA综合工具Synplify下载与破解[原创]

SynplifyPro 针对复杂可编程逻辑设计的功能强大的 FPGA 综合工具 Synplify Pro Synplicity 公司的FPGA 综合软件。在2001年,DataQquest 的数据统计中,Synplify Pro FPGA 综合市场第一名。Synplify Pro的客户遍布于通讯、半导体、航空/航天、计算机和军用电子等诸多应用领域,如PhilipsAgilentCicsoLockheed MartinGESiemensLucent Nortel Ericsson等共两千六百多家用户。

 

 

Synplify Pro 9.6.1下载地址http://new.qzone.qq.com/11517355/

上面地址是QQ邮箱中转站内的文件,如正常下不了,可以用迅雷试一试,不行的话,给我发邮件,告诉我你的QQ邮箱,记住是QQ邮箱哦J

 

Synplify Pro 9.61并不是最新的,最新Synplify Pro 9.6.2Synplify官方网站下载

http://www.synplicity.com/products/synplifypro/   但好像没有破解文件。

 

Snplify9.61破解文件:rar

(Synplicity.Synplify.Premier.v9.6.1.with.Identify.v3.0)

 

破解方法:

1 把文件ibfs32.dll复制到系统windows\system32

2 随便把文件synplctyd.lic复制到什么地方

3 打开synplctyd.lic文件, 把文件中所有HOSTID=000C29FC37B9这个数值替换为你电脑的MAC地址,再保存。

查计算机MAC地址方法

Windows 2000/XP的计算机系统中

   
依次单击开始”→“运行”→输入“cmd”→回车,在出现的命令提示符界面中输“ipconfig /all”→回车,可以得到计算机的MAC地址

 

点击看大图

 

 

4. 设置环境变量的SYNPLCTYD_LICENSE_FILE的变量值为synplctyd.lic文件所存放的地址 (e.g. c:\windows\synplctyd.lic)

   我的电脑右键属性高级环境变量用户变量—SYNPLCTYD_LICENSE_FILE——编辑

 

 

   好了,安装完毕,可以使用了。

 

   Xilinx ISE新建一个工程

 

 

 

 

其中综合工具Synthesis Tool 选择为 Synplify Pro(VHDL/Verilog)

 

 

 

这样的话,综合就不再使用ISE自带的综合工具XST了,而使用Synplify Pro了。

有什么不会的地方可以上网下个教材了。

synplify华为中文教程:

http://www.edacn.net/bbs/viewthread.php?tid=121745&extra=&page=1

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 原创

评论(0) | 阅读(11)
发表于:2008-11-29 20:56:50
标签:ISE  Xilinx  Bencher  Verilog  测试文件  

1

使用ISE HDL Bencher生成激励(原创)

使用HDL Bencher生成激励(原创)

ISE使用HDL Bencher能自动生成测试文件(顶层文件)

1. Source工作区右单击New Source——Test Bench WaveForm

 

点击看大图

 

 

2. Next  选择要测试的文件,注意不要选择子模块

 

点击看大图 

 

3.弹出Initial Timing and Clock Wizard

 

点击看大图 

 

设置的参数有

Rising Edge:上升沿触发

Falling Edge:下降沿触发

Dual Edge:两个沿都触发

Clock High Time:时钟高电平保持时间

Clock Low Time:时钟低电平保持时间

Input Setup Time:输入建立时间

Output Valid Delay:输出有效时间

Offset:时钟偏移

 

input setup就是模拟的输入信号相对于时钟的建立时间,越大越有利于仿真,是固定的。(http://www.edacn.net/bbs/thread-14860-1-153.html

 

设计类型分为3类:

Single Clock  单时钟同步时序电路,选择时钟信号clk

Multiple Clock多时钟同步时序电路

Combinatorial(or internal clock)组合电路

 

全局信号设置主要选择是否使用GSR(FPGA)PRLDCPLD)等全局置位、复位信号

High for InitialGSRPRLD信号时间

(GSR,GTS 是芯片的全局复位和全局置位信号,使用不当反而会出问题,不必管它就是了)

 

Initial Length of Test Bench:设置仿真时长

Time Scale:设置仿真所用时间单位(ms,ns,ps

 

Add Asynchronous Signal Support:需要进一步设置异步时序关系

 

通过View Generated Test Bench As HDL可以看到设置参数的意义

 

……

    parameter PERIOD = 200;

    parameter real DUTY_CYCLE = 0.5;

    parameter OFFSET = 100;

 

    initial    // Clock process for clk

    begin

        #OFFSET;

        forever

        begin

            clk = 1'b0;

            #(PERIOD-(PERIOD*DUTY_CYCLE)) clk = 1'b1;

            #(PERIOD*DUTY_CYCLE);

        end

end

……

 

PERIOD=时间高电平保持时间+时间低电平保持时间=周期

OFFSET=时钟偏移

DUTY_CYCLE=占空比=时间高电平保持时间、时间低电平保持时间

(PERIOD-(PERIOD*DUTY_CYCLE))= 时间低电平保持时间Clock Low Time

(PERIOD*DUTY_CYCLE)= 时钟高电平保持时间Clock High Time

 

点击看大图 

 

如果觉得仿真时间不够的话,可以右单击,选择set end of testbench

 

 

 

设置仿真结束时间,得到下图:

 

点击看大图 

 

也可以直接在跳出来的modelsim里直接run

 

要给输入赋值时,在相应输入信号左单击,出来一个对话框

 

 

 

可以填入输入仿真的值,要注意所填值的格式,上面的是16进制,要改变进制的话,可以右单击:

<