2012-11-15 1 views

답변

3

Verilog 입력을 생성하여 해당 배열을 가져 오는 방법을 묻는다면 여러 입력, 압축 된 배열 또는 경우에 따라 압축을 푼 배열을 가질 수 있습니다.

다중 입력 :

module aes (
    input [7:0] data_1, 
    input [7:0] data_2, 
    //... 
    input [7:0] data_16 
); 

포장을 푼 배열

module aes #(
    parameter DATA_W = 8, 
    parameter BYTE_COUNT = 16, 
) (
    input [DATA_W*BYTE_COUNT -1:0] data 
); 

포장 배열, 일반적이지는 다른 유형으로 :

module aes #(
    parameter DATA_W = 8, 
    parameter BYTE_COUNT = 16, 
) (
    input [DATA_W-1:0] data [0:BYTE_COUNT-1] 
); 

나는 확실하지 않다 얼마나 잘 다차원 배열은 포트로 지원되지만 SystemVerilog 2001에서는 다차원 배열 유형이 지원됩니다. 이 입력 행렬이 아니라 약간 초기화 리셋 신호 또는 다른 클리어 신호에 의해 수행 될 플롭 플립 시프트에 저장된 경우

reg [7:0] data [0:3][0:3]; 

:

는 4 × 4 배열로 데이터를 보유 , 비동기 재설정의 경우 :

integer x, y; 
always @(posedge clk or negede rst_n) begin 
    if (~rst_n) begin 
    for (x=0,x<4,x=x+1) begin 
     for (y=0,y<4,y=y+1) begin 
     data[x][y] <= 8'h00 ; 
     end 
    end 
    end 
    else begin 
    //Control on rising edge of clk 
    end 
end 

NB : for 루프는 컴파일 시간에 언로드되며 하드웨어에는 아무런 동적 요소도 없습니다.

관련 문제