当前位置: 首页 > news >正文

上海移动端网站建设四网一体网站建设方案

上海移动端网站建设,四网一体网站建设方案,附近卖建筑模板市场,网络科技建设网站ZYNQ-PL实践课堂(四)IP核之RAM) 1 概述2 硬件管脚约束3 搭建IP核4 创建新的verilog文件5 创建另一个实例化6 仿真文件7 编译、下载总结 1 概述 RAM(随机存取存储器), 它用来随时把数据写入或者读取任一指定…

ZYNQ-PL实践课堂(四)IP核之RAM)

  • 1 概述
  • 2 硬件管脚约束
  • 3 搭建IP核
  • 4 创建新的verilog文件
  • 5 创建另一个实例化
  • 6 仿真文件
  • 7 编译、下载
  • 总结

1 概述

RAM(随机存取存储器), 它用来随时把数据写入或者读取任一指定地址的存储单元。RAM 主要用来存放程序及程序执行过程中产生的中间数据、 运算结果等。
XILINX 7系列BRAM IP核可配置成单端口RAM、也可以配置成双端口RAM。本文介绍配置成单端口 RAM 。
本文介绍xilinx RAM IP 核。
单端口RAM框图如下,
在这里插入图片描述
单端口RAM端口介绍,

DINA	: RAM 端口A写数据信号。
ADDRA	: RAM 端口A读写地址信号,读地址、写地址共用同该地址线。
WEA		: RAM 端口A写使能信号, 高电平表示向 RAM 中写入数据,低电平表示从 RAM 中读出数据。
ENA		: 端口A的使能信号, 高电平表示使能端口A, 低电平表示端口 A 被禁止。
RSTA	: RAM 端口A复位信号,可配置成高电平或者低电平复位。
REGCEA	: RAM 端口A输出寄存器使能信号, 当 REGCEA 为高电平时, DOUTA 保持最后一次输出的数据。
CLKA	: RAM 端口A的时钟信号。
DOUTA	: RAM 端口A读出的数据。

接下来介绍 Vivado 软件携带了 BMG IP 核(块 RAM 生成器),配置成单端口RAM,进行读写操作。

2 硬件管脚约束

关于时钟、复位如下,

set_property -dict {PACKAGE_PIN U18 IOSTANDARD LVCMOS33} [get_ports sys_clk]
set_property -dict {PACKAGE_PIN J15 IOSTANDARD LVCMOS33} [get_ports sys_rst_n]

3 搭建IP核

选择Block Memory Generator,
在这里插入图片描述

在这里插入图片描述

Interface Type:

选择 Native 接口类型(标准 RAM 接口总线)。

Memory Type选项如下,

Memory Type(存储器类型):
可配置成 Single Port RAM(单端口 RAM)

Simple Dual Port RAM	(伪双端口 RAM)
True Dual Port RAM		(真双端口 RAM)
Single Port ROM			(单端口 ROM)
Dual Port ROM			(双端口 ROM)

ECC Options(纠错能力选项):

单端口 RAM 不支持 ECC。

Write Enable(字节写使能选项):

勾中后可以单独将数据的某个字节写入 RAM 中,这里不使能。

Algorithm Options(算法选项):

 Minimum Area 		(最小面积)Low Power 			(低功耗)Fixed Primitives	(固定的原语)

点击Port A Option,
在这里插入图片描述

Write Width		:端口 A 写数据位宽,单位 Bit,这里设置成 8。
Read Width		: 端口 A 读数据位宽,一般和写数据位宽保持一致,设置成 8。
Write Depth		:写深度,这里设置成 32,即 RAM 所能访问的地址范围为 0-31。
Read Depth		:读深度,默认和写深度保持一致。
Operating Mode	: RAM 读写操作模式。 共分为三种模式 Write First(写优先模式)、Read First(读优先模式)和 No Change(不变模式)。

使能端口类型

Enable Port Type(使能端口类型): Use ENA pin(添加使能端口 A 信号); Always Enabled(取消使能信号)

Port A Optional Output Register(端口 A 输出寄存器选项)

Port A Output Reset Options(RAM 复位信号选项):这里不添加复位信号,保持默认即可。
.

在这里插入图片描述
点击OK,
在这里插入图片描述
在“Design Run”窗口的“Out-of-Context Module Runs”一栏中出现了该 IP 核对应的run“blk_mem_gen_0_synth_1”,正在综合如下图,
在这里插入图片描述

4 创建新的verilog文件

创建一个新的设计文件 ram_rw.v,

module ram_rw(input               clk        ,  //时钟信号input               rst_n      ,  //复位信号,低电平有效output              ram_en     ,  //ram使能信号output              ram_wea    ,  //ram读写选择output  reg  [4:0]  ram_addr   ,  //ram读写地址output  reg  [7:0]  ram_wr_data,  //ram写数据input        [7:0]  ram_rd_data   //ram读数据        );//reg define
reg    [5:0]  rw_cnt ;                //读写控制计数器//控制RAM使能信号
assign ram_en = rst_n;
//rw_cnt计数范围在0~31,写入数据;32~63时,读出数据
assign ram_wea = (rw_cnt <= 6'd31 && ram_en == 1'b1) ? 1'b1 : 1'b0;//读写控制计数器,计数器范围0~63
always @(posedge clk or negedge rst_n) beginif(rst_n == 1'b0)rw_cnt <= 1'b0;    else if(rw_cnt == 6'd63)rw_cnt <= 1'b0;elserw_cnt <= rw_cnt + 1'b1;    
end  //产生RAM写数据
always @(posedge clk or negedge rst_n) beginif(rst_n == 1'b0)ram_wr_data <= 1'b0;  else if(rw_cnt <= 6'd31)  //在计数器的0-31范围内,RAM写地址累加ram_wr_data <= ram_wr_data + 1'b1;elseram_wr_data <= 1'b0 ;   
end  //读写地址信号 范围:0~31
always @(posedge clk or negedge rst_n) beginif(rst_n == 1'b0)ram_addr <= 1'b0;else if(ram_addr == 5'd31)ram_addr <= 1'b0;else    ram_addr <= ram_addr + 1'b1;
endila_0 your_instance_name (.clk(clk),           // input wire clk.probe0(ram_en),     // input wire [0:0]  probe0  .probe1(ram_wea),    // input wire [0:0]  probe1 .probe2(ram_addr),   // input wire [0:0]  probe2 .probe3(ram_wr_data),// input wire [4:0]  probe3 .probe4(ram_rd_data) // input wire [7:0]  probe4 
);endmodule

5 创建另一个实例化

实例化创建的 RAM IP 核以及 ram_rw 模块文件名 ip_ram.v,

module ip_ram(input         sys_clk ,  //系统时钟input         sys_rst_n  //系统复位,低电平有效);//wire define
wire             ram_en      ;  //RAM使能    
wire             ram_wea     ;  //ram读写使能信号,高电平写入,低电平读出 
wire    [4:0]    ram_addr    ;  //ram读写地址 
wire    [7:0]    ram_wr_data ;  //ram写数据  
wire    [7:0]    ram_rd_data ;  //ram读数据  //ram读写模块
ram_rw  u_ram_rw(.clk            (sys_clk     ),.rst_n          (sys_rst_n   ),//RAM.ram_en         (ram_en      ),.ram_wea        (ram_wea     ),.ram_addr       (ram_addr    ),.ram_wr_data    (ram_wr_data ),.ram_rd_data    (ram_rd_data ));//ram ip核
blk_mem_gen_0  blk_mem_gen_0 (.clka  (sys_clk      ),  // input wire clka.ena   (ram_en       ),  // input wire ena	.wea   (ram_wea      ),  // input wire [0 : 0] wea.addra (ram_addr     ),  // input wire [4 : 0] addra.dina  (ram_wr_data  ),  // input wire [7 : 0] dina.douta (ram_rd_data  )  // output wire [7 : 0] douta
);endmodule

6 仿真文件

对 RAM IP 核进行 仿真,文件tb_ip_ram,

`timescale 1ns / 1psmodule tb_ip_ram();reg     sys_clk;
reg     sys_rst_n;      always #10 sys_clk = ~sys_clk;initial beginsys_clk = 1'b0;sys_rst_n = 1'b0;#200sys_rst_n = 1'b1;
endip_ram u_ip_ram(.sys_clk          (sys_clk        ),.sys_rst_n        (sys_rst_n      ));endmodule

7 编译、下载

略。。。

总结

待定。。。

感谢阅读,祝君成功!
-by aiziyou

http://www.dtcms.com/a/493352.html

相关文章:

  • 沈阳市建设工程安全监督站网站有域名如何建网站
  • 网站ipv6改造怎么做 网页代码刚刚地震最新消息今天
  • 网站显示内容不显示wordpress 支持 标签
  • 网站能获取访问者中企动力是私企还是国企
  • 设计网站技术备案 网站名称涉及到行业
  • 网站顶部广告省建设厅网站6
  • 北京商会网站建设网站建设德尔普
  • 新民电商网站建设程序网站开发大约多少钱
  • pc网站开发成app难度英语网站排名
  • apache 配置网站地址电商网站做互联网金融
  • 电商网站怎么做的北京网页设计新趋势
  • 免费html网站制作成品国家示范校建设网站
  • 哪个网站做不锈钢好国外的设计网站推荐
  • 东莞东城做网站公司vs怎么建手机网站
  • 万网公司注册网站店铺推广软文范文
  • wordpress 商品站常州网
  • python网站开发架构营销的网站建设公司
  • 网站建设好后打开是目录文件用手机做自己的网站
  • 镇江大港南站2021网页设计尺寸
  • 网站做百度竞价深圳网站设计价格
  • 湖北省建设工程造价管理站网站网站建设合同制人员招聘
  • 如何做企业网站开发昆明网页重做
  • 蚌埠市建设学校网站企业培训课程开发
  • 免费企业建站选哪家什么软件推广效果好
  • 网站建设的相关技术方案东莞设计展
  • 个人性质网站名称网络推广工作室 是干啥的
  • 网站建设采用的技术网站正在建设中空白模板
  • 什么网站做污水处理药剂的好seo一键优化
  • 创建一个自己的网站的步骤深圳注册公司需要什么条件
  • 光谷做网站推广费用wordpress二级域名做站群