腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
圈层
工具
返回腾讯云官网
Lauren的FPGA
专栏成员
举报
269
文章
513957
阅读量
142
订阅数
订阅专栏
申请加入专栏
全部文章(269)
编程算法(64)
fpga(44)
缓存(39)
单片机(33)
设计(26)
tcp/ip(23)
c++(17)
神经网络(13)
tcl(12)
工具(12)
数据(12)
硬件开发(11)
布局(11)
report(10)
芯片(9)
打包(8)
深度学习(7)
xilinx(7)
机器学习(6)
bit(6)
timing(6)
优化(6)
人工智能(5)
分布式(5)
delay(5)
interface(5)
工作(5)
python(4)
javascript(4)
jquery(4)
kernel(4)
cell(4)
latency(4)
lock(4)
set(4)
summary(4)
编译(4)
函数(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)
系统(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)
其他(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)
amd(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)
io(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)
压缩(1)
状态机(1)
作用域(1)
搜索文章
搜索
搜索
关闭
Vivado 2024.1有哪些新特性?(1)
连接
设计
系统
芯片
编译
无论是Synthesis阶段还是Implementation阶段,打开Vivado图形界面,在导航栏下都能看到新增了一个选项Open Dataflow Design,如下图所示。这个功能对于我们分析系统的数据流非常有用。
Lauren的FPGA
2024-06-21
1.2K
0
双向IO与IOB
io
数据
通信
系统
芯片
典型的全双工(Full Duplex)系统如下图所示,芯片1和芯片2之间有彼此独立的数据传输线,这意味着芯片1和芯片2可以同时给对方发送数据而不会发生冲突。SPI/UART采用的就是全双工通信方式。半双工系统则不同,芯片1和芯片2之间只有一条专用的且被彼此共享的数据传输线。这就要求芯片1和芯片2必须协商好,当前谁发送数据,谁接收数据。如果两者同时发送数据就会导致发送冲突,从而造成数据丢失。I2C采用的就是半双工通信方式。
Lauren的FPGA
2024-06-19
241
0
Vivado使用小技巧
技巧
脚本
芯片
性能
布局
有时我们对时序约束进行了一些调整,希望能够快速看到对应的时序报告,而又不希望重新布局布线。这时,我们可以打开布线后的dcp,直接在Vivado Tcl Console里输入更新后的时序约束。如果调整后的约束在之前版本中已存在,那么Vivado会给出警告信息,显示这些约束会覆盖之前已有的约束;如果是新增约束,那么就会直接生效。例如,我们需要把时钟周期由10ns调整为8ns,就可以进行如下图所示的操作:
Lauren的FPGA
2024-05-30
311
0
几个常见问题
作用域
tcl
工具
脚本
设计
vivado -mode tcl和vivado -mode batch有什么区别?
Lauren的FPGA
2024-05-29
144
0
AMD FPGA设计优化宝典 勘误
amd
设计
优化
fpga
近日,收到了一位读者的邮件,指出《AMD FPGA设计优化宝典 SystemVerilog版》第115页关于代码描述的一个错误:
Lauren的FPGA
2024-05-20
184
0
再谈Vivado编译时间
多线程
设计
线程
编译
布局
通常,综合(Synthesis)所消耗的时间比布局布线要短,但从代码风格角度而言,我们也能找到一些端倪来缩短综合所用的时间。如下图所示代码,左右两侧功能是一致的,区别在于左侧采用了for generate语句,for循环里嵌套了always模块;右侧实际上不需要generate语句,always里直接使用了for循环(注意:实际上,这里不需要for循环,只是为了说明for循环对编译时间的影响)。单独对左侧模块采用OOC综合,耗时2分钟;而右侧耗时1分钟。因此,我们在用for循环时要谨慎一些。
Lauren的FPGA
2024-05-10
1.1K
0
如何对Block RAM使用Retiming(1)
ram
布局
设计
block
latency
对于逻辑级数较大的路径,常用的时序收敛的方法之一就是采用Retiming(中文翻译为重定时)。Retiming到底是怎么回事呢?我们可以通过下图理解。图中通过搬移触发器的位置减小了关键路径的逻辑级数。无论是把触发器向前搬移还是向后搬移,搬移后整个路径的Latency和搬移前的Latency保持一致。可以看到Retiming的前提是相邻路径有可供搬移的触发器,换言之,相邻路径的时序裕量较为“富余”,从这些“富余”中拿出一部分给时序较为紧张的路径。这样,时序紧张的路径其逻辑级数降低了,而相邻的时序“富余”的路径逻辑级数增加了,达到整体逻辑级数的平衡。
Lauren的FPGA
2024-04-18
263
0
用FPGA实现双调排序(4)
排序
数据
原理
fpga
表格
前面三篇文章我们介绍了双调排序的原理和具体实现方式,但都是要求序列本身是“双调”的。而实际情况是,给定序列本身是杂乱无章的,并非呈现“双调”的特征。这就要求我们先把无序序列转化为双调序列。但无需担心,这种转化也是有章可循的。
Lauren的FPGA
2024-04-11
290
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
190
0
用FPGA实现双调排序(1)
索引
fpga
排序
排序算法
数据
典型的排序算法包括冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、计数排序、双调排序等。这其中,双调排序以其高度的并行性著称,非常适合于在FPGA上实现。
Lauren的FPGA
2024-03-14
479
0
利用香农展开定理进行设计优化
设计
数据
优化
变量
函数
香农展开(Shannon's expansion)或称香农分解(Shannon decomposition)是对布尔函数的一种变换方式。它可以将任意布尔函数表达为其中任何一个变量乘以一个子函数,加上这个变量的反变量乘以另一个子函数,如下两个公式所示案例。
Lauren的FPGA
2024-03-05
756
0
通过重新布线修复小的保持时间违例
delay
min
工具
设计
数据
如下图所示,设计中仅有一条路径出现保持时间违例,如果通过更换布线策略实现保持时间收敛,那么就需要重新布线,这样既耗时又不能百分之百确保保持时间违例被修复。此时我们可以尝试重新布线,而这种布线只针对违例路径。
Lauren的FPGA
2024-02-26
215
0
DDS Rasterized模式怎么用?
配置
系统
原理
工作
量化
直接数字频率合成器(DDS: Direct Digital Synthesizers)又称数字压控振荡器(NCO: Numerically Controlled Oscillator)在数字通信系统中被广泛使用,例如:正交合成器(产生正弦和余弦信号)常用于数字上/下变频器和调制/解调器中。AMD提供了专门的DDS IP,用户只需根据设计需求进行定制。
Lauren的FPGA
2024-02-06
357
0
UltraScale/UltraScale+ DFX设计检查清单
配置
设计
调试
芯片
工作
采用UltraScale/UltraScale+芯片进行DFX设计时,建议从以下角度对设计进行检查。
Lauren的FPGA
2024-01-19
337
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
409
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
329
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
231
0
DFX设计中如何减少Partition Pin的个数
partition
布局
工具
继承
设计
在DFXs设计中,RM和静态区之间的信号称之为边界信号。所有RM的输入/输出端口必然会有Partition Pin,布局工具会将Partition Pin放置在边界信号的某个节点上,如下图所示,图中白色高亮部分即为Partition Pin,左侧显示了这个Partition Pin的位置。
Lauren的FPGA
2023-11-23
276
0
DFX设计如何分析
configuration
report
工具
接口
设计
针对DFX设计,Vivado提供了命令report_pr_configuration_analysis,该命令会从设计复杂度、时钟和时序等方面对其进行分析。使用该命令时,我们主要会用到其中3个选项:-complexity、-clocking和-timing。
Lauren的FPGA
2023-11-09
468
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
344
0
点击加载更多
活动推荐
【玩转 EdgeOne Pages】体验 MCP Server 和 DeepSeek 模板的百变玩法
技术创作特训营 | 33 天实现自己的 AI 进化论
新邀入驻腾讯云开发者社区,福利多多!
社区活动
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
不再提示