instantiation of things with STD_LOGIC_2D

greenspun.com : LUSENET : ece342 : One Thread

Here's one that has me stumped completely. I'm trying to instantiate a MUX that requires a PORT MAP to a type STD_LOGIC_2D. It's just like a two dimensional array where the first index is the input line of the MUX you want, and the second index is the length of each line.

However, what I'm doing doesn't work. I have two STD_LOGIC_VECTORs, each of size (7 DOWNTO 0) and I'm using

PORT MAP (data (1, (7 DOWNTO 0)) => lbin, data (0, (7 DOWNTO 0)) => ubin, sel => ubytesel, result => ledasmconn);

MaxPlus complains that it's expecting a ')' and not a DOWNTO.

Interestingly (or frustratingly), if I try to just use

PORT MAP (data (1) => lbin, data (0) => ubin, sel => ubytesel, result =>ledasmconn);

Maxplus will crash completely and ask me to call tech support, pray to the gods, etc.

Any ideas?

- Julian

-- Julian C. Dunn (jdunn@aquezada.com), January 27, 1999

Answers

I've never heard of the STD_LOGIC_2D, and I couldn't find it in the Maxplus Help, so I don't know where you are getting this Mux from. Sounds very non-standard, which would explain the crash. My question is why you would want to use this at all? Just use something like

led_byte <= if bytesel = '1' then data_lo else data_hi;

where data_lo/hi are your 8-bit registers, and led_byte is an 8-bit vector that feeds your LED display logic.

Robin

-- Robin Grindley (grindley@eecg.toronto.edu), January 27, 1999.


This is my response to Robin's response.

If you go to the Help|LPM/Megafunctions menu and choose lpm_mux, you'll see the VHDL prototype for lpm_ff, which includes the thing called STD_LOGIC_VECTOR_2D or whatever (I can't recall the exact name). I know it's kind like trivia at this point, because I don't need to use this MUX *at this moment* in time, but I was wondering how you instantiate this kind of thing (or more accurately, what parameters you're supposed to pass for the STD_LOGIC_VECTOR_2D).

- Julian

-- Julian C. Dunn (jdunn@aquezada.com), January 28, 1999.


Ahh. If it is used *inside* an LPM_MUX (or LPM_ANYTHING for that matter) it is probably Altera-specific and not meant to be seen outside the library. You won't be able to use it anywhere else, but if you are still interested you can try going to Altera's 'Atlas' customer support page and searching their database of information.

Robin

-- Robin Grindley (grindley@eecg.toronto.edu), January 31, 1999.


Moderation questions? read the FAQ