I'm reading a textbook chapter on A simple Processor Design with VHDL for FPGA What i don't understand is some of the defines he makes in a package to make the description of the processor simpler. The snippet i'm having trouble with is here http://pastebin.com/qBV04SdP I do not understand "IMEMArray" type and its purpose The text book says "The subtype IMem_array is used in an implementation as the type of the instruction memory" But isn't the type "instruction_array" a type for ROM. So wouldn't "IMemArray" be a array of several memories?
1 | constant IMem_addr_width : positive := 12; |
2 | constant IMem_size : positive := 2**IMem_addr_width; |
3 | subtype IMem_addr is unsigned(IMem_addr_width - 1 downto 0); |
4 | |
5 | subtype instruction is unsigned(17 downto 0); |
6 | type instruction_array is array (natural range <>) of instruction; |
7 | |
8 | subtype IMem_array is instruction_array(0 to IMem_size - 1); |
> But isn't the type "instruction_array" a type for ROM. Yes. > So wouldn't "IMemArray" be a array of several memories? Yes. So the title of the book should be: "A obscured Processor Design with..." ;-) Duke
Okay :) Thanks, I don't think he actually uses it anywhere so should be fine.
Your interpretation is not correct. instruction_array is an array type with unspecified size. IMem_array is just a subtype where the size of the array is specified.
Ok. You are are right. I usually have only one instruction memory array. And this is usually (or unfortunately?) not unconstrained :-) So I'm not very familiar with the unconstrained array construct. Duke
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.