




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FPGA正弦波方法(1/4周期)生成COE文件本文主要介绍了通过查找表方法生成正弦波的方法。使用Matlab生成四分之一周期正弦相位、振幅映射表,生成COE文件的IP核心方法,FPGA编程生成数字正弦信号。正弦信号,模拟信号。FPGA只能生成数字信号。因此,必须使用DA将数字量转换为模拟。此处使用modelsim的模拟波形显示,不了解DA转换。产生正弦信号的方法有多种。此处,使用查找rom的方法生成正弦信号。正弦信号是模拟振幅-1和1之间周期变化的信号,因此,只要将1/4周期值存储在rom中,就可以根据1/4周期振幅的变化产生波形。Matlab生成正弦信号的值。在步骤0.01中,从0到pi/2获得的共158个点。X=linspace(0,pi/2,158);Sin的振幅是十进制值,FPGA不能表示小数,因此振幅乘以12位二进制值使整个振幅整数化。宽度扩大了4096倍。例如,大小为0.3,0.3 * 2 12=1228.8等于1229。当然,这表示可能会有一些误差,但是根据精度调整参数,可能会允许误差。创建ROM。其中rom使用ISE的IP rom。通过将Matlab生成的数据放入rom并读取rom值,可以生成正弦信号。第一种是创建rom的初始化文件。Xilinx中rom的初始化文件的后缀为.是Coe。此特殊文件具有以下固定格式:文件的前两行内容是固定的。MEMORY _ initial ization _ RADIX=10;下面的数字是十进制数,后面的数据是按顺序存入rom的值,以逗号分隔,以分号结尾。创建初始化文件的MATLAB程序如下:Fid=fopen(sin_rom.txt,w);Fprintf (FID,memory _ initial ization _ radix=10; n);Fprintf (FID,memory _ initial ization _ vector= n);For I=0333 60160: pi/2 * 100y=sin(I/100);rom=floor(y * 2 12);If I=157Fprintf(fid,% d);rom);ElseFprintf (FID,% d,rom);EndIf mod(i,10)=0 I至=0Fprintf(fid, n);EndEndf close(FID);Matlab生成的文件是.txt文件。后缀为。直接更改为Coe即可。然后将其复制到ISE子项目目录中。创建初始化文件后,剩下的就是编写verilog代码。首先创建项目,然后创建新IP。找到并打开工作室。设置如下:使用13位(第一位是符号位,其馀12位是数据位)显示Sin值的设置位宽度。13.深度必须有158个值,才能设定为158。刚创建的。加载和生成Coe文件即可。然后编写verilog代码。首次检查IP生成的rom的实例化代码。Sin_rom your_instance_name(.clka(clka),/input clka.addra (addra)、/input7 :addra.douta(douta)/output12 :douta);从上面的程序可以看出,只要给出时钟信号,输入地址就行了。正弦的数字信号输出。正弦信号分析,第一个四分之一周期,从0到157添加地址(四分之一周期点)。然后自我减少,减少到0。然后进入负伴奏,负标记用二进制数的补码表示。也就是说,绝对值个数的二进制数与加1相反。写地址本身减法代码,然后根据地址值确定输出值的符号(例如负或负),反向计算输出1。显示代码,如下所示:Module sin_top(输入时钟信号,输入/时钟信号input933600address,输入/地址信号output reg1233600data _ out/输出sin的数值);reg733600add;wire1233600douta;/以下是判断地址的值Always *BeginIf(address=157)Add=addressElse if(address=314)add=10d 314-address;Else if(address=471)add=address-10d 314;Else if(address=628)add=10d 628-address;Elseadd=0;End/实例化以前生成的sin_romSin_rom u1_sin_rom(.clka(clk),/input clka.addra (add)、/input7 :addra.douta(douta)/output12 :douta);/确定输出值是正值还是负值。Always * beginIf(address=314)Data _ out=doutaElse if(address=628)Data _ out= douta 1b1Elsedata _ out=0;EndEndmodule程序写完了,剩下的会模拟。只需输入时钟和地址信号的testbench模拟。地址信号在一个周期结束,直到不小于628为止。返回值0,继续自加。测试代码如下:Module sin _ top _ test/InputsReg clkreg933600address;/Outputswire1233600data _ out;/instantiate the unit under test(UUT)Sin_top UUT(.clk(clk)、.address、.data_out(data_out);Always # 5 clk= clkInitial begin/Initialize Inputsclk=0;address=0;/wait 100 ns for global reset to finishWhile(1)Begin (nedge (clk)地址6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽保安员考试题库及答案
- 标准化合同范本与审批流程工具
- 农贸市场管理软件采购合同
- 家庭农场综合经营承包合同
- 社区初级考试题库及答案
- 采购合同审查与验收标准流程表
- 钣金工技能考试题及答案
- 天津高铁安检考试题及答案
- 乌鲁木齐物理课标考试真题及答案
- 诏安中考模拟考试题目及答案
- 污水零直排工作专题汇报
- 2025-2030年中国财税服务行业市场深度调研及发展前景与投资研究报告
- 2025至2030年中国工业控制软件行业市场运行态势及前景战略研判报告
- 2024年12月27日山西省临汾市纪委遴选面试真题及答案解析
- 开发资质质量管理制度
- 骨科常见并发症预防及护理
- 学校食堂家长开放日活动上校长讲话:一起为孩子们的“舌尖安全”把好关
- 肺结核防治知识培训课件
- 物流客服管理制度
- 脑出血的教育宣教
- 综合布线工程安全技术交底
评论
0/150
提交评论