随笔分类 -  HDL_Coding笔记

摘要:目前的NPU模块的module level sim是c和sv混合的,npu core的行为由c code生成。方针的pattern有时候需要加入一些delay,c code自带的mdelay不能满足要求,自带的环境里面有一个delay函数,但是没有单位,因此在不想看函数code的情况下,想通过两次d 阅读全文
posted @ 2023-03-30 14:00 天山明月 阅读(1020) 评论(0) 推荐(0)
摘要:set_clock_transition 设定时钟边沿转换的时间 set_clock_uncertainty 设定时钟的偏移和抖动 set_input_delay set_output_delay 设定外部IO delay,一般以0.6倍时钟周期为宜。 set_max_delay 设定从外部IO进入 阅读全文
posted @ 2022-05-12 14:25 天山明月 阅读(400) 评论(0) 推荐(0)
摘要:AXI还是比较牛逼的,靠着ARM的广泛应用,AXI也成了重要标准协议。 最近公司也从自有协议开始往AXI上面转,因此新人培训也加入了AXI的内容。 今天看完了ARM的introduction文档,做个简单的小总结,还有一些不明白的地方记录下来。 顺便吐槽一下,为了政治正确,现在Master和Slav 阅读全文
posted @ 2021-08-31 17:57 天山明月 阅读(1166) 评论(0) 推荐(0)
摘要:调试的时候可以直接烧写bit文件,但是断电就没了。 生成mcs文件后是烧写到FPGA的ROM上,断电也还在。 阅读全文
posted @ 2020-10-14 16:36 天山明月 阅读(231) 评论(0) 推荐(0)
摘要:OCV,On_Chip_Variation PVT,Process,Voltage,Temperature。 PVT三者相互组合就形成了如下的Senario。对应的解释如下。 WC:worst case slow,低电压,高温度,慢工艺 -> 一般情况下delay最大,setup 差。 WCL:wo 阅读全文
posted @ 2020-08-31 18:07 天山明月 阅读(2747) 评论(0) 推荐(0)
摘要:Design For testability DFT(Design for Test):可测试性设计(DFT)是一种集成电路设计技术,它将一些特殊结构在设计阶段植入电路,以便设计完成后进行测试。电路测试有时并不容易, 这是因为电路的许多内部节点信号在外部难以控制和观测。通过添加可测试性设计结构,例如 阅读全文
posted @ 2020-08-30 15:12 天山明月 阅读(2923) 评论(0) 推荐(0)
摘要:众所周知,Verilog提供了5中表示延迟的语句: 1 (#5) a = b;// blocking assignment with LHS··············1 2 3 a = (#5) b;// blocking assignment with RHS··············2 4 阅读全文
posted @ 2020-08-28 19:54 天山明月 阅读(2933) 评论(0) 推荐(0)
摘要:Common Path Pessismism Removal。 Common path 是指的两条时钟路径在分叉前一起走过的部分,起点由时序分析来定。 Pessismism 是指在分析建立保持时间的时候,我们取的都是最坏/悲观的情况。 那么为什么又要Removal呢?请看下图。 以建立时间分析为例, 阅读全文
posted @ 2020-08-23 16:02 天山明月 阅读(774) 评论(0) 推荐(0)
摘要:异步fifo、格雷码以及空满判断 一直以来都有两个做法,第一个是多bit信号利用异步fifo或者ram做跨时钟域同步,还有一个就是利用格雷码。 实际上有些异步fifo就是用的ram+格雷码实现的,因为fifo的读写指针是递增的。当然也有些fifo没用格雷码,这是后话。我们先看看异步FIFO不用格雷码 阅读全文
posted @ 2020-08-19 19:12 天山明月 阅读(1080) 评论(0) 推荐(0)
摘要:在这里记录一下自己插流水的心得。 最近是做了一个补边的模块,补完给卷积核做卷积运算。因为只用了一个FIFO还是怎么样,时序紧张了,就是大的行缓存FIFO的输出接回去FIFO的输入,另一路接到另一个输出FIFO上。因此插了一级寄存器,插的过程中发现两个可能会矛盾的点。再加上之前梯度计算部分也涉及到了许 阅读全文
posted @ 2020-08-19 13:57 天山明月 阅读(301) 评论(0) 推荐(0)
摘要:首先我们要分析Cmos电路的功耗来源。 高器件延迟的Cmos电路之所以能取代低延迟的TLL,最大的优点之一就是功耗低,主要原因静止状态下截止电流极低。原因在于Cmos(Complemetary Symmetry Metal-Oxide-Semiconductor Circuit) 内部互补对称的两个 阅读全文
posted @ 2020-08-18 17:14 天山明月 阅读(1562) 评论(0) 推荐(0)
摘要:与 AND, 或 OR, 非 NOT, 与非 NAND (not and), 或非 NOR (not or), 异或 XOR (exclusive or), 同或 NXOR (not exclusive or) 阅读全文
posted @ 2020-08-07 22:39 天山明月 阅读(316) 评论(0) 推荐(0)
摘要:最近在编写仿真的时候顺便研究了一下电路延迟,延迟分两种,一种是惯性延迟,一种是传输延迟. 惯性延迟可以理解为滤波,其本身的产生原因也是电路中存在的大量电容,电容有充放电效应,因此可以平波峰波谷,类似水库. 但是要注意的一点是,网上的解释里面的图片都是一个带尖峰脉冲的输入进来,输出丝毫不变,这是不可能 阅读全文
posted @ 2020-08-07 21:55 天山明月 阅读(581) 评论(0) 推荐(0)
摘要:在我刚接触FPGA的时候,我的师傅就告诉我不要写latch,并且告诉我latch来源于分支不完全的组合条件逻辑.不要用latch的原因我不太明白,网上的说法主要有两个: 对毛刺不敏感,会产生毛刺并且传递毛刺. 不利于STA. 第一个很好理解,但是第二个并不明白.在网络上搜索答案的时候虽然没有马上找到 阅读全文
posted @ 2020-08-06 15:43 天山明月 阅读(930) 评论(0) 推荐(0)
摘要:静态时序分析Static Timing Analysis 不管是建立时间还是保持时间,都是FF B(接收端)的器件特性所决定的,我们要做的是保证设计能满足元件的特性要求,也就是Setup Time Constraint和Hold Time Constraint. 1. Setup Time Cons 阅读全文
posted @ 2020-08-04 19:36 天山明月 阅读(1113) 评论(0) 推荐(0)
摘要:亚稳态产生的环境很多,最典型的比如跨时钟域信号传递,具体来说比如开关,视频图像输入,网络数据传输. 一图胜千言,网上狗屁不通互相抄袭的文章太多,维基百科这张图基本能解释一半了. 图里就是典型的单比特跨时钟域产生的亚稳态处理方式,通过两级寄存器获得正确的信号电平. 因为真实的信号有上升和下降沿,如果在 阅读全文
posted @ 2020-08-04 15:56 天山明月 阅读(1160) 评论(0) 推荐(0)
摘要:VHDL 文件操作都在tb中,因为涉及到操作系统,所以无法综合。 在vhdl中,文件被看作 行 组成的一维数组。 预先要把两个文件读写相关的库声明。 1 use STD.TEXTIO.all; 2 use ieee.STD_LOGIC_TEXTIO.all; 首先要声明用来存储文件数据的数组,以一个 阅读全文
posted @ 2020-08-03 21:12 天山明月 阅读(1108) 评论(0) 推荐(0)
摘要:CMT是非常重要的时钟资源,如果时钟信号像血液的话,CMT就像是循环系统,MRCC和SRCC将外部时钟引入,但是需要经过处理才能被其他部件所使用。时钟信号在运行过程中,还会发生各种负面的变化,例如jitter(抖动)时钟频率发生变化,偏移(到达不同部件时间不同)和占空比失真(一个周期内部不对称)。从 阅读全文
posted @ 2020-08-02 19:04 天山明月 阅读(4994) 评论(0) 推荐(1)
摘要:本章节的内容主要是介绍各个部件的功能。 首先是BUFG,它能驱动所有时序资源。 但是它的输入从哪里来呢,谁负责驱动它,整个板子的外部时钟是怎么进来的呢?这个就涉及到外部时钟输入管脚。注意,不是说BUFG只能被外部输入的时钟驱动。时钟信号由专门的时钟引脚输入,引脚分为两种MRCC(Multi-regi 阅读全文
posted @ 2020-07-31 17:32 天山明月 阅读(2475) 评论(0) 推荐(1)
摘要:FPGA的时钟资源介绍主要分为三部分。第一部分是区域结构,第二部分是元件功能,第三部分是实现方式。 首先FPGA的时钟资源负责驱动所有的时序逻辑,生产商尽力使得时钟资源充分,可靠,为了达成这一目的,xilinx采取了结构化的时钟资源布局方式。 首先将整个板子分为左右两部分,宽度完全一致,中间是大动脉 阅读全文
posted @ 2020-07-29 16:44 天山明月 阅读(1733) 评论(0) 推荐(0)