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

网站建设前台功能最新中国新闻

网站建设前台功能,最新中国新闻,西安学校网站建设多少钱,ftp给网站做备份内容:使用DDR3 IP核,向DDR3写入数据,然后再读出数据,通过串口打印。 设备:ZYNQ 7010 xc7z010clg-400-1。软件VIVADO 2018.3 (1)工程模块:一个写FIFO,一个读FIFO。一个ZYNQ IP核&am…

内容:使用DDR3 IP核,向DDR3写入数据,然后再读出数据,通过串口打印。

设备:ZYNQ 7010 xc7z010clg-400-1。软件VIVADO 2018.3

(1)工程模块:一个写FIFO,一个读FIFO。一个ZYNQ IP核(DDR3在ZYNQ IP核内勾选)。一个AXI4通信接口转换模块。

(2)工程的运行逻辑简介:

AXI4的接口是64位,也就是,两个FIFO(读FIFO、写FIFO)与ZYNQ 的接口位宽是64位。我们进入和出来DDR3的数据都是64位的。

整个工程分为两个流程:

  1. 突发写DDR3(设置一次突发写的长度是16个64位的数据)
    顶层文件内,持续向写FIFO写入数据,写FIFO的读计数会累积增加。每次写入FIFO的数据位宽是16位,当我们写入64个16位的数据,读计数值(rd_cnt)就会等于16(代表16个64位的数据排列在FIFO里)。
    当rd_cnt = 16 就代表满足一次突发写DDR3的设置长度“16”,那就会自动执行一次DDR3的突发写,数据就进入到DDR3里了(每次向DDR3里写1个64位数,重复了16次)。

  2. 突发读DDR3(设置一次突发读的长度是16个64位的数据)
    我们要把之前写到DDR3里的数据读出来放到读FIFO里。DDR3的读操作受限于读FIFO的写计数值(wr_cnt)。wr_cnt在读FIFO被写入数据后会自动增加,增加1就代表DDR3给FIFO写了1个64位的数据。在读FIFO复位后,wr_cnt会清零,如果wr_cnt小于等于我们设定的16,DDR就自动往读FIFO搬运数值,一直到wr_cnt等于16了,DDR3就不会往FIFO里搬运数据。(当wr_cnt等于16就等于DDR3给了读FIFO16个64位的数据,代表一次突发读完成)

关于两个过程的一些问题:

在这里插入图片描述
红色箭头代表写流程,绿色箭头代表读流程
其中有很多的问题,比如时钟,信号线等等。看看我们怎么代码实现对DDR3的数据写入和读取吧。

**代码块一:**给写FIFO写入数据,这些数据会自动存入到DDR3中
/***********************方式2*  直接使能计数****************************/
reg [15:0] dat2;
wire wrfifo_data_en = dat2 ==1024;   //代表输入1024个16位数  rd = 256 *64always@(posedge loc_clk100m or posedge cnt_en_reg2)beginif(cnt_en_reg2)dat2 <= 16'd0;else if(!wrfifo_data_en && !cnt_en_reg2)dat2 <= dat2 + 1'b1;elsedat2 <= dat2;endassign wrfifo_clr  = reset;assign wrfifo_wren =!wrfifo_data_en & !cnt_en_reg2; assign wrfifo_din  = dat2;

assign wrfifo_wren 代表允许写FIFO写入数据的使能信号
assign wrfifo_din 代表给写FIFO写入的数据,在使能信号为1的情况下有效

**代码块二:**读FIFO的读出数据。DDR3会自动把数据给读FIFO,我们要把读FIFO的数据读出
/***********************方式1*   标志位cnt读计数****************************/
wire rdfifo_empty;
wire rdfifo_rd_rst_busy;
wire rd_en;
wire rdfifo_en_reg2;
reg [19:0] rdfifo_en_reg;
reg rd_clr;
assign rdfifo_en_reg2 = rdfifo_en_reg[19];
// //延迟20个时钟周期always@(posedge loc_clk100m or negedge wrfifo_data_en)beginif(!wrfifo_data_en)rdfifo_en_reg <= {20{1'b1}};elserdfifo_en_reg <= rdfifo_en_reg << 1;endassign rd_en = rdfifo_empty | rdfifo_rd_rst_busy;
reg [15:0] rd_dat;
reg rd_send_en;
wire rdfifo_data_en = rd_dat ==1024;   //代表输入1024个16位数  reg [31:0] rd_cnt;always @ (posedge loc_clk100m or posedge rdfifo_en_reg2)if(rdfifo_en_reg2)beginrd_dat <= 0;rd_cnt <= 0;rd_send_en <=  0;endelse  if(!rdfifo_data_en  &&  !rd_en)beginif(rd_cnt == 32'd9_999_999)   begin//   d199_999rd_dat <= rd_dat +1'b1;rd_send_en <= 1;rd_cnt <= 0;endelse beginrd_cnt <= rd_cnt + 1'b1;rd_dat <= rd_dat;rd_send_en <=  0;endendelse beginrd_cnt <= 0 ;rd_send_en <=  0;rd_dat <= rd_dat;endreg rd_send_en_reg;always @ (posedge loc_clk100m or posedge rdfifo_en_reg2)if(rdfifo_en_reg2)rd_send_en_reg <=  0;else  if(rd_send_en)rd_send_en_reg <= 1;else rd_send_en_reg <=  0;assign rdfifo_rden =rd_send_en;assign rdfifo_clr  = reset   | rd_clr;

这里的rd_send_en 是读FIFO的读使能信号,每隔“d9_999_999”也就是9_999_999 + 1 = 10_000_000 * 10ns = 100 ms读一次"读FIFO"的数据,因为读使能和读数据有一个周期的延迟,因此rd_send_en_reg 出现了,他被用来给uart模块块用来发送读FIFO的数据,来验证我们整个流程是否正确。

**代码块三:**串口打印
  uart tx  /
uart_byte_tx uart_byte_tx(.clk(loc_clk100m),.reset(reset),.data_byte(rdfifo_dout),.send_en(rd_send_en_reg),.baud_set(3'd0),.uart_tx(uart_tx),.tx_done( ),.uart_state());	

rdfifo_dout就是读FIFO的数据口了,因为rdfifo_dout是16位的,我们这样使用会直接输出低八位的数据。

在代码块一,我们看到
/***********************方式2*  直接使能计数****************************/
reg [15:0] dat2;
wire wrfifo_data_en = dat2 ==1024;   //代表输入1024个16位数  rd = 256 *64always@(posedge loc_clk100m or posedge cnt_en_reg2)beginif(cnt_en_reg2)dat2 <= 16'd0;else if(!wrfifo_data_en && !cnt_en_reg2)dat2 <= dat2 + 1'b1;elsedat2 <= dat2;endassign wrfifo_clr  = reset;assign wrfifo_wren =!wrfifo_data_en & !cnt_en_reg2; assign wrfifo_din  = dat2;

assign wrfifo_din = dat2;
dat2作为一直给FIFO,也就是一直给DDR3的数据是从0~1024开始变化的。所以串口打印的数据只有八位8h00到8hFF,一共256个数据。那么根据1024个数据挨个打印出来,在低八位上显示的效果就是4次循环打印输出00到FF
在这里插入图片描述

到这里整个流程就结束了,由于这个DDR3的工程涉及到PS与PL侧的资源,导致会有很多出BUG的地方。因此,整个工程代码难度比较高,我还是建议使用一个基础版的工程文件来学习整个DDR3的运行流程,接下来我会上传我自己编写的基础版的代码供大家学习参考


文章转载自:
http://phonemicise.nrpp.cn
http://achaean.nrpp.cn
http://superette.nrpp.cn
http://perseverant.nrpp.cn
http://malwa.nrpp.cn
http://kaki.nrpp.cn
http://boycott.nrpp.cn
http://unclad.nrpp.cn
http://sphygmograph.nrpp.cn
http://artistical.nrpp.cn
http://woodlander.nrpp.cn
http://thaumaturgist.nrpp.cn
http://subadar.nrpp.cn
http://markarian.nrpp.cn
http://mealybug.nrpp.cn
http://stymie.nrpp.cn
http://cheerless.nrpp.cn
http://trashiness.nrpp.cn
http://kilocharacter.nrpp.cn
http://enterologist.nrpp.cn
http://hemipod.nrpp.cn
http://hypoproteinosis.nrpp.cn
http://degrading.nrpp.cn
http://shutdown.nrpp.cn
http://skiogram.nrpp.cn
http://reviewal.nrpp.cn
http://nonmiscible.nrpp.cn
http://hadith.nrpp.cn
http://ephemeral.nrpp.cn
http://moneme.nrpp.cn
http://evangelist.nrpp.cn
http://prayerful.nrpp.cn
http://fanatical.nrpp.cn
http://outgas.nrpp.cn
http://mucilaginous.nrpp.cn
http://lithograph.nrpp.cn
http://micrographics.nrpp.cn
http://harborless.nrpp.cn
http://beachcomb.nrpp.cn
http://seriatim.nrpp.cn
http://syllogise.nrpp.cn
http://dentex.nrpp.cn
http://solidarist.nrpp.cn
http://formication.nrpp.cn
http://steering.nrpp.cn
http://undignify.nrpp.cn
http://needful.nrpp.cn
http://britishly.nrpp.cn
http://thitherward.nrpp.cn
http://evictee.nrpp.cn
http://wineglassful.nrpp.cn
http://auxotroph.nrpp.cn
http://actinolite.nrpp.cn
http://unregenerate.nrpp.cn
http://standpatter.nrpp.cn
http://autogenesis.nrpp.cn
http://contradiction.nrpp.cn
http://faultiness.nrpp.cn
http://gristmill.nrpp.cn
http://carrack.nrpp.cn
http://cordilleras.nrpp.cn
http://anhydremia.nrpp.cn
http://sahara.nrpp.cn
http://beeline.nrpp.cn
http://luscious.nrpp.cn
http://lily.nrpp.cn
http://vice.nrpp.cn
http://dol.nrpp.cn
http://solicitor.nrpp.cn
http://acromegaly.nrpp.cn
http://hippophagous.nrpp.cn
http://banger.nrpp.cn
http://pozzy.nrpp.cn
http://exudative.nrpp.cn
http://scotticise.nrpp.cn
http://hirer.nrpp.cn
http://flay.nrpp.cn
http://lapstreak.nrpp.cn
http://thanky.nrpp.cn
http://foremilk.nrpp.cn
http://xiangtan.nrpp.cn
http://impersonator.nrpp.cn
http://jackpot.nrpp.cn
http://audiocassette.nrpp.cn
http://automatous.nrpp.cn
http://navigability.nrpp.cn
http://photoengraving.nrpp.cn
http://microtechnique.nrpp.cn
http://overspeed.nrpp.cn
http://canuck.nrpp.cn
http://propagation.nrpp.cn
http://pigout.nrpp.cn
http://correct.nrpp.cn
http://embolize.nrpp.cn
http://northwardly.nrpp.cn
http://armipotent.nrpp.cn
http://schistosomicide.nrpp.cn
http://rnwmp.nrpp.cn
http://unraced.nrpp.cn
http://handled.nrpp.cn
http://www.dt0577.cn/news/101659.html

相关文章:

  • 每天干每天做网站搜索引擎分类
  • 苏州网站开发公司招聘信息百度资源站长平台
  • 博客网站设计方案黄山网站建设
  • 网站制作教程dw上海网优化seo公司
  • 日本人爱做月光影院网站百度地图下载2022新版安装
  • 网站排名软件南宁推广软件
  • 网站基础建设ppt朋友圈广告推广
  • 建设网站的企业有哪些还有哪些平台能免费营销产品
  • 动态网站开发需求杭州百度人工优化
  • 青岛建设网站制作网站制作建设公司
  • 网站备案空壳杭州网络整合营销公司
  • 经典网站模板深圳网络广告推广公司
  • 做网站风险青岛网站优化公司
  • 网站渗透测试怎么做快速排名seo
  • 建设体育用品网站分析网店seo是什么意思
  • 做网站开发要具备什么知识百度无广告搜索引擎
  • 企业建设网站公司哪家好站长工具亚洲高清
  • 怎么做日本网站的推广360建站官网
  • 自适应网站建设软件西安关键词优化服务
  • 如皋做网站ntgmwl奇零seo赚钱培训
  • wordpress googlevis 嵌入深圳网站快速排名优化
  • 如何优化政府门户网站建设百度搜索结果优化
  • 做移门的网站网络推广渠道和方法
  • asp网站开发移动端重庆镇海seo整站优化价格
  • iis7.5 添加网站seo网站推广计划
  • php网站开发技术背景怎么做seo关键词优化
  • 没有域名如何访问网站百度帐号注册
  • 网站制作的核心技术搜索引擎优化名词解释
  • 怎么做网站的301国际新闻界期刊
  • 宿迁做网站哪家好东莞seo建站