0

我正在尝试实现 BIST(内置自检)。测试模式生成器 (TPG) 模块使用 LFSR per posedge clk ( always #1 clk = ~clk) 生成测试模式。我正在使用 32 级 LFSR。TPG 模块的每个值都被发送到 AES 加密模块,该模块在#141 延迟后给出密文。在此#141 延迟期间,许多 TPG 模块输出丢失。如何解决这个问题呢?

我认为一个解决方案是将数千个测试模式值存储在数组中(reg [127:0] arr [0:999]),然后将每个测试模式发送到 AES 加密模块。这是一个很好的解决方案,因为我认为它使芯片内存更大。如果是,那我该怎么办?代码片段如下所示。

wire [127:0] state_byte;

TPG T (clk, rst, bistMode, state_byte);

AES_encryption ENC_TB(key_byte, state_byte, clk, rst, encryptionEnable, state_out_byte, load, ready);

TPG模块代码如下:

module TPG (input wire clk, input wire rst, input wire sel, output reg[127:0] valueO);

    integer i;
    reg [31:0] patternGenerate[0:3],temp;


    always @(posedge clk)begin
        if(sel == 1)begin
            if(rst)begin
                valueO = 128'b0;
                temp = 32'b11111111111111111111111111111111;
            end
                else
            begin
                for(i=0;i<4;i=i+1)begin
                    temp = {(temp[31] ^ temp[25] ^ temp[22] ^ temp[21] ^ temp[15] ^ temp[11] ^ temp[10] ^ temp[9] ^ temp[7] ^ temp[6] ^ temp[4] ^ temp[3] ^ temp[1] ^ temp[0]), temp[31:1]};
                    patternGenerate[i] = temp;
                end
                valueO = {patternGenerate[3],patternGenerate[2],patternGenerate[1],patternGenerate[0]};
            end
        end
    end
endmodule
4

0 回答 0