eDP 1.4及更高版本的规范

       eDP 1.4及更高版本(包括eDP 1.4a, 1.4b和当前的eDP 1.5)在加扰规范上保持了一致性。以下是详细的规范说明。

一、eDP 1.4+ 加扰核心规范

1. 加扰器基本参数

参数规格
LFSR位数16位
多项式G(X) = X¹⁶ + X¹⁵ + X¹³ + X⁴ + 1
初始值16'hFFFF
加扰范围Main Link Audio和Video数据

2. 加扰启用条件

eDP加扰是可选的,由Source设备决定是否启用:

// 加扰启用通过DPCD寄存器设置
parameter DPCD_EDP_CONFIGURATION_CAP = 3'h0D;
// Bit 0: RESERVED
// Bit 1: ALTERNATE_SCRAMBLER_RESET_ENABLE
// Bit 2: SCRAMBLING_ENABLE

3. 精确的LFSR实现

根据eDP 1.4规范第4.2.2.1节:

module edp_scrambler_1d4 (
    input wire clk,
    input wire reset_n,
    input wire enable,
    input wire [7:0] data_in,
    input wire sync_reset,      // 对应VSYNC或特定同步事件
    output wire [7:0] data_out
);

// LFSR状态寄存器
reg [15:0] lfsr_state;
wire [7:0] scramble_sequence;

// 加扰序列生成(使用LFSR的高8位)
assign scramble_sequence = lfsr_state[15:8];

// 输出加扰数据
assign data_out = enable ? (data_in ^ scramble_sequence) : data_in;

// LFSR反馈计算 - 严格遵循规范多项式
wire lfsr_feedback;
assign lfsr_feedback = lfsr_state[15] ^  // X¹⁵
                       lfsr_state[14] ^  // X¹⁴  
                       lfsr_state[12] ^  // X¹²
                       lfsr_state[3];    // X³

// LFSR状态更新 - 每个符号周期更新8次
integer i;
reg [15:0] lfsr_next;

always @(posedge clk or negedge reset_n) begin
    if (!reset_n) begin
        lfsr_state <= 16'hFFFF;  // 规范定义的初始值
    end else if (sync_reset) begin
        lfsr_state <= 16'hFFFF;  // 同步复位到初始值
    end else if (enable) begin
        // 每个时钟周期并行处理8位
        lfsr_next = lfsr_state;
        for (i = 0; i < 8; i = i + 1) begin
            lfsr_next = {lfsr_next[14:0], lfsr_feedback};
        end
        lfsr_state <= lfsr_next;
    end
end

endmodule

4. 同步复位机制

eDP 1.4定义了两种同步复位方式:

4.1 标准同步复位
  • 每个Video Data Period的开始复位LFSR

  • 由VSYNC信号触发

  • 确保每个视频帧的加扰序列从头开始

4.2 交替加扰器复位(可选)
// 通过DPCD寄存器启用
parameter ALTERNATE_SCRAMBLER_RESET = 1'b1;

// 复位发生在:
// 1. 每个Video Data Period开始
// 2. 每个Audio Data Period开始  
// 3. 特定的Link Training Pattern期间

5. 加扰数据范围

eDP加扰应用于以下数据:

  • ✅ Video Data:主链路视频数据

  • ✅ Audio Data:主链路音频数据包

  • ✅ Secondary Data Packet:辅助数据包

  • ❌ Link Training Patterns:链路训练模式

  • ❌ DPCD Accesses:控制寄存器访问

  • ❌ AUX Channel Communications:AUX通道通信

6. 多Lane处理

对于多Lane配置,每个Lane使用相同的LFSR状态

module edp_multi_lane_scrambler (
    input wire clk,
    input wire reset_n,
    input wire enable,
    input wire sync_reset,
    input wire [7:0] lane0_data,
    input wire [7:0] lane1_data, 
    input wire [7:0] lane2_data,
    input wire [7:0] lane3_data,
    output wire [7:0] lane0_scrambled,
    output wire [7:0] lane1_scrambled,
    output wire [7:0] lane2_scrambled, 
    output wire [7:0] lane3_scrambled
);

// 共享的LFSR状态
reg [15:0] shared_lfsr;

// 所有Lane使用相同的加扰序列
wire [7:0] shared_scramble_seq = shared_lfsr[15:8];

// 各Lane加扰输出
assign lane0_scrambled = enable ? (lane0_data ^ shared_scramble_seq) : lane0_data;
assign lane1_scrambled = enable ? (lane1_data ^ shared_scramble_seq) : lane1_data;
assign lane2_scrambled = enable ? (lane2_data ^ shared_scramble_seq) : lane2_data;
assign lane3_scrambled = enable ? (lane3_data ^ shared_scramble_seq) : lane3_data;

// 共享LFSR更新逻辑
wire lfsr_feedback;
assign lfsr_feedback = shared_lfsr[15] ^ shared_lfsr[14] ^ 
                       shared_lfsr[12] ^ shared_lfsr[3];

// 更新逻辑与单Lane相同
// ... (同上)
    
endmodule

7. 合规性测试要求

根据eDP 1.4规范,加扰器必须满足:

  1. LFSR多项式一致性:严格使用 X¹⁶ + X¹⁵ + X¹³ + X⁴ + 1

  2. 初始值正确性:复位后必须为 16'hFFFF

  3. 同步复位时机:在规定的同步事件准确复位

  4. 自同步能力:接收端能够自动同步而不需要额外的同步信号

8. 与DisplayPort的差异

特性eDP 1.4DisplayPort 1.4
LFSR大小16位16位
多项式X¹⁶+X¹⁵+X¹³+X⁴+1X¹⁶+X¹⁵+X¹³+X⁴+1
初始值16'hFFFF16'hFFFF
同步复位每个Video Data Period每个VSYNC
可选性Source决定必须支持

9. 实际实现建议

// 推荐的eDP 1.4+加扰器顶层模块
module edp_1d4_scrambler_top (
    input wire clk_162MHz,      // eDP典型时钟
    input wire reset_n,
    input wire scrambling_enable, // 来自DPCD配置
    input wire vsync,           // 垂直同步
    input wire [7:0] video_data,
    input wire data_valid,
    output wire [7:0] scrambled_data
);

// 同步复位生成
wire sync_reset;
reg vsync_delayed;

always @(posedge clk_162MHz) begin
    vsync_delayed <= vsync;
end

// 在VSYNC上升沿生成同步复位
assign sync_reset = vsync && !vsync_delayed;

// 加扰器实例化
edp_scrambler_1d4 u_scrambler (
    .clk(clk_162MHz),
    .reset_n(reset_n),
    .enable(scrambling_enable & data_valid),
    .data_in(video_data),
    .sync_reset(sync_reset),
    .data_out(scrambled_data)
);

endmodule

       这些规范确保了eDP 1.4及更高版本设备之间的加扰兼容性,同时提供了足够的灵活性以适应不同的系统需求。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值