- 博客(14)
- 收藏
- 关注
原创 YUV444转YUV422算法实现
input wire [23:0] data_in, // 输入数据 (Y[23:16], U[15:8], V[7:0])// 状态 (0: 等待第一个像素, 1: 等待第二个像素)output reg [15:0] data_out, // 输出数据 (YUV422, 16-bit)// 像素位置标志 (0: 奇数像素, 1: 偶数像素)// 下一周期输出第二个16-bit: {Y1, V_avg}
2025-06-30 11:48:08
889
原创 异步复位信号释放与亚稳态的详细解释
当输入信号在时钟边沿的时序窗口内变化时,寄存器的输出可能进入一个介于高电平和低电平之间的不确定状态(亚稳态),并需要额外时间才能稳定到确定值。复位信号可能分布到多个寄存器,但因布线延迟不同,某些寄存器的复位释放可能早于时钟边沿,而另一些则稍晚。如果复位信号的释放时刻(从低到高的跳变)恰好接近时钟边沿,则寄存器可能无法正确捕捉到复位信号的跳变。的跳变发生在时钟边沿的亚稳态窗口内,寄存器无法确定输入是“高”还是“低”,导致输出振荡或延迟稳定。异步复位的释放是一个异步事件(与时钟无关),但释放后的逻辑需要。
2025-05-18 15:41:22
204
原创 verilog中initial块使用的说明
data(data) // data 是 wire,由 DUT 驱动。块仅用于仿真,综合工具(如 Vivado、Quartus)会忽略其中的代码。// 通过 reg 间接驱动 wire。// 输出信号声明为 wire。// 必须声明为 reg。表示电路中的物理连线,值由驱动源实时决定,自身不存储状态。,不可综合,硬件初始化依赖复位逻辑。若需在硬件中初始化寄存器,应通过。// 初始化时钟和复位。
2025-04-14 12:12:41
874
原创 芯片测试-LogicBIST详解
(如开路、短路、时序故障等),减少对外部测试设备(ATE, Automatic Test Equipment)的依赖,同时提高测试覆盖率和效率。:将签名与预存的“黄金签名”(Golden Signature)对比,判断电路是否故障。,结合具体场景选择最优实现方案(如混合使用LogicBIST和传统ATE测试)。对被测电路的输出进行压缩和比较(如使用MISR,多输入签名寄存器)。生成伪随机或确定性测试向量(如使用LFSR,线性反馈移位寄存器)。需要测试的逻辑电路(如组合逻辑、时序逻辑)。
2025-04-11 16:41:22
854
原创 静态时序分析(STA)中“Margin”详解
通过分析电路中的所有时序路径,验证设计在特定时钟频率下是否满足建立时间(Setup Time)和保持时间(Hold Time)的要求,数据从起点(Launch Flip-Flop)出发,经过组合逻辑延迟和布线延迟,到达终点(Capture Flip-Flop)的时间。= 时钟周期(10ns) - Setup Time(0.3ns) - 时钟不确定性(0.1ns + 0.5ns) == 发射时钟延迟(0) + 组合逻辑延迟(6ns) + 布线延迟(1ns) =为确保满足时序约束,数据必须到达的最晚时间。
2025-04-02 10:43:17
1641
原创 verilog/systemverilog中宏定义作用域规则
├── def.v // 定义宏 `define DATA_WIDTH 32。// module1.v 和 module2.v 均可使用 `DATA_WIDTH。├── module1.v // 使用 `DATA_WIDTH。├── module2.v // 使用 `DATA_WIDTH。└── subdir/module3.v // 使用 `DATA_WIDTH。`include "def.v" // 显式包含宏定义。
2025-03-28 17:56:07
1490
原创 Analog 差分differential与单端single-ended信号的区别
差分 vs. 单端:差分抗干扰强,单端成本低。一路差分:单声道差分输入(如左声道)。两路差分:立体声差分输入(左右声道均支持差分)。在AMIC中:若支持两路差分,则左右声道均可设为差分模式;若仅一路差分,通常只有单声道支持,另一声道可能受限。实际应用中,需结合具体硬件规格(如ADC通道数、引脚定义)判断声道配置的灵活性。
2025-03-17 10:34:26
573
原创 UVM环境中get_full_name() 方法解析
/ 使用 get_full_name() 打印完整路径。类提供的一个方法,用于获取组件在层次结构中的完整路径名称。当存在多个相同类型组件时,通过完整路径名区分不同实例的行为。:返回当前组件在UVM层次结构中的完整路径名称,格式为。:频繁调用可能对仿真性能有轻微影响,建议仅在需要时使用。是UVM的主要执行阶段,通常用于实现测试逻辑。:主要用于标识日志来源,支持调试和动态配置。:在日志信息中标识消息来源,便于追踪问题。的方法,用于获取组件的完整层次路径。:提升测试平台的可维护性和调试效率。
2025-03-13 12:04:41
886
原创 SystemVerilog中类的继承规则说明
在 SystemVerilog 中,类的继承规则遵循面向对象编程的基本原则,同时需要注意 UVM(通用验证方法学)中。// 显式调用父类配置。// 直接覆盖父类配置。管理执行顺序,可确保父类配置生效,同时允许子类灵活覆盖特定值。若父类配置为关键前置条件,需在文档中明确说明。成员仅父类内部可见,子类无法直接访问。父类配置先执行,子类后续赋值会。,UVM 框架会自动调用父类的。,子类配置完全生效。
2025-03-03 16:16:57
717
原创 verilog中参数赋值的相关问题
/ 编译时无法确定 shift 的值。:禁止在需要常量表达式的上下文中使用动态变量(如参数赋值、位宽定义、generate条件等)。if (shift == 3) begin // 编译时 shift 值未知。parameter SHIFT = 3 // 编译时确定的常量。// 直接使用 shift 进行移位。)中,移位位数可以是动态变量,综合工具会生成对应的。// 改为使用常量参数控制 generate 块。// 动态计算 shift 值。,因为它的值是在运行时动态计算的,而常量(如。
2025-02-13 19:23:58
1646
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人