verilog iki boyutlu giriş portu

B

barkha

Guest
Merhaba, herkes Verilog iki boyutlu giriş portu bildirmek açıklar herhangi bir doktor gönderebilir miyim?
 
u böyle demek? reg [DATA_WIDTH-1: 0] mem [0: RAM_DEPTH-1];
 
Verilog bir I / O port 2-D dizi olmasına izin vermez. Verilog 2001 yılında bir vektör içine dizisi dümdüz olabilir ve bağlantı noktası üzerinden bu geçer, ama bu biraz garip. İşte bunu yapmak için tek yoldur:
Code:
 modülü üst (içinde, dışında); girişi [31:0] olarak; tel [7:0] dizi [0:03]; çıkış [31:0] üzerinden; atamak { dizi [3], dizi [2], dizi [1], dizi [0]} = yılında; üzerinden atamak = {dizi [3], dizi [2], dizi [1], dizi [0]}; endmodule [ / code] herkes daha kompakt bir sözdizimi biliyor mu?
 
[Quote = echo47] Verilog bir I / O port 2-D dizi olmasına izin vermez. [/Quote] bunu destekliyorsa FWIW, bu SystemVerilog izin verilir, sizin simülatörü ile kontrol edin. Saygılar Ajeetha, CVC www.noveldv.com
 
verilog modülü I / O portları 2-D arrry, yasadışı expresstion ilan edilemez.
 
Grrrrr, bu 2011 ve sen hala verilog bir modül için basit 2 boyutlu giriş veya çıkış geçemez ... Googling gerçekten bir şey kadar dönmedi, bu yüzden birlikte bu pratik makrolar koydu. Şimdiye kadar hile yapmak gibi görünüyor.
Code:
 `define PACK_ARRAY (PK_WIDTH, PK_LEN, PK_SRC, PK_DEST) genvar pk_idx; (pk_idx = 0 için üretmek; pk_idx
 
SystemVerilog kullanın. DC ve synplify bunu destekler. 2D veya 3D portları doğal desteklenmektedir.
 
Korkuyor var bu tasarım başka bir yerde kullanılmış olabilir ama fikir güzel ve ben sadece dolu ve elle her dizi ambalajsız olarak Teşekkürler :) Makro kullanmak vermedi.
Grrrrr, bu 2011 ve sen hala verilog bir modül için basit 2 boyutlu giriş veya çıkış geçemez ... Googling gerçekten bir şey kadar dönmedi, bu yüzden birlikte bu pratik makrolar koydu. Şimdiye kadar hile yapmak gibi görünüyor.
Code:
 `define PACK_ARRAY (PK_WIDTH, PK_LEN, PK_SRC, PK_DEST) genvar pk_idx; (pk_idx = 0 için üretmek; pk_idx
 
Glad çözdükten gibi :) Makro kullanmak vermedi sayesinde bazı oldu kullanın. :) Sen korkuyorsun derdim o başka bir yerde kullanılmış olabilir .. Ne "o"? Makro adları PACK_ARRAY ve UNPACK_ARRAY? Eğer öyleyse ben seçtim adları benzersiz süper değil çünkü, bu geçerli bir endişe var. Onlara biraz sezgisel olarak seçti. : P Orada en azından emin olmak için yapabileceğiniz bir şey olduğunu sizin projenin parçası temiz. dosyası "util / array_pack_unpack.v": [alıntı yap] `ifndef ARRAY_PACK_UNPACK_V` ifdef PACK_ARRAY $ bitirmek; / / makro PACK_ARRAY zaten var. yeniden reddederek. `Endif` ifdef UNPACK_ARRAY $ finish; / / makro UNPACK_ARRAY zaten var. yeniden reddederek. `Endif` define ARRAY_PACK_UNPACK_V 1 `define PACK_ARRAY (PK_WIDTH, PK_LEN, PK_SRC, PK_DEST) genvar pk_idx; (pk_idx = 0 için üretmek; pk_idx
 

Welcome to EDABoard.com

Sponsor

Back
Top