2017-03-22 21 views
1

今私は、以下のようにメモリモデルを実装しようとVerilogでは "メモリインデックスの切り捨て"は何を意味しますか?

しかし、私はメッセージ

// RAM Model 
// 


module sram (Address, Data, CS, WE, OE); 

parameter AddressSize = 2592; 
parameter WordSize = 32; 

input [AddressSize-1:0] Address; 
inout [WordSize-1:0] Data; 
input CS, WE, OE; 

reg [WordSize-1:0] Mem [0:(1<<AddressSize)-1]; 

assign Data = (!CS && !OE) ? Mem[Address] : {WordSize{1'bz}}; 

always @(CS or WE) 
    if (!CS && !WE) 
    Mem[Address] = Data; 

always @(WE or OE) 
    if (!WE && !OE) 
    $display("Operational error in RamChip: OE and WE both active"); 

endmodule 

「メモリー・インデックスの切り捨て」は何を意味しているのを完了

assign Data = (!CS && !OE) ? Mem[Address] : {WordSize{1'bz}}; 
             | 
ncelab: *W,BIGWIX (./sram.v,16|39): Memory index truncation. 
    Mem[Address] = Data; 
       | 
ncelab: *W,BIGWIX (./sram.v,20|14): Memory index truncation. 

を警告するんですよ?あなたはnchelp使用して、任意のケイデンスのIncisiveの警告に、より詳細なヘルプを表示することができます

+2

メモリに2592ビットのアドレッシングが必要ですか?それは膨大な量のメモリなので、たとえば、64ビットのアドレッシングで1000ペタバイトをアドレス指定できます。 –

答えて

1

:コメントで述べたように

nchelp ncelab BIGWIX 
ncelab/BIGWIX = 
    A memory is being indexed. The index expression has a width 
    greater than a machine word, which is typically 32 bits. 
    Only 32 bits are used. This truncation may result in 
    undesired behavior. 

を、あなたはおそらく、アドレス入力信号は、2592ビット幅または持っている、あなたの記憶になりたくありません(1 < <2592)の位置にある。

関連する問題