===================
== lxulxu's blog ==
===================
Hello there

Y2025Q1 影视音总结

生活

🎬MOVIES

🎵MUSIC

DFX中的关键概念与规则

xilinx DFX

1. 基础概念与术语

1.1 动态重配置的定义

​ Dynamic Function eXchange(DFX,也称为动态部分重配置)是一种在FPGA运行时动态修改其部分功能区域的技术。DFX可以在FPGA继续运行时,让用户更改芯片预定义区域的功能,而不影响其他区域的正常运行。相比传统的全局配置方式,DFX具有以下优势:

  • 节省硬件成本:可以通过时分复用的方式在同一个区域切换不同功能
  • 支持实时更新:无需停止系统运行即可更新部分功能
  • 提升系统灵活性:可以根据需要动态调整功能
  • 减少配置时间:部分配置比完整配置速度更快

​ FPGA 设计中的逻辑分为两种不同类型:可重配置逻辑和静态逻辑。静态逻辑在运行期间保持正常工作,不受加载部分比特流的影响。可重配置逻辑则会被部分比特流的内容替换。

DFX Basic Concept

​ 如上图所示,通过下载任一部分比特流文件(A1.bit、A2.bit、A3.bit 或A4.bit)即可修改重配置块 A 中实现的功能。标记为"FPGA"的区域表示静态逻辑,标记为"重配置块 A"的区域表示可重配置逻辑。

1.2 …

Read more...

Y2024Q4 影视音总结

生活

🎬MOVIES

Tcl C API 概览(一)

tcl

解释器管理

解释器是Tcl的核心概念。这部分API用于创建、删除和管理Tcl解释器。

Tcl_CreateInterp

功能: 创建一个新的Tcl解释器

语法: Tcl_Interp *Tcl_CreateInterp(void)

返回值: 新创建的解释器的指针

说明:

  • 创建一个新的Tcl解释器实例
  • 必须使用Tcl_DeleteInterp释放

示例:

1Tcl_Interp *interp = Tcl_CreateInterp();
2if (interp == NULL) {
3    // 处理错误
4}

Tcl_DeleteInterp

功能: 删除Tcl解释器

语法: void Tcl_DeleteInterp(Tcl_Interp *interp)

参数:

  • interp: 要删除的解释器

说明:

  • 释放与解释器相关的所有资源
  • 调用所有已注册的退出处理程序

示例:

1Tcl_DeleteInterp(interp);

Tcl_InterpDeleted

功能: 检查解释器是否已被删除

语法: int Tcl_InterpDeleted(Tcl_Interp …

Read more...

C++中的push_back与emplace_back

c++

1. 引言

C++标准库提供了push_backemplace_back两种向容器末尾添加元素的方法。本文将深入分析这两个函数的区别、使用场景,以及在实际应用中的性能考虑。

2. 基本概念

2.1 push_back push_back有两个重载版本:

1void push_back(const T& value);
2void push_back(T&& value);

第一个版本复制元素,第二个版本移动元素。

2.2 emplace_back emplace_back是C++11引入的变参模板函数:

1template <class... Args>
2void emplace_back(Args&&... args);

它直接在容器中构造对象,参数被完美转发给元素的构造函数。

3. 主要区别

  1. 构造方式push_back需要预先构造的对象,emplace_back在容器内构造对象。
  2. 参数传递push_back接受对象,emplace_back接受构造函数参数。
  3. 效率emplace_back可能避免不必要的临时对象创建和复 …
Read more...

Y2024Q3 影视音总结

生活

🎬MOVIES

Y2024Q2 影视音总结

生活

🎬MOVIES

C++安全指南

c++

编程习惯

  • switch中应有default
  • 不应在debug或错误信息中提供过多内容
  • 不应该在客户端代码中硬编码对称加密秘钥
1    // Bad
2    char g_aes_key[] = {...};
3    void Foo() {
4      ....
5      AES_func(g_aes_key, input_data, output_data);
6    }
1    // Good
2    char* g_aes_key;
3    void Foo() {
4      ....
5      AES_encrypt(g_aes_key, input_data, output_data);
6    }
7    void Init() {
8      g_aes_key = get_key_from_https(user_id, ...);
9    }
  • 函数不可以返回栈上的变量的地址,而应当使用堆来传递非简单类型变量,强烈建议返回 string、vector 等类型。
1    // Bad
2    char* Foo(char* …
Read more...

Y2024Q1 影视音总结

生活

🎬MOVIES

RF Analyzer 简介

xilinx RF

参考PG269 Ch1 & Ch2。

特点

  • 多达16个14-bit RF-DAC Gen 1/Gen 2:4个14-bit二倍频RF-ADC tile,2/4个14-bit四倍频RF-ADC tile; Gen 3:1/2/4个14-bit二倍频RF-ADC tile,2/4个14-bit四倍频RF-ADC tile。
  • 支持多个转换器之间的对齐(多片同步(MTS))
  • 支持预编程RF-DAC和RF-ADC,用户可以定义关键参数
  • RF-ADC和RF-DAC有多个AX14-Stream数据接口
  • 单独的AX14-Lite配置接口
  • Gen 1/Gen 2:1x(旁路),2x, 4x, 8x抽取和插值 Gen 3:1x(旁路),2x, 3x, 4x, 5x, 6x, 8x, 10x, 12x, 16x, 20x, 24x, 40x抽取和插值后的额外的2x插值
  • 数字复合混频器和数控振荡器(NCO)
  • 正交调制校正(QMC),Gen 3每个RF-ADC有嵌入式数字步进衰减器(DSA),每个RF-DAC有可变输出功率(VOP)控制
  • 片上时钟系统包含每个tile的PLL
  • Gen 3:片上时钟分配网 …
Read more...
1 of 2 Next Page