随笔分类 - FPGA与ASIC
1
摘要:计数器的verilog设计 复位; 加载; 溢出; 变化(上,下); 不变;
阅读全文
摘要:跨时钟域传输 单比特的控制信号 为避免亚稳态,应该至少打两拍; 从快时钟域到慢时钟域,发送端使用双跳变沿做展宽; 从慢时钟域到快时钟域,接收端使用单跳变沿做检测; 多比特的数据传输(需要额外的单比特的控制信号做控制) 闭环握手,发送端的valid--FF1--FF2-->接收端收到valid,发出a
阅读全文
摘要:DutyRatio指每读/写1个数据,共需要x个周期,则DutyRatio为1/x。 不管是同步FIFO,还是异步FIFO,一定满足: 写入速率$v_$和读出速率$v_$满足$f_*wDutyRatio > f_*rDutyRatio$。否则就没有使用FIFO的必要了,直接用握手就可以。 一个大周期
阅读全文
摘要:原文地址: https://www.cnblogs.com/BitArt/archive/2013/04/10/3010073.html FIFO简介 FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简
阅读全文
摘要:对Throughput的优化 对Latency的优化 对Area/Utilization的优化
阅读全文
摘要:案例1: 常数边界的循环合并 期待的情形: HLS综合的结果 做的操作:循环合并 操作的结果 循环边界均为常数,但不相等时,按最大的边界进行循环合并 案例2: 变量边界的循环合并 能合并的循环,边界必须相同! 案例3: 数据流 HLS默认综合结果 使用Dataflow的结果 案例4: 数据流 HLS
阅读全文
摘要:函数并行运行:使用ALLOCATION Pipeline的选项rewind 其他可供参考的资料 UG871! UG902! HLS-> Open Example Project!
阅读全文
摘要:优化的原理 HLS会自动尝试最小化循环的延迟. 除了这些自动的优化之外,directive文件负责 执行并行任务; 例如相同函数的多次执行,以及相同循环的多次迭代. 要进行pipeline设计; 重新设计数组(Block arrays),函数,循环和端口等的物理实现,改善数据的访存; 提供数据依赖的
阅读全文
摘要:数据类型 支持的C/Cpp类型 Character Types char 8bits wchar_t Integer Types signed char 8bits [signed] short [int] 16bits [signed] int 32bits [signed] long [int]
阅读全文
摘要:优化手段 1 优化之:循环展开 对某个标记的循环进行Directive-> Unroll. 对循环展开的越彻底(Directive-> Unroll → complete),消耗的资源数和端口数越多,带来的吞吐量越大.需要trade-off. 那么该展开到什么程度呢? 可以全部展开(complete
阅读全文
摘要:常见的模块接口 如果设计的模块有IO的协议要求,应该尽早地在设计过程中进行设置. 数组Port 设置为单端口的RAM: Directive-> Resource → core: RAM_1P_BRAM. : RTL中最终不会包括该外部的BRAM, 而是需要你在vivado中添加一个RAM以和该设计I
阅读全文
摘要:参考 https://cloud.tencent.com/developer/article/1529571 之前的摘抄知道了怎么使用ModelSim进行仿真.下面摘抄则讲解了怎么加快仿真速度; 降低仿真时间分辨率!!! 由于要仿真ddr, 查看micron的ddr_model.sv (MIG Ex
阅读全文
摘要:最近使用Vivado仿真, 有点慢, 听说Modelsim仿真会快一些,这就试试! 经过测试,同样的仿真长度,Vivado内置xsim用了36min,Modelsim用了约13min. 原文地址 https://www.cnblogs.com/hqz68/p/10491509.html 工具地址 h
阅读全文
摘要:reg表示综合出触发器(该说法错误).因为always块(变量必须为reg)既能是时序电路,也能是组合电路。 组合电路一般是电平敏感的always块,或assign语句; 时序电路一般是时钟沿敏感的always块。 优选设计原则 优选同步设计 尽可能使用**时钟驱动的触发器(Flip-Flop)**
阅读全文
1

浙公网安备 33010602011771号