调用ISE的IP核,配置RAM。(实例化)

Posted m-hhh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用ISE的IP核,配置RAM。(实例化)相关的知识,希望对你有一定的参考价值。

  1. 配置IP核可以参考网上教程,有很多,这里不做赘述。注意的是本次使用的是单端口RAM, 在设置时,人为勾选了ena片选信号。

  2. 关于配置RAM时的数据宽度和深度问题。

   答: 数据宽度规定为8位, 数据深度本来定义18根地址总线[17:0],把深度在设置中定义为18。但在初始化端口中显示addr只有4位,故重新定义深度为2的17次方为131072。

  3. 实例化RAM代码(verilog), 这里top文件包含4个IP核RAM,共用clk, wr_en, data_in,addr接口,ena片选信号有4位。 并且做了例化,例化时注意端口配置,例化名称两个问题。

  

 1 `timescale 1ns / 1ps
 2 //////////////////////////////////////////////////////////////////////////////////
 3 // Company: 
 4 // Engineer: 
 5 // 
 6 // Create Date:    14:13:45 08/22/2018 
 7 // Design Name: 
 8 // Module Name:    test_bram 
 9 // Project Name: 
10 // Target Devices: 
11 // Tool versions: 
12 // Description: 
13 //
14 // Dependencies: 
15 //
16 // Revision: 
17 // Revision 0.01 - File Created
18 // Additional Comments: 
19 //
20 //////////////////////////////////////////////////////////////////////////////////
21 module test_bram
22 (
23     data_in, addr, ena, wr_en, clk, data_out1, data_out2, data_out3, data_out4
24 );
25 
26 input wr_en, clk;
27 input [3:0] ena;
28 input [7:0] data_in;
29 output [7:0] data_out1;
30 output [7:0] data_out2;
31 output [7:0] data_out3;
32 output [7:0] data_out4;
33 input [17:0] addr;
34 
35 wire wr_en, clk;
36 wire [3:0] ena;
37 wire [7:0] data_in;
38 wire [17:0] addr;
39 wire [7:0] data_out1;
40 
41 
42 inst_ram_1 inst1  //其中inst_ram是调用的子模块名称, inst1是在顶层模块中使用的实例名称。
43 (
44     .dina(data_in),
45     .clka(clk),
46     .ena(ena[0]),
47     .addra(addr),
48     .douta(data_out1),
49     .wea(wr_en)
50 );
51 
52 inst_ram_1 inst2
53 (
54     .dina(data_in),
55     .clka(clk),
56     .ena(ena[1]),
57     .addra(addr),
58     .douta(data_out2),
59     .wea(wr_en)
60 );
61 
62 inst_ram_1 inst3
63 (
64     .dina(data_in),
65     .clka(clk),
66     .ena(ena[2]),
67     .addra(addr),
68     .douta(data_out3),
69     .wea(wr_en)
70 );
71 
72 inst_ram_1 inst4
73 (
74     .dina(data_in),
75     .clka(clk),
76     .ena(ena[3]),
77     .addra(addr),
78     .douta(data_out4),
79     .wea(wr_en)
80 );
81 endmodule

 

以上是关于调用ISE的IP核,配置RAM。(实例化)的主要内容,如果未能解决你的问题,请参考以下文章

ise中某个ip核数据手册在哪查看

ISE中如何将自己的verilog源代码.v或VHDL源代码.vhd封装打包成IP核?

FPGA基于ISE的DDR3的IP核调用以及历程仿真

10ISE14.7和modelsim10.5关联编译库

10ISE14.7和modelsim10.5关联编译库

如何能将自己的verilog模块封装成像altera的IP核一样的呢?