码迷,mamicode.com
首页 > 其他好文 > 详细

全备注: 正弦波型(简单易懂)

时间:2020-06-15 09:14:42      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:字母   span   inf   技术   src   直接   module   NPU   else   

使用软件: Vivado   (需要使用.coe文件)

1  :(1)  生成.coe文件  

      新建一个txt文档,后缀名改成.coe. (注意文件名一定要英文开头,不能出现中文和中文的字母和特殊符号)

        技术图片

     (2)    文档格式如下:

         技术图片

 

        建完直接保存即可使用。

 

 2   : (1)   添加rom核

           技术图片

 

        (2)    调试rom IP核    (我们写的正弦波是 8位宽 256个深度的)

          技术图片

 

   (3)    选择寄存数据 (这样可以让输入或输出的数据更加稳定,但是需要延迟一个时钟周期)

                       技术图片

 

          (4)   现在就来添加我们生成的 .coe文件 。

      技术图片

 

     3     :     (1)    编写代码程序部分   

     

module rom(                     
input clk,                          //50M时钟
input rst,                          //复位
output [7:0] data             //rom 输出的数据
);

 

reg [7:0] addr;               //rom 数据地址
always@ (posedge clk or negedge rst) begin 
if (!rst)
addr <= 0;                         //复位地址清零
else 
addr <= addr + 1;             //地址自增
end 

dist_mem_gen_0 your_instance_name (         //例化的ROM
.a(addr), // input wire [7 : 0] a
.clk(clk), // input wire clk
.qspo(data) // output wire [7 : 0] qspo
);

 

endmodule

       (2)    编写tb仿真文件

`timescale 1ns / 1ps           // 时间单位1ns,时间精度1ps

 

module tb();
reg clk;                    //50M时钟
reg rst;                    //复位
wire [7:0] data;       //rom数据

initial begin            //初始化
clk = 0;
rst = 0;
#10 rst = 1; 
end

always #10 clk = ~clk;      //每10ps 反转一次.     因为我们上面定义的仿真精度就是1ps

rom inst_rom(                  //例化底层文件
.clk (clk) ,
.rst (rst) ,
.data (data) 
);
endmodule

    (3) :   看仿真图,验证程序.

技术图片

 

 

  (简单程序:编程完成)

 

全备注: 正弦波型(简单易懂)

标签:字母   span   inf   技术   src   直接   module   NPU   else   

原文地址:https://www.cnblogs.com/qicg/p/13129016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!