zoukankan      html  css  js  c++  java
  • 【lattice软核】ROM的使用

    =======================》》》》》

    一、ROM核调用:==================》》》》》

    =======================》》》》》

      

    =======================》》》》》

    二、ROM表的生成:==================》》》》》

    =======================》》》》》

    查看内存使用手册,如图可以找到,我的是MachXO2系列芯片

    在手册中查看.mem文件需要的格式

    了解了文件数据格式,那么就需要编写数据了,数据可以自己计算来填写,比如编一个1024*8的正弦波表,但是手工麻烦

    下面介绍下工具,我暂时没找到更好的工具,如果大家有更好的工具希望能告知。当然也可以用execl,matlab等实现。

    软件下载页面点此下载

    使用方法

    1、查看--全局参数里设置一下

    2、点设定波形--正弦波。就有了波形数据了

    3、点保存,保存为mif文件。  此时保存的文件和.mem需要的内容格式不同,需要手动修改,打开文件如图

    每行后的分号也需要去掉哦

    在最后一行还有个END,记得删除

    4、另保存为.mem格式(记事本似乎不可以竖列选,我用的是notepad++,其他高级编辑器也都可以)

    5、回到IP核调用那块重新调用,把这个文件添加进去,选择hex文件格式的,生成

    =======================》》》》》

    三、ROM软核添加进工程:==================》》》》》

    =======================》》》》》

    1、打开工程目录,找到刚才省成的rom.v文件,拖放到diamond的source文件

    =======================》》》》》

    四、rom核的使用:==================》》》》》

    =======================》》》》》

    我现在要写一个ROM直接接DAC输出正弦波的,则要考虑时序,查看手册

    DAC的时序如下

    具体分析自己看,可以看出需要在时钟下降沿改变地址,上升沿时保持稳定

    则代码如下

     1 /*--------------------------------------------------------------------------------------
     2 -- Filename ﹕ dac.v
     3 -- Author ﹕tony-ning
     4 -- Description ﹕DAC硬件测试  ,10M方波,AD9760
     5 -- Called by ﹕Top module
     6 -- Revision History ﹕15-10-16
     7 -- Revision 1.0
     8 -- Company ﹕ 
     9 -- Copyright(c)  All right reserved
    10 ---------------------------------------------------------------------------------------*/
    11 
    12 
    13 module dac
    14 (
    15     input CLK25, //输入25M时钟
    16     output CLK_DA,//输出给DAC的100M时钟
    17     output [9:0]date_out
    18 );
    19     
    20 
    21     
    22     reg [9:0]count2;
    23     
    24     always @( negedge CLK)//地址累加,下降沿改变
    25         begin
    26             count2<=count2+2;//改变累加数字可改变输出频率
    27         end
    28 
    29     assign CLK_DA=CLK;//时钟输出
    30     
    31     pll PLL100M//锁相环倍频
    32     (
    33         .CLKI(CLK25), 
    34         .CLKOP(CLK)
    35     );
    36     
    37     rom_sin sin//调用rom核,
    38     (
    39         .Address(count2), //地址
    40         .OutClock(CLK), //时钟
    41         .OutClockEn(1'b1), //输出使能,高有效
    42         .Reset(1'b0), //复位,高有效
    43         .Q(date_out)
    44     );
    45     
    46 
    47 endmodule
  • 相关阅读:
    识别验证码
    Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)
    Intellij IDEA新建maven项目和配置tomcat
    Intellij IDEA 14使用maven3.3.3 问题
    使用Xshell连接Ubuntu
    IntelliJ IDEA 12 详细开发教程(二)Tomcat服务配置与Jrebel热部署
    git使用
    e.keycode详解
    jquery插件制作教程 txtHover(转载)
    深入理解JavaScript系列(转载)
  • 原文地址:https://www.cnblogs.com/tony-ning/p/4971053.html
Copyright © 2011-2022 走看看