3D Matriz-Port (área natural <>)

V

vollbr0t

Guest
Oi, eu gostaria de criar um módulo (A) com uma porta 3d em array. Para criar uma matriz de porta-i tem que usar um packge para declarar o tipo de matriz. Eu faço isso como este: test_type TYPE é array (gama natural, área de distribuição natural, área de distribuição natural) de std_logic; eu tenho que usar "área natural" para todas as três dimensões porque a portwidth está dependendo de genéricos passados ​​para A: A entidade é genérico (gen_1: natural: = 5, gen_2: natural: = 6, gen_3: natural: = 7); porta (matriz: IN test_type (gen_1 downto 0, gen_2 downto 0, gen_3 downto 0)); A simulação funciona bem com este , mas na síntese i get "Matrix não suportado ainda" sobre o 3D-Port-Line. Por causa da "área natural" necessária eu não posso usar subtipo para a declaração no pacote, e passando os genéricos para o pacote para não usar área de distribuição natural não é possível. Você tem alguma idéia de começar esse syenthesis para? Atenciosamente, Jan
 
A única resposta é usar outro synthesisor. multi-dimensional arrays não são usados ​​com muita freqüência e alguns synthesisors não pode apoiá-los. Por que a versão synthesisor eo que você está usando? Mas a minha pergunta é por que você fez uma matriz 3d de std_logic? porque havent você fez uma matriz 2 de std_logic_vector?
 
i não don pensar que sua possível declarar algo assim: test_type TYPE é array (gama natural, gama natural) de std_logic_vector (intervalo natural); * edit Estou usando ISE 13,2
 
1. você tem que ajustar o comprimento do std_logic_vector ao declará-lo, por isso teria que ser: test_type tipo é array (naturais gama gama, natural) de std_logic_vector (7 downto 0); a menos que você pode encontrar um VHDL 2008 synthesisor compatível, onde você pode deixar o std_logic_vector como área natural. Gostaria de evitar declarar arrays de std_logic - torna a vida um pouco chato. 2. Eu não uso ISE, mas eu sei Quartus (Altera) provavelmente apoiá-lo. Xilinx é conhecida por ser um pouco lento para apanhar com todos os outros!
 
mas este é o problema: todas as três dimensões têm de ser genérica!
 
você pode ter que fazer um tipo de soft-. por exemplo: std_logic_vector (M * N * P-1 downto 0), e em seguida, executar a indexação para obter itens específicos.
 

Welcome to EDABoard.com

Sponsor

Back
Top