fpga中的开发技巧
文章平均质量分 93
一些自己在工程中遇到的技巧
帅癌晚期的彦
FPGA修道者
展开
-
竞争与冒险/亚稳态/跨时钟域
寄存器的输入信号不满足寄存器的建立时间和保持时间,导致寄存器的输出信号在一定时间内不能达到稳定的0或者1的现象。建立时间 Tsu:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的时间。保持时间 Th:触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的时间。一般来说产生亚稳态的输入信号一般是异步输入(异步复位信号),或者是其他时钟域的信号跨到本地时钟域作本地时钟域寄存器的输入。原创 2024-08-15 23:54:49 · 1003 阅读 · 0 评论 -
关于异步复位同步释放理解与整体复位设计思考
在B寄存器后面再加一级寄存器,并且设置(* ASYNC_REG = “TRUE” *) 能够将这两级寄存器挨的足够近(把两个寄存器约束到一个slice里面),数据传输时延很小,留给B输出的亚稳态状态时间就可以多一些。什么意思了?原创 2024-03-20 15:59:38 · 595 阅读 · 1 评论 -
对reg变量_非阻塞赋值的理解
modelsim认为时钟和数据同时变化会采集到变化后的值。可以看到在黄线处的时钟上升沿对po_c1进行采样,将采样到的值赋值给r_po_c1,由波形数据可以看出,D寄存器po_c1的Q端值想要完成更新(0变成1),但是经过我上面的精心描述,它不是立马更新的,所以时钟上升沿采样到的值是D寄存器po_c1的还未来得及更新的原来的数据(时钟上升沿左侧的数据即0),并将它赋值给r_po_c1,持续一个时钟周期,直到下一个时钟上升沿的到来。0,它是不对的,但是它的赋值逻辑是按照时钟沿的左侧数据来赋值的,逻辑是对的。原创 2023-11-23 15:48:40 · 97 阅读 · 0 评论 -
FPGA 内部资源总结
CLB在FPGA中最为丰富,由两个SLICE构成,SLICE分为SLICEL(L:Logic)和SLICEM(M:Memory),因此CLB可分为CLBLL和CLBLM两类,1个slice里包含4个6输入的查找表。块ram和分布式ram的区别,分布式ram是利用fpga里面的寄存器和查找表搭建出来的,不是芯片上面固有的,特性不如块ram好。(5)、底层内嵌的功能单元:主要包括 DLL、PLL、DSP、CPU 等,现在越来越丰富的内嵌的功。丰富的布线资源、底层内嵌功能资源、内嵌专用硬核资源,时钟资源等。原创 2024-03-20 16:01:34 · 1387 阅读 · 1 评论