SharpWeapon
Member level 5
- Joined
- Mar 18, 2014
- Messages
- 89
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 6
- Activity points
- 705
Hello,
I was planning to have Dual port RAM while writing the following code, yet the synthesizer selected a Quad port RAM for the same code. First of, I don't understand why it selected the Quad port, as I am specifying only two ports of data writing at the same time. Second, Incase the synthesizer has the right to do anything how can I force it to use only Dual port RAMs?
Thanks!
I was planning to have Dual port RAM while writing the following code, yet the synthesizer selected a Quad port RAM for the same code. First of, I don't understand why it selected the Quad port, as I am specifying only two ports of data writing at the same time. Second, Incase the synthesizer has the right to do anything how can I force it to use only Dual port RAMs?
Thanks!
Code VHDL - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Writing: process(CLK) begin if(CLK'event and CLK='1')then if(en='1')then ramMem(to_integer(unsigned(memAddressWriteA)))<=inputA; ramMem(to_integer(unsigned(memAddressWriteB)))<=inputB; memAddressWriteA<=STD_LOGIC_VECTOR(unsigned(memAddressWriteA) + 2); memAddressWriteB<=STD_LOGIC_VECTOR(unsigned(memAddressWriteB) + 2); if(to_integer(unsigned(memAddressWriteA))=(nPt-2))then startReading<='1'; end if; end if; end if; end process; Reading: process(CLK_Fast) begin if(CLK_Fast'event and CLK_Fast='1')then if(en='1')then if(startReading='1') then memAddressOrigFull<=STD_LOGIC_VECTOR(unsigned(memAddressOrigFull) + 1); memAddressOrig<=STD_LOGIC_VECTOR(unsigned(memAddressOrig) + 1); output<=ramMem(to_integer(unsigned((memAddressReadRever)))); end if; end if; end if; end process;