银杏科技有限公司旗下技术文档发布平台 | |||
技术支持电话 | 0379-69926675-801 | ||
技术支持邮件 | Gingko@vip.163.com | ||
版本 | 日期 | 作者 | 修改内容 |
---|---|---|---|
V1.0 | 2019-02-27 | gingko | 初次建立 |
1、 打开 Tools——MegaWizard Plug-In Manager. 2、 直接点击 Next. 3、 在方框 1、方框 2、方框 3 处如图所示做选择,在方框 4 处选择 RAM 块的路径及命 名,然后点击 Next. 4、接下来是对单口RAM进行设置,如图中所示,设置RAM的存储位宽和存储深度,本实验设置存储宽度16bit,存储深度256个字节。这里可以把RAM想象成一个表格,每行有16个格子,总共256行,这里的每个格子相当于1个bit。然后设置例化RAM在FPGA内部占用资源的类型。因为用逻辑门例化为存储器的话占用逻辑资源较多,因此FPGA内部有专门用于构建存储器用的逻辑单元,如M9K、M144K等。本次实验选择Auto,在设计中可根据实际需求进行设置。之后是时钟的选择,这里选择单时钟,即输入输出使用同一时钟。点击next进行下一项设置。 5、输出信号设置和读使能信号设置。 6、这里选择Old Data。 7、设置RAM初始状态值。可以通过hex文件给例化的RAM存入初始数据。这里选择不存储初始数据,而是通过FPGA控制数据的写入。 8、默认设置,最后点击finish。
//--------------------------fsmc---------------------------// wire rd = (CS0 | RD); //提取读信号 wire wr = (CS0 | WR); //提取写信号 reg wr_clk1,wr_clk2; always @(posedge PLL_100M or negedge rst_n) begin if(!rst_n) begin wr_clk1 <= 1'd1; wr_clk2 <= 1'd1; end else {wr_clk2,wr_clk1} <= {wr_clk1,wr}; //提取写时钟 end wire clk = (!wr_clk2 | !rd); assign DB = !rd ? DB_OUT : 16'hzzzz;