标签:rom clk 正弦波 coe 1ps rst 易懂 data 备注
使用软件: 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) : 看仿真图,验证程序.
(简单程序:编程完成)
标签:rom,clk,正弦波,coe,1ps,rst,易懂,data,备注 来源: https://www.cnblogs.com/qicg/p/13129016.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。