arrays in VHDL we can define arrays from multiple data types, need to notice that bit_vector\std_logic_vector are arrays from bit\std_logic. array in VHDL can be constrained and un-constrained Example1: type myArrayOfBits is array (0 to 7) of bit; Example2: type std_logic_vector is array (natural range <> of std_logic; The second example is from standard std_logic_1164 package. Example of Simple ROM 2 x 4 in this SImple Example we will a have a simple ROM memory that have 2 adress and 4 bit wide of memory, we used the address as ineteger as VHDL does not translate index (integer) to std_logic, when we cover functions we will solve this more elegantly, however the integer data type fully supported by synthesis S\W. |
Example of the ROM 2 x 4 |
Waveform of ROM 2 x 4 The ROM itself is very basic and simple and we we can simulate it from modelsim console directly. |
Waveform of ROM 2 x 4 |
Synthesis of ROM 2 x 4 Gate we will use EP4CE6E22C6 Cyclone 4 FPGA to demostrate synthesis of the ROM 2 x 4 also what interesting the Quartos didnt use any Memory Elements and even didnt use LUTs (Logic Cells) at all. the reason is because of ROM is extreamly simple, the Synthesis S\W were able to represent it with simpele line with 2 NOTs on the way. |
Example of RTL view Below are the way how Quartos arrange LUTs |