fifo

Why implement Queues as Circular Array?

对着背影说爱祢 提交于 2019-12-03 01:15:23
When implementing a FIFO like Queues, my instructor always advise us to represent it as a circular array and not in a regular array. Why? Is it because in the latter, we would end up having garbage data in the array? Simulant If your are using a fixed number of Array-Slots/Elements, it is easier to recycle your slots in a circular arrangement, because you do not need to reorder your Elements. Whenever the first Element gets removed in an Array-Like arrangement, you must move your remaining Elements one position to the front, so the head is not null . In your circular Queue, you just increase

Tensorflow Enqueue operation was cancelled

匿名 (未验证) 提交于 2019-12-03 01:14:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I had built a convolutional neural network in tensorflow. It is trained and now I am unpacking it and performing evaluations. import main import Process import Input eval_dir = "/Users/Zanhuang/Desktop/NNP/model.ckpt-250" checkpoint_dir = "/Users/Zanhuang/Desktop/NNP/checkpoint" def evaluate(): with tf.Graph().as_default() as g: images, labels = Process.eval_inputs() forward_propgation_results = Process.forward_propagation(images) init_op = tf.initialize_all_variables() saver = tf.train.Saver() top_k_op = tf.nn.in_top_k(forward_propgation

FPGA整理资料

匿名 (未验证) 提交于 2019-12-03 00:40:02
1.寄存器与锁存器 锁存器:电平触发的存储单元,在有效电平时间里可以多次改变数据。 去毛刺的方法 :格雷码计数器(*https://blog.csdn.net/qp314/article/details/5147695*)代替二进制码计数器,或者用D触发器同步。) 时序逻辑结构 latch:锁存器,是由电平触发,结构图如下: 组合逻辑结构 2.FPGA实现的verilog编码流程 :文本编辑→功能仿真→逻辑综合→布局布线→时序仿真 3 .对于同步接口的设计 ,同步输入信号需要约束――input delay――――,同步输出信号需要约束――output delay――分别关联到同步时钟上 4. 逻辑设计中的同步电路有源同步,系统同步,自同步 三种,传统并行接口采用的是源同步或者系统同步的方法来实现的,serdes接口―SerDes(Serializer-Deserializer)是串行器和解串器的简称http://blog.sina.com.cn/s/blog_aec06aac01013m5g.html―均衡和数据时钟相位检测――GMII接口(是8bit并行同步收发接口,采用 8λ 接口数据,工作时钟125MHz,因此传输速率可达 1000Mbps 。同时 兼容MII 所规定的10/100 Mbps工作方式。) 5 .关于FPGA的仿真: 主要有功能仿真,门级仿真和时序仿真

UVM糖果爱好者教程 - 19.Analysis FIFO

匿名 (未验证) 提交于 2019-12-03 00:30:01
jelly beans ; 一个流是用于“期望的” jelly beans ,另一个是用于“实际的” jelly beans 。 同时假设 jelly beans 被异步喂入记分板。 为了同步 jelly beans ,我使用了两个analysis FIFO: jelly bean计分板 这是实现上述记分牌的示例代码。下面的代码应该是不言自明的。需要注意的是,获取FIFO的下一个项目的方法是阻塞任务(第43和44行)。不过,不管怎样,这个任务在UVM类参考文献中没有记录。 2015年2月14日:更改为明确使用get_peek_export,而不是使用未记录的获取任务。 当期望的 jelly bean 和实际的 jelly bean 都可用时,记分板将它们比较(第45行)。在完成仿真(extract_phase)之前,计分板将检查FIFO中是否有任何存在残留的 jelly bean 。这不容易吗? class asynchronous_jelly_bean_scoreboard extends uvm_component; `uvm_component_utils( asynchronous_jelly_bean_scoreboard ) uvm_analysis_export #( jelly_bean_transaction ) expected_analysis_export;

FIFO阈值如何设置

匿名 (未验证) 提交于 2019-12-03 00:22:01
FIFO阈值如何设置 1、 什么是 FIFO ? FIFO(first in firstout)是一种用寄存器reg或者RAM实现的存储结构,常用于存储数据通道中的数据流,采用先入先出的数据,当下游模块无法及时处理上流模块输出的数据时,此时需要用FIFO暂存数据,防止数据丢失。 2、 什么是 FIFO 阈值 FIFO阈值包含将满阈值afull_cnt和将空阈值aempty_cnt,当FIFO内包含的数据data_cnt大于等于afull_cnt时,将满信号有效(afull为1),afull传输给上游模块A,通知上游模块停止发送数据,防止FIFO发送溢出,NOTE:将满阈值afull_cnt的作用是防止FIFO发送溢出导致数据丢失。将空阈值的作用时防止FIFO空的,即FIFO中没有有效数据了还会产生读数据操作。 3、 FIFO 将满阈值如何设置 请看下图,数据data和有效信号vld从模块A产生,经过N拍延时,输入到FIFO,FIFO产生将满信号afull,经过M拍延时反馈到模块A,假设模块A接收到afull=1时,立即停止发送数据。假设FIFO深度为depth_fifo,每拍为一个时钟周期。 1为了保证FIFO不发生溢出,请问将满阈值afull_cnt至少应该设置成多少? 2为了充分发挥FIFO的性能,FIFO深度depth应该为多少? FIFO将满阈值如何设置: 1

FIFO

匿名 (未验证) 提交于 2019-12-03 00:11:01
FIFO是一种先入先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常方便,但缺点是只能顺序的写入数据、读出数据,其内部地址是由内部读写指针自动加1完成,不能像普通存储器那样由地址线读取或者写入某个地址。 FIFO的分类根据FIFO工作的时钟域,分为同步FIFO和异步FIFO。同步FIFO是指读写时钟为同一时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟相互独立。 FIFO设计的难点在于怎么判断FIFO的空满状态。为了保证数据正确的写入和读出,而不发生溢出或读空的状态出现,必须保证FIFO在满的情况下,不能进行写操作。在空的状态下不能进行读操作。 同步FIFO的实现代码: 1 module fifo( //信号定义---读、写、data_in,data_out,clk,复位,空,满 2 input [7:0] datain, 3 input rd,//读 4 input wr,//写 5 input rst, 6 input clk, 7 output [7:0] dataout, 8 output full, 9 output empty, 10 ); 11 12 wire [7:0] dataout;//输出信号定义为wire类型 ,输入默认为wire 13 reg full_in,empty_in; (空满寄存器) 14

STM32 407的CAN 滤波器学习

匿名 (未验证) 提交于 2019-12-02 23:57:01
根据配置,每1组过滤器组可以有1个,2个或4个过滤器. 这些过滤器相当于关卡,每当收到一条报文时,CAN要先将收到的报文 从这些过滤器上"过"一下,能通过的报文是有效报文,收进FIFO中, 不能通过的是无效报文(不是发给"我"的报文),直接丢弃. 所有的过滤器是并联的,即,一个报文只要通过了一个过滤器,就是算是有效的. 每组过滤器组有两种工作模式: 标识符列表模式,标识符屏蔽位模式. 在标识符列表模式下,收到报文的标识符必须与过滤器的值完全相等,才能通过. 在标识符屏蔽位模式下,可以指定标识符的哪些位为何值时,就算通过.这其实就是限定了处于某一范围的标识符能够通过. 在一组过滤器中,整组的过滤器都使用同一种工作模式. 另外,每组过滤器中的过滤器宽度是可变的,可以是32位或16位. 由工作模式和宽度,一个过滤器组可以变成以下几中形式之一: (1) 1个32位的屏蔽位模式的过滤器. (2) 2个32位的列表模式的过滤器. (3) 2个16位的屏蔽位模式的过滤器. (4) 4个16位的列表模式的过滤器. 所有的过滤器是并联的,即,一个报文只要通过了一个过滤器,就是算是有效的. 每组过滤器组有两个32位的寄存器用于存储过滤用的"标准值",分别是FxR1,FxR2. 在32位的屏蔽位模式下: 在32位的列表模式下: 在16位的屏蔽位模式下: 在16位的列表模式下:

fifo深度计算

匿名 (未验证) 提交于 2019-12-02 23:40:02
原文地址: http://comm.chinaaet.com/adi/blogdetail/37555.html 其实很惭愧,在这之前用FIFO都是直接用IP,因为应用场景很简单,因此FIFO深度的选择也比较随意,并没想很多。今天在网上看到一个异步FIFO深度计算的题目,发现对于这块并不熟悉,因此注意了下,下面写写自己的一些理解吧。提前说明下,因为我实际中并没有碰到需要去计算FIFO深度的场景,因此可能有些理解是错误的,希望各位大侠能批评指正。 首先,一定要理解清楚FIFO的应用场景,这个会直接关系到FIFO深度的计算,如果是面试官抛出的问题,那么有不清楚的地方,就应该进行询问。如果是笔试或者工程中需要计算FIFO深度的话,那么就需要自己考虑清楚。 其次,异步FIFO,读写时钟不同频,那么FIFO主要用于数据缓存,我们选择的FIFO深度应该能够保证在最极端的情况下,仍然不会溢出。因此考虑的前提一般都是写时钟频率大于读时钟频率,但是若写操作是连续的数据流,那么再大的FIFO都无法保证数据不溢出。因此可以认为这种情况下写数据的传输是“突发Burst”的,即写操作并不连续,设计者需要根据满标志控制或者自己来控制写操作的起止。 宏观地,从整个时间域上看,"写数据=读数据",这个条件必须要满足,如果这个大条件不满足的话,用FIFO是没有效果的。但是在发送方"突发"发送数据的时间T内

FIFO serial queue using GCD

自作多情 提交于 2019-12-02 23:35:40
I am trying to create a (network) synchronized array for the company I work for. While the networking part works fine, I have dwelled into an issue. My wish was to create a new queue using dispatch_create_queue , to which I would add two blocks that are not to run on the main thread, but in a serial manner, meaning that first the first block has to run, then the second, and never in parallel. I've read the apple documentation, but it is confusing to say the least. When I create my queue using dispatch_queue_create and then add the blocks (after they have been defined) using dispatch_sync , I

AXI4-STREAM DATA FIFOѧϰ

匿名 (未验证) 提交于 2019-12-02 23:34:01
版权声明:本文为博主原创文章,转载请声明原作者。 https://blog.csdn.net/QQ286615275/article/details/90297888 如图是该fifo的配置图,vivado版本2018.2. AXI4-Stream Data FIFO 配置 General Options Component Name 器件名字 FIFO depth FIFO的深度,可以在16到32768之间变化,具体情况视情况而定,但要是2的n次幂。 Enable packet mode 使能包模式:此项设定需要TLAST信号被使能。FIFO的操作在包模式下被修改为存储传送的数据,直到TLAST信号被响应。当TLAST信号被响应或者FIFO满了,存储的数据将被送至AXI4-Stream master interface. Asynchronous Clocks 异步时钟:启用后S_AXIS_ACLK和M_AXIS_ACLK将会是异步时钟。 Synchronization Stages across Cross Clock Domain Logic 当启用异步时钟后,才会有该选项,其作用相当于跨时钟域时的打拍操作。一般默认即可。 ACLKEN Conversion Mode 此选项用来选择ACLKEN信号的转换模式。 None 没有和这个IP相关的ACLKEN 信号相关 S