- 博客(17)
- 收藏
- 关注
原创 gvim命令备用
ctrl+o 退后一步,如果进入的层次比较深,可以连续退很多次;ctrl+w s s(split)以分屏模式(水平)打开当前文件。n行复制粘贴:nyy,然后将光标移至将要复制的位置,按p即可。g -o 1.txt 2.txt //横向排列,打开多个文件。g -O 1.txt 2.txt //纵向排列,打开多个文件。1.gg 首行 shift+g尾行。更改 chmod xxx -R。6.高亮 shift+*7.直接打开文件中的地址。
2023-07-07 23:25:02
127
原创 【工程备忘】收录一些实际项目中的问题
模块rdy/vld握手在dispatcher中大量使用,rdy信号作为申请新数据信号使用,vld作为输出数据有效使用,同时等待上级数据期间的信号用waitting标记(最好融合到vld中,vld拉低),该模块是桥梁模块,进行类似并串转换的工作,所以发出rdy和vld都是输出信号。在普遍意义上如果B模块多始终处理,可以增加flag_add,代表b繁忙验证program...
2020-04-28 22:47:23
347
原创 脉动阵列的深入
传统卷积使用K个LineBuffer也就是K个shifter来将数据流进行二维并行化,实际上是传统的一维串并转化(使用移位寄存器进行转化)的二维拓展,这种并行暂时叫做结构并行 而脉动阵列的实质上是一个二维流水线的形式,为什么呢 图中的每一个数据传播路径上均有一个reg,因此每一个PE实际上是在单独计算的,和其他的PE的数据流可以使用reg隔开。如果我们只看...
2019-12-16 00:59:52
911
原创 【数电基础】流水线
流水线设计将原来一个时钟周期完成的较大的组合逻辑,通过切割后分由多个时钟完成,形式上,在切割处安排一个寄存器。原理 例如一个组合逻辑由A0,A1,A2四个部分组成,每一部分延迟都是1ns,在流水线形式之前总共延迟3ns,寄存器建立时间1ns,那时钟周期最小Tclk1>=Tsetup+Tpd_critical,4ns,切为3份流水Tclk1>=Tsetup+...
2019-12-14 18:02:52
839
原创 【数字图像处理】关于一维和二维转化运算
如果只进行而位二维运算,每个输出像素结果需要k*k个运算器,运算器的数量需要随着窗口的增大而成指数的增长,因此大多进行行方向的一维运算,之后再进行列方向的运算转化为二维运算卷积卷积运算必须直接二维运算窗口求和一维运算以增量更新的形式进行在计算的像素还不到窗口的长度K时,X(n-2)=0,该算法计算的是一行中每k个像素的和,步长为1。转化为2维:解释:经...
2019-12-09 01:16:25
1267
原创 待填坑--浮点算法和除法运算
1.定点数 定点小数的加减法和整数的相同,并且和小数点的位置无关。乘法就不同了。 1.2*3.4=4.08。这里1.2的小数点在第1位之前,而4.08的小数点在第2位之前,小数点发生了移动。所以在做乘法的如果小数点位数不同就舍弃最低位。也就说1.2*3.4=4.1,这样我们就得到正确的定点运算的结果了。所以在做定点小数运算的时候不仅需要牢记小数点的位置,还需要记住表达定点小数的...
2019-11-06 19:19:58
458
原创 时序优化3
总述在第一次跑综合时最好是在没有任何物理约束的情况下,Vivado在越少物理约束的情况下综合出来的效果越好。查看每个阶段的时序报告,将每一阶段的时序违例控制在300ps以内,尽早消除问题。有时候会发现Synthesis有时序问题而在Implementation阶段反而没问题,这是因为Vivado在Implementation阶段对时序不满足的地方倾斜了更多的资源保证时序收敛。但是忽略Synth...
2019-11-05 22:40:14
641
原创 [fpga基础]基础元器件
一.基本单元 CLB是xilinx基本逻辑单元,每个CLB包含两个slices,每个slices由4个(A,B,C,D)6输入LUT(内部封装了2个5输入LUT)和8个寄存器,2个F7选择器,1个F8选择器,一个由多个与非门所组成的进位链.slice也分为SliceM和SliceL,其中M是Memory的首字母,L是Logic的首字母,比较SliceM和SliceL,他们的区别就是Slic...
2019-10-20 15:39:19
687
原创 【脉动阵列】
1.优点 对于普通并行,数据同时到达,如果最大化共享,即16个PE的输入图像数据是同一份,那么很明显,必须在数据进入乘法器之前,同时将数据复制多份,分发给16个PE,或者说,同一份数据,需要同时驱动给16个PE。这会导致布局布线能力并且考验晶体管的驱动能力,导致频率降低。而脉动阵列一个乘法器只需要驱动相邻的乘法器,延迟大幅度降低, 频率可以达到很高。 普通并行一个PE中的16个m...
2019-10-11 14:52:25
1862
原创 【基础模块】M序列(LFSR)
M序列是LFSR发生最大周期长度的特殊情况,可能产生的最长周期等于(2^n -1)。(异或)式中x^i仅指明其系数(1或0)代表ci的值,x本身的取值并无实际意义。...
2019-10-09 15:11:39
1610
原创 【时序设计】综合了各种时序问题
1.在一个always中,一个变量被赋值两遍的话,有效值是最后一遍赋值的值。2.各种判断条件所判断的值是上个周期数据末尾的值 3.因此 数据7会丢失,因为da'ta'te'm为7时上个周期数据末尾的值为64. cnt输出不会为1,而是buff被赋予1之前的那个值5.一个32位的计数器,该计数器的进位链很长,必然会降低工作频率,我们可以将其分割成4位和8位的计...
2019-10-06 21:43:02
681
原创 【填坑】vivado的异步FIFO和MMCM分频的问题
FIFO1.异步FIFO复位时间至少要3个较慢的时钟周期2.复位后的几个写周期内(2,3个周期)是无法进行写操作的3.只要wr_en拉高,立马就进行写操作。当rd_en有效的那个上升沿,并没有进行读操作,而是在下一个周期才真正读取了数据Clocking Wizard1.刚开始输出信号时候会有一个毛刺并且信号一直为0。(不知如何解决)...
2019-09-28 14:14:38
1146
转载 【数电基础】分频器
1.偶数分频器 相信大多数朋友在学习FPGA过程中接触到的第一个实验应该就是偶数分频器了,偶数分频器的设计较为简单,用一个简单的计数器就可以实现。比如要实现一个N分频(N为偶数)的分频器,可以先写一个计数器,当计数到(N/2-1)时,让输出状态翻转,并将计数器清零,这样输出的信号就是输入时钟的N分频了。具体代码如下: 偶数分频器示例,20分频即N=20,占空比50%。代码:mod...
2019-09-22 21:00:10
17249
原创 【时序设计】异步设计的亚稳态产生及信号的同步化
亚稳态的产生 当有两个时钟时,第二个时钟对第一个时钟控制的触发器输出值进行采样时,有可能在输出的值还不稳定时便采样,造成该时钟的采样会有一段时间的不稳定,并且最后可能是任意值。如图 该图显示了当在一个时钟域中生成的信号被采样得太接近来自另一个时钟域的时钟信号的上升沿时发生的同步故障。 同步失败是由输出变为亚稳态引起的,并且在输出必须再次采样时不会收敛到合法稳定状态。...
2019-09-22 18:46:39
385
原创 【数电基础】竞争和冒险
竞争(Competition): 在组合逻辑电路中,某个输入变量通过两条或两条以上的途径传到输出端,由于每条途径延迟时间不同,到达输出门的时间就有先有后,这种现象称为竞争冒险(risk):信号在器件内部通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方...
2019-09-22 16:51:53
1506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人