腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
Lauren的FPGA
专栏作者
举报
263
文章
436844
阅读量
138
订阅数
订阅专栏
申请加入专栏
全部文章(263)
编程算法(64)
fpga(43)
缓存(39)
单片机(33)
tcp/ip(23)
设计(22)
c++(17)
神经网络(13)
硬件开发(11)
tcl(11)
工具(11)
数据(11)
report(10)
布局(9)
打包(8)
深度学习(7)
xilinx(7)
机器学习(6)
bit(6)
timing(6)
芯片(6)
人工智能(5)
分布式(5)
delay(5)
interface(5)
工作(5)
优化(5)
python(4)
javascript(4)
jquery(4)
kernel(4)
cell(4)
latency(4)
lock(4)
set(4)
summary(4)
函数(4)
接口(4)
c 语言(3)
数据库一体机 TData(3)
网站(3)
面向对象编程(3)
数据结构(3)
add(3)
implementation(3)
max(3)
optimization(3)
package(3)
path(3)
precision(3)
types(3)
vhdl(3)
对象(3)
连接(3)
排序(3)
配置(3)
维纳斯(2)
c#(2)
html(2)
ide(2)
github(2)
腾讯云测试服务(2)
shell(2)
网络安全(2)
监督学习(2)
数据分析(2)
https(2)
block(2)
clock(2)
configuration(2)
dashboard(2)
data(2)
directive(2)
fifo(2)
memory(2)
route(2)
size(2)
stream(2)
tools(2)
validation(2)
编程(2)
变量(2)
编译(2)
继承(2)
模型(2)
排序算法(2)
数据类型(2)
调试(2)
同步(2)
性能(2)
异步(2)
硬件(2)
原理(2)
其他(1)
php(1)
go(1)
scala(1)
node.js(1)
css(1)
arm(1)
嵌入式(1)
sql(1)
api(1)
linux(1)
存储(1)
开源(1)
强化学习(1)
gui(1)
opencv(1)
无监督学习(1)
windows(1)
5g(1)
analysis(1)
apply(1)
architecture(1)
area(1)
auto(1)
bind(1)
byte(1)
csv(1)
cycle(1)
dataflow(1)
debug(1)
default(1)
device(1)
document(1)
element(1)
fabric(1)
figure(1)
file(1)
for循环(1)
global(1)
hierarchy(1)
import(1)
input(1)
limit(1)
local(1)
logic(1)
map(1)
mean(1)
min(1)
module(1)
navigator(1)
next(1)
output(1)
overflow(1)
partial(1)
partition(1)
performance(1)
port(1)
project(1)
ram(1)
reset(1)
root(1)
save(1)
scope(1)
script(1)
sh(1)
sharing(1)
slack(1)
slice(1)
static(1)
status(1)
sum(1)
table(1)
toggle(1)
trace(1)
translate(1)
uart(1)
verilog(1)
view(1)
wizard(1)
表格(1)
测试(1)
二进制(1)
工程师(1)
管理(1)
基础(1)
脚本(1)
进程(1)
量化(1)
数组(1)
索引(1)
统计(1)
系统(1)
学习笔记(1)
压缩(1)
状态机(1)
搜索文章
搜索
搜索
关闭
如何对Block RAM使用Retiming(1)
ram
布局
设计
block
latency
对于逻辑级数较大的路径,常用的时序收敛的方法之一就是采用Retiming(中文翻译为重定时)。Retiming到底是怎么回事呢?我们可以通过下图理解。图中通过搬移触发器的位置减小了关键路径的逻辑级数。无论是把触发器向前搬移还是向后搬移,搬移后整个路径的Latency和搬移前的Latency保持一致。可以看到Retiming的前提是相邻路径有可供搬移的触发器,换言之,相邻路径的时序裕量较为“富余”,从这些“富余”中拿出一部分给时序较为紧张的路径。这样,时序紧张的路径其逻辑级数降低了,而相邻的时序“富余”的路径逻辑级数增加了,达到整体逻辑级数的平衡。
Lauren的FPGA
2024-04-18
75
0
用FPGA实现双调排序(4)
排序
数据
原理
fpga
表格
前面三篇文章我们介绍了双调排序的原理和具体实现方式,但都是要求序列本身是“双调”的。而实际情况是,给定序列本身是杂乱无章的,并非呈现“双调”的特征。这就要求我们先把无序序列转化为双调序列。但无需担心,这种转化也是有章可循的。
Lauren的FPGA
2024-04-11
74
0
用FPGA实现双调排序(3)
排序
排序算法
数据
fpga
函数
基于双调排序算法的蝶形图,我们可以得到地址的变化规律。这里以长度为16的双调序列为例,其地址变化规律入下图所示。由于长度为16,故总共需要4个Stage。图中每个Stage颜色的个数表明该Stage可分为的组数。例如Stage 0可分为1组,Stage 1可分为2组,Stage 2可分为4组,Stage 3可分为8组。每组的起始地址和对应的Stage紧密相关,例如Stage 1第0组起始地址为0,即(16/2^1)*0,第1组起始地址为8,即(16/2^1)*1。每组的地址个数也由Stage决定。例如Stage 1每组地址长度为4,即16/2^(1+1),Stage 2每组地址长度为2,即16/2^(2+1)。同一组内,相邻地址的间距为1,例如Stage 1第0组的4个地址为[0,1,2,3],相邻地址间距为1,第1组的4个地址为[8,9,10,11],相邻地址间距为1。一旦确定了op1的地址就很容易确定op2的地址,因为两者之差(用diff表示)也是由Stage决定的。例如:Stage 0两者之差为8,即16/2^(0+1),Stage 1两者之差为4,即16/2^(1+1)。
Lauren的FPGA
2024-04-11
82
0
用FPGA实现双调排序(1)
索引
fpga
排序
排序算法
数据
典型的排序算法包括冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、计数排序、双调排序等。这其中,双调排序以其高度的并行性著称,非常适合于在FPGA上实现。
Lauren的FPGA
2024-03-14
108
0
利用香农展开定理进行设计优化
设计
数据
优化
变量
函数
香农展开(Shannon's expansion)或称香农分解(Shannon decomposition)是对布尔函数的一种变换方式。它可以将任意布尔函数表达为其中任何一个变量乘以一个子函数,加上这个变量的反变量乘以另一个子函数,如下两个公式所示案例。
Lauren的FPGA
2024-03-05
189
0
通过重新布线修复小的保持时间违例
delay
min
工具
设计
数据
如下图所示,设计中仅有一条路径出现保持时间违例,如果通过更换布线策略实现保持时间收敛,那么就需要重新布线,这样既耗时又不能百分之百确保保持时间违例被修复。此时我们可以尝试重新布线,而这种布线只针对违例路径。
Lauren的FPGA
2024-02-26
118
0
DDS Rasterized模式怎么用?
配置
系统
原理
工作
量化
直接数字频率合成器(DDS: Direct Digital Synthesizers)又称数字压控振荡器(NCO: Numerically Controlled Oscillator)在数字通信系统中被广泛使用,例如:正交合成器(产生正弦和余弦信号)常用于数字上/下变频器和调制/解调器中。AMD提供了专门的DDS IP,用户只需根据设计需求进行定制。
Lauren的FPGA
2024-02-06
154
0
UltraScale/UltraScale+ DFX设计检查清单
配置
设计
调试
芯片
工作
采用UltraScale/UltraScale+芯片进行DFX设计时,建议从以下角度对设计进行检查。
Lauren的FPGA
2024-01-19
107
0
针对UltraScale/UltraScale+芯片DFX应考虑的因素有哪些(1)
布局
工具
基础
芯片
性能
对于UltraScale/UltraScale+芯片,几乎FPGA内部所有组件都是可以部分可重配置的,这包括CLB中的查找表(LUT)、触发器(FF)、移位寄存器(采用LUT实现)、分布式RAM/ROM等,Block如BRAM、URAM、DSP、GT(高速收发器)、PCIe、CMAC、Interlaken MAC等,SYSMON(XADC和System Monitor),时钟单元如BUFG、MMCM和PLL等,I/O相关单元如ISERDES、OSERDES和IDELAYCTRL等。只有与配置相关组件必须在静态区,包括BSAN、CFG_IO_ACCESS、EFUSE_USR、ICAP、FRAME_ECC、MASTER_JTAG、STARTUP、和USR_ACCESS。
Lauren的FPGA
2023-12-17
182
0
DFX设计中有哪些bit文件?
bit
partial
设计
芯片
压缩
Full configuration bitstreams对应的是静态区加动态区的完整设计,因此,该文件与传统的非DFX工程生成的bitstream从文件格式到文件结构均是一致的。同时使用方法也是一致的。另外,一些特征如对bitstream文件进行加密和压缩也是支持的。另一方面,这里的RP可以是黑盒子,即RP没有任何功能,这样可以最大程度缩减bitstream大小,如果再结合bitstream的压缩特性,那么就可以进一步提升FPGA初始配置时间。Full configuration bitstreams的加载过程如下图所示。加载完成且验证通过,DONE信号就会抬高,FPGA就进入用户模式,图中绿色标记。
Lauren的FPGA
2023-12-10
185
0
优化DFX设计
布局
连接
设计
芯片
优化
避免RP和RP之间的直接路径 假定设计中存在两个RP,分别为RP1和RP2,那么就要避免出现RP1输出直接连接到RP2或者相反从RP2输出直接连接到RP1的路径。因为这时RP边界信号(连接RP1和RP2的net)的负载都在动态区,从而必然形成Partition Pin,由于边界信号没有经过静态区逻辑单元,这些Partition Pin最终会有相应的PPLOC,这其实就增加了后续的布线压力。这种情况下,最好将其优化为RP1-> FF -> RP2。其中FF在静态区。
Lauren的FPGA
2023-11-30
124
0
DFX设计中如何减少Partition Pin的个数
partition
布局
工具
继承
设计
在DFXs设计中,RM和静态区之间的信号称之为边界信号。所有RM的输入/输出端口必然会有Partition Pin,布局工具会将Partition Pin放置在边界信号的某个节点上,如下图所示,图中白色高亮部分即为Partition Pin,左侧显示了这个Partition Pin的位置。
Lauren的FPGA
2023-11-23
182
0
DFX设计如何分析
configuration
report
工具
接口
设计
针对DFX设计,Vivado提供了命令report_pr_configuration_analysis,该命令会从设计复杂度、时钟和时序等方面对其进行分析。使用该命令时,我们主要会用到其中3个选项:-complexity、-clocking和-timing。
Lauren的FPGA
2023-11-09
249
0
SystemVerilog不只是用于验证(2)
测试
工具
进程
设计
硬件
我们再从对可综合代码的支持角度看看SystemVerilog相比于Verilog的优势。针对硬件设计,SystemVerilog引入了三种进程always_ff,always_comb和always_latch。always_ff用于描述时序逻辑,对应FPGA中的触发器,其内部应使用非阻塞(<=)赋值方式,因为它模拟的正是触发器传输数据的方式。always_comb用于描述纯组合逻辑,其内部使用阻塞赋值方式,采用了隐式的全变量敏感列表。always_latch用于描述锁存器。FPGA设计中一般不建议使用锁存器。这样,三种进程对应三种场景,无论是设计者还是工具本身对电路意图都非常清晰。在Verilog中,只有always,换言之,这三种进程都能通过always实现。例如:
Lauren的FPGA
2023-10-30
193
0
SystemVerilog不只是用于验证(2)
测试
工具
进程
设计
硬件
我们再从对可综合代码的支持角度看看SystemVerilog相比于Verilog的优势。针对硬件设计,SystemVerilog引入了三种进程always_ff,always_comb和always_latch。always_ff用于描述时序逻辑,对应FPGA中的触发器,其内部应使用非阻塞(<=)赋值方式,因为它模拟的正是触发器传输数据的方式。always_comb用于描述纯组合逻辑,其内部使用阻塞赋值方式,采用了隐式的全变量敏感列表。always_latch用于描述锁存器。FPGA设计中一般不建议使用锁存器。这样,三种进程对应三种场景,无论是设计者还是工具本身对电路意图都非常清晰。在Verilog中,只有always,换言之,这三种进程都能通过always实现。例如:
Lauren的FPGA
2023-10-30
193
0
SystemVerilog不只是用于验证(1)
变量
设计
数据类型
硬件
状态机
谈到SystemVerilog,很多工程师都认为SystemVerilog仅仅是一门验证语言,事实上不只如此。传统的Verilog和VHDL被称为HDL(Hardware Description Language,硬件描述语言),而SystemVerilog则是HDVL(Hardware Design and Verification Language,硬件设计与验证语言)。由此可见,SystemVerilog也是可以用于硬件设计的,也是有可综合部分的。SystemVerilog本身由3部分构成:
Lauren的FPGA
2023-10-23
246
0
说说SystemVerilog的Interface
interface
编译
接口
连接
设计
SystemVerilog引入了interface,这里我们从可综合的RTL代码的角度聊聊interface。
Lauren的FPGA
2023-10-23
399
0
说说SystemVerilog的Package
import
package
编译
对象
数据类型
谈到package,用过VHDL的工程师并不陌生。实际上,SystemVerilog中的package正是从VHDL引入的,以进一步增强其在系统级的描述能力。我们来看一下SystemVerilog中package的使用方法与注意事项。
Lauren的FPGA
2023-10-07
218
0
DFX模式下如何读入模块的网表文件
add
布局
工具
接口
设计
DFX模式下要求在设计的顶层文件,每个RP对应的RM只以一个空的接口形式存在,这样对顶层综合时,RM就是黑盒子。而对每个RM要采用OOC的综合方式。OOC综合本质上就是工具不会对设计的输入/输出端口插入IBUF/OBUF,同时生成该模块对应的网表文件。不论是第三方工具还是Vivado都是如此。对RM执行OOC综合,这在DFX过程中是必要的。在后续布局布线时,工具要依次读入静态区的网表文件(RM为黑盒子)、每个RP对应的RM的网表文件,这样才能形成完整的网表文件。这就要求同一个RP下的所有RM的输入/输出端口必须完全相同,包括端口的名字、方式、位宽。那么一旦静态区的网表文件和动态区的RM的网表文件准备好之后,如何读入以便Vivado后续执行布局布线?这里我们给出三种可行方法。
Lauren的FPGA
2023-09-27
173
0
DFX设计中的常见问题
布局
工具
配置
设计
性能
DFX(Dynamic Function eXchange)的前身是PR(部分可重配置,Partial Reconfiguration)。使用DFX这个名字更能准确描述其功能,即在线切换设计中某个模块的功能。我们把这个模块对应的FPGA物理区域称之为一个可重配置分区(RP,Reconfigurable Partition)。同一个RP下可动态切换的模块称之为可重配置模块(RM,Reconfigurable Module)。一个RP下可以有一个或多个RM。每个RP要通过手工布局(画Pblock)的方式指定其在FPGA中的具体位置和大小(位置约束+面积约束)。
Lauren的FPGA
2023-09-24
354
0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档