FIFO读数取数

news/2024/9/18 19:35:16/文章来源:https://www.cnblogs.com/Sichg/p/18369049

FIFO:先进先出的缓存器。

常应用于带宽不同或者跨时钟域等数据传输情况。 相关参数:数据宽度,存储深度,将空标志位。空标志位。将满标志位,满标志位。读写时钟。其中将满信号与将空信号相较于真正的满信号与空信号都会提前一个时钟周期拉高。

FIFO generator配置注意事项:

Basic选项卡:Interface Type 选 Native,即传统接口。FIFO Implementation是指选择想要实现的是同步FIFO还是异步FIFO,以及使用什么资源实现FIFO,当选择Independent Clocks Block RAM,就是表示用块RAM实现异步FIFO。值得注意,FIFO是一种不包含地址的缓存方式。因此这里选择RAM或者ROM其实不影响对FIFO的应用。 Native Ports选项卡:Read Mode用于设置读FIFO时的读模式,一般选默认的 Standard FIFO. 在Data Port Parameters中设置读写端口的数据总线宽度与FIFO深度(Write Width,Write Depth,Read Width)。Reset Pin是复位信号,按需勾选。其余默认。 Status Flags选项卡:按需勾选将满和将空。其余默认。 Data Counts选项卡:计数FIFO中有效数据的个数,为更方便观察读写过程,可以将读写端口的计数都打开。Write/Read Data Count表示计数值总线位宽。一般选8bit就够用了。 Summary选项卡:显示当前配置。确认当前配置无误时直接点击OK. Generate Output Products窗口,直接点击Generate。

.veo例化模版:

fifo16to8 your_instance_name (.rst(rst),                      // input wire rst.wr_clk(wr_clk),                // input wire wr_clk.rd_clk(rd_clk),                // input wire rd_clk.din(din),                      // input wire [15 : 0] din.wr_en(wr_en),                  // input wire wr_en.rd_en(rd_en),                  // input wire rd_en.dout(dout),                    // output wire [7 : 0] dout.full(full),                    // output wire full.empty(empty),                  // output wire empty.rd_data_count(rd_data_count),  // output wire [10 : 0] rd_data_count.wr_rst_busy(wr_rst_busy),      // output wire wr_rst_busy.rd_rst_busy(rd_rst_busy)      // output wire rd_rst_busy
);

基础的模块例化之fifo_rd:

功能:设定rd_cnt[7:0],以便取数存用。`timescale 1ns / 1nsmodule fifo_rd(input             clk ,       // 时钟信号input             rst_n ,   // 复位信号input                CLJwhole_en , //收好一组指令留待处理。output  reg  [7:0]  rd_cnt ,   // 向外读64个。output  reg   fifo_rd_en        // FIFO读使能
  );reg  [3:0]  state;//读出FIFO的数据always @(posedge clk ) beginif(~rst_n) beginfifo_rd_en <= 1'b0;rd_cnt    <= 4'd0;state      <= 4'd0;endelse begincase(state)2'd0: begin                     if(CLJwhole_en) begin        //如果检测到FIFO被写满rd_cnt <= 8'd1;     //给出第一个rd_cnt.fifo_rd_en <= 1'b1; state <= 2'd1;         //开始取数。得到64个8比特数。endelsestate <= state;end 2'd1: begin //接下来在rd_cnt从1数到64的过程中FIFO就会每个时钟拍打出一个[7:0] dout。if(rd_cnt == 8'd65) begin //rd_cnt数到第65开始关闭rd_en。等待下一个whole_en。fifo_rd_en <= 1'b0;    //关闭读使能rd_cnt <= 8'd0;state   <= 2'd2;          //开始读操作endelserd_cnt <= rd_cnt + 4'd1;end2'd2: beginrd_cnt <= 8'd0;fifo_rd_en <= 1'b0;    //关闭读使能state      <= 4'd0;end default : state <= 2'd0;endcaseendendendmodule

fifo_rd功能优化之“存满读空预处理”

(留待编辑)

generate 变量i取数

wire [7:0]  rcvCLJ_fifo [63:0];
genvar i;
generate
for(i=0; i<=63; i=i+1) begin: dataassign rcvCLJ_fifo[i] = (rd_cnt == i+2) ? fifo_dout : rcvCLJ_fifo[i];
end
endgenerate

 为什么从i+2开始算?

(留待编辑)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/784190.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用midjourney?MidJourney订阅计划及国内订阅教程

MidJourney订阅计划 MidJourney提供四种不同的订阅计划:订阅计划 每月费用 年度费用 使用限制基础计划 $10/月 $96/年($8/月) 每月可生成200张图,无fast模式,不能免排队生成图标准计划 $30/月 $288/年($24/月) 每月可无限量生成图片,15小时fast模式,免排队生成图,有隐…

寻访中国100家.NET中大企业 —— 第二站:苏州行

一:事情起因 在.NET圈里混了十多年,相信有不少人知道我专注于玩 .NET高级调试,如今技术上的硬实力还是能够解决市面上的一些疑难杂症,但软实力却在另一个极端,如(人际交往,人情事故),所以就萌生了刻意训练的念头,便自我发起了这个活动 "寻访中国100家.NET中大企…

7zip如何使带中文的文件名以utf-8编码?

问题: 在win 上压缩中文模版文件后,在Linux 上解压乱码 解决方案: 7-zip压缩的zip文件里面带有中文文件名的,在其他平台上解压后中文文件名乱码。在网上查找了下资料,使用7-zip压缩zip文件,可以使用参数cu=on,强制文件名以utf-8格式编码,在其他平台上解压后正常。 下图…

Windows 10、Windows 11 配置 gradle8

Windows 10、Windows 11 配置 gradle8GRADLE_HOME=D:\development\gradle\gradle-8.8GRADLE_USER_HOME=D:\\repository\\gradle-repository%GRADLE_HOME%\bin

windows环境Jenkins部署前端项目

在Windows环境下使用Jenkins部署前端项目,可以按照以下步骤进行: 1. 安装Jenkins可以从Jenkins官网下载Windows版本的Jenkins安装包。 安装完成后,启动Jenkins服务,并通过浏览器访问 http://localhost:8080 进入Jenkins管理界面。 windows环境Jenkins部署前端项目2. 配置Je…

提升认知:解锁成功之门的钥匙——实践、交流与阅读的力量

​ 认知,这个看似抽象的概念,实则是我们理解世界、做出决策的基石。它如同种子,孕育着思维的花朵,最终结出行为的果实,影响着我们生活的方方面面。我们所赚取的每一分钱,都是对这个世界认知的直接体现。当我们的认知深刻,我们能够洞察事物的本质,把握机遇,从而获得相应…

短URL服务设计

引言 在营销系统里,为了增加系统的活跃用户数,经常会有各种各样的营销活动。这类活动几乎都是为了充分利用存量用户的价值,促使他们分享产品或App以达到触达到更多用户的目的。又或者是出于营销目的,群发优惠券触达短信这种场景。 分享App活动页(或其他各种页面)时URL一般…

.NET 9 优化,抢先体验 C# 13 新特性

前言 微软即将在 2024年11月12日发布 .NET 9 的最终版本,而08月09日发布的.NET 9 Preview 7 是最终发布前的最后一个预览版。这个版本将与.NET Conf 2024一同亮相,并已与 Visual Studio 2022 17.12 预览版1一同发布,可以直接通过Visual Studio安装。同时Visual Studio Code …

原生JS实现虚拟列表

什么是虚拟列表 如果我们要将一个数组渲染为列表添加到页面中,我们可以很容易实现,无非就是循环遍历这个数组,然后依次创建 DOM 元素插入即可,但是如果数据量很庞大,比如有一万条数据,我们就要把一万个 DOM 结点插入到页面中,这显然会导致页面的卡顿。为了针对这个场景进…

高德/百度地图: 坐标拾取系统:用经纬度搜索

一,高德地图:坐标拾取器 https://developer.amap.com/tools/picker 如图: 二,百度地图:拾取坐标系统 https://api.map.baidu.com/lbsapi/getpoint/index.html

面试必备之TCP知识

概述 关于TCP的杂乱知识点,不成体系,毕竟TCP真的太复杂。 TCP,Transmission Control Protocol;IP,Internet Protocol,两者共同组成TCP/IP协议族,包含一系列构成互联网基础的网络协议。 OSI七层网络模型图片来自于OSI七层网络模型 OSI七层由于太过严格,所以并没有应用在…

分布式系列之限流组件

概述 在高并发场景下,请求量瞬间到达,后端服务器即使有缓存、集群主备、分库分表、容错降级等措施,也有可能扛不住这请求量,因此可考虑引入限流组件。限流的目的:防止恶意请求流量或流量超出系统承载。 应用场景:网关层校验流量,拦截非法请求,或直接抛弃部分流量(后来…