mirror of
				https://github.com/Klagarge/Cursor.git
				synced 2025-10-30 21:49:17 +00:00 
			
		
		
		
	Initial commit
This commit is contained in:
		
							
								
								
									
										54
									
								
								Libs/Memory/hdl/bramDualportWritefirst_bhv.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								Libs/Memory/hdl/bramDualportWritefirst_bhv.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| USE std.textio.all; | ||||
|  | ||||
| ARCHITECTURE bhv OF bramDualportWritefirst IS | ||||
|   -- Define ramContent type | ||||
|   type ramContentType is array(0 to (2**addressBitNb)-1) of bit_vector(dataBitNb-1 DOWNTO 0); | ||||
|  | ||||
|   -- Define function to create initvalue signal | ||||
|   impure function ReadRamContentFromFile(ramContentFilenAme : in string) return ramContentType is | ||||
|     FILE     ramContentFile     : text is in ramContentFilenAme; | ||||
|     variable ramContentFileLine : line; | ||||
|     variable ramContent         : ramContentType; | ||||
|   begin | ||||
|     for i in ramContentType'range loop | ||||
|       readline(ramContentFile, ramContentFileLine); | ||||
|       read(ramContentFileLine, ramContent(i)); | ||||
|     end loop; | ||||
|     return ramContent; | ||||
|   end function; | ||||
|  | ||||
|   -- Declare ramContent signal | ||||
|   shared variable ramContent: ramContentType := ReadRamContentFromFile(initFile); | ||||
|  | ||||
| BEGIN | ||||
|   -- Port A | ||||
|   process(clockA) | ||||
|   begin | ||||
|     if clockA'event and clockA='1' then | ||||
|       if enA = '1' then | ||||
|         if writeEnA = '1' then | ||||
|           dataOutA <= dataInA; | ||||
|           ramContent(to_integer(unsigned(addressA))) := to_bitvector(dataInA,'0'); | ||||
|         else | ||||
|           dataOutA <= to_stdulogicvector(ramContent(to_integer(unsigned(addressA)))); | ||||
|         end if; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process; | ||||
|  | ||||
|   -- Port B | ||||
|   process(clockB) | ||||
|   begin | ||||
|     if clockB'event and clockB='1' then | ||||
|       if enB = '1' then | ||||
| --        if writeEnB = '1' then | ||||
| --          ramContent(to_integer(unsigned(addressB))) := to_bitvector(dataInB,'0'); | ||||
| --          dataOutB <= dataInB; | ||||
| --        else | ||||
|           dataOutB <= to_stdulogicvector(ramContent(to_integer(unsigned(addressB)))); | ||||
| --        end if; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process; | ||||
|  | ||||
| END ARCHITECTURE bhv; | ||||
							
								
								
									
										39
									
								
								Libs/Memory/hdl/bram_bhv.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								Libs/Memory/hdl/bram_bhv.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| USE std.textio.all; | ||||
|  | ||||
| ARCHITECTURE bhv OF bram IS | ||||
|   -- Define ramContent type | ||||
|   type ramContentType is array(0 to (2**addressBitNb)-1) of bit_vector(dataBitNb-1 DOWNTO 0); | ||||
|  | ||||
|   -- Define function to create initvalue signal | ||||
|   impure function ReadRamContentFromFile(ramContentFilenAme : in string) return ramContentType is | ||||
|     FILE     ramContentFile     : text is in ramContentFilenAme; | ||||
|     variable ramContentFileLine : line; | ||||
|     variable ramContent         : ramContentType; | ||||
|   begin | ||||
|     for i in ramContentType'range loop | ||||
|       readline(ramContentFile, ramContentFileLine); | ||||
|       read(ramContentFileLine, ramContent(i)); | ||||
|     end loop; | ||||
|     return ramContent; | ||||
|   end function; | ||||
|  | ||||
|   -- Declare ramContent signal | ||||
|   shared variable ramContent: ramContentType := ReadRamContentFromFile(initFile); | ||||
|  | ||||
| BEGIN | ||||
|   -- Port A | ||||
|   process(clock) | ||||
|   begin | ||||
|     if clock'event and clock='1' then | ||||
|       if en = '1' then | ||||
|         if writeEn = '1' then | ||||
|           dataOut <= dataIn; | ||||
|           ramContent(to_integer(unsigned(addressIn))) := to_bitvector(dataIn,'0'); | ||||
|         else | ||||
|           dataOut <= to_stdulogicvector(ramContent(to_integer(unsigned(addressIn)))); | ||||
|         end if; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process; | ||||
|  | ||||
| END ARCHITECTURE bhv; | ||||
							
								
								
									
										55
									
								
								Libs/Memory/hdl/bram_dualport_writefirst.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								Libs/Memory/hdl/bram_dualport_writefirst.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| USE std.textio.all; | ||||
|  | ||||
| ARCHITECTURE bhv OF bramContentDualportWritefirst IS | ||||
|   -- Define ramContent type | ||||
|   type ramContentType is array(0 to (2**addr_bit_nb)-1) of bit_vector(data_bit_nb-1 DOWNTO 0); | ||||
|  | ||||
|   -- Define function to create initvalue signal | ||||
|   impure function ReadRamContentFromFile(ramContentFilenAme : in string) return ramContentType is | ||||
|     FILE     ramContentFile     : text is in ramContentFilenAme; | ||||
|     variable ramContentFileLine : line; | ||||
|     variable ramContent         : ramContentType; | ||||
|   begin | ||||
|     for i in ramContentType'range loop | ||||
|       readline(ramContentFile, ramContentFileLine); | ||||
|       read(ramContentFileLine, ramContent(i)); | ||||
|     end loop; | ||||
|     return ramContent; | ||||
|   end function; | ||||
|  | ||||
|   -- Declare ramContent signal | ||||
|   shared variable ramContent: ramContentType := ReadRamContentFromFile(init_file); | ||||
|  | ||||
| BEGIN | ||||
|   -- Port A | ||||
|   process(clockA) | ||||
|   begin | ||||
|     if clockA'event and clockA='1' then | ||||
|       if enA = '1' then | ||||
|         if writeEnA = '1' then | ||||
|           dataOutA <= dataInA; | ||||
|           ramContent(to_integer(unsigned(addressA))) := to_bitvector(dataInA,'0'); | ||||
|         else | ||||
|           dataOutA <= to_stdulogicvector(ramContent(to_integer(unsigned(addressA)))); | ||||
|         end if; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process; | ||||
|  | ||||
|   -- Port B | ||||
|   process(clockB) | ||||
|   begin | ||||
|     if clockB'event and clockB='1' then | ||||
|       if enB = '1' then | ||||
|         if writeEnB = '1' then | ||||
|           ramContent(to_integer(unsigned(addressB))) := to_bitvector(dataInB,'0'); | ||||
|           dataOutB <= dataInB; | ||||
|         else | ||||
|           dataOutB <= to_stdulogicvector(ramContent(to_integer(unsigned(addressB)))); | ||||
|         end if; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process; | ||||
|  | ||||
| END ARCHITECTURE bhv; | ||||
|  | ||||
| @@ -0,0 +1,73 @@ | ||||
| -- ------------------------------------------------------------------------------ | ||||
| --  Copyright 2013 HES-SO Valais Wallis (www.hevs.ch) | ||||
| -- ------------------------------------------------------------------------------ | ||||
| --  FIFO bridge with bus width adaption  | ||||
| --    A shift register that connects two FIFOs with different bus width. | ||||
| --    Many IP blocks nowadays have FIFO or FIFO-like interfaces and often they | ||||
| --    have to be connected. This block can the be used for this task, even if | ||||
| --    the bus size of the two FIFO interfaces is different. | ||||
| --    The Rx side bus width has to be a multiple of the Tx side bus width.  | ||||
| --  | ||||
| --    Created on 2013-10-18 | ||||
| -- | ||||
| --    Author: Oliver A. Gubler (oliver.gubler@hevs.ch) | ||||
| --  | ||||
| --    2014-10-06: *modify introduction text | ||||
| --                +add some comment | ||||
| --                *change readRx to a pulse | ||||
| --                *fix bug on shift of shiftreg_s | ||||
| --    2013-10-18: +intital release | ||||
| -- ------------------------------------------------------------------------------ | ||||
| -- | ||||
|  | ||||
| library Common;  | ||||
|   use Common.CommonLib.all;  | ||||
|  | ||||
| ARCHITECTURE behavioral OF fifoBridgeRxToTxBusWidthAdaptionRxBigger IS | ||||
|    | ||||
|   signal cnt_s: unsigned(requiredBitNb(dataBitNbRx)-1 downto 0); | ||||
|   signal shiftreg_s: std_ulogic_vector(dataBitNbRx-1 downto 0); | ||||
|   signal emptyRx_s: std_ulogic; -- internal empty signal | ||||
|   signal writeTx_s: std_ulogic; -- internal write signal | ||||
|    | ||||
|   constant ratio_rxtx_c: positive range 1 to dataBitNbRx/dataBitNbTx:= dataBitNbRx/dataBitNbTx; | ||||
|      | ||||
| BEGIN | ||||
|    | ||||
|   rx0: process(clock, reset) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       shiftreg_s <= (others => '0'); | ||||
|       emptyRx_s <= '1'; | ||||
|       cnt_s <= (others => '0'); | ||||
|       writeTx_s <= '0'; | ||||
|       dataTx <= (others => '0'); | ||||
|       readRx <= '0'; | ||||
|     elsif rising_edge(clock) then | ||||
|       writeTx_s <= '0'; | ||||
|       readRx <= '0'; | ||||
|       -- fetch data | ||||
|       if emptyRx_s = '1' and emptyRx = '0' then | ||||
|         emptyRx_s <= '0'; | ||||
|         shiftreg_s <= dataRx; | ||||
|         readRx <= '1'; | ||||
|       end if; | ||||
|       -- shift data and put out | ||||
|       -- after each write, wait one cylce to check if full gets high | ||||
|       if emptyRx_s = '0' and fullTx = '0' and writeTx_s = '0' then | ||||
|         shiftreg_s <= shiftreg_s(dataBitNbRx-dataBitNbTx-1 downto 0) & std_ulogic_vector(to_unsigned(0,dataBitNbTx)); | ||||
|         dataTx <= shiftreg_s(dataBitNbRx-1 downto dataBitNbRx-dataBitNbTx); | ||||
|         writeTx_s <= '1'; | ||||
|         cnt_s <= cnt_s +1; | ||||
|         if cnt_s >= ratio_rxtx_c-1 then | ||||
|           cnt_s <= (others => '0'); | ||||
|           emptyRx_s <= '1'; | ||||
|         end if; | ||||
|       end if;   | ||||
|     end if; | ||||
|   end process; | ||||
|  | ||||
|   writeTx <= writeTx_s; | ||||
|  | ||||
| END ARCHITECTURE behavioral; | ||||
|  | ||||
| @@ -0,0 +1,75 @@ | ||||
| -- ------------------------------------------------------------------------------ | ||||
| --  Copyright 2013 HES-SO Valais Wallis (www.hevs.ch) | ||||
| -- ------------------------------------------------------------------------------ | ||||
| --  FIFO bridge with bus width adaption  | ||||
| --    A shift register that connects two FIFOs with different bus width. | ||||
| --    Many IP blocks nowadays have FIFO or FIFO-like interface. But the bus width | ||||
| --    varies often. This block can the be used to adapt the bus width to your own | ||||
| --    needs. | ||||
| --    The Tx side bus width has to be a multiple of the Rx side bus width.  | ||||
| -- | ||||
| --    Created on 2013-10-21 | ||||
| --  | ||||
| --    Version: 1.0 | ||||
| --    Author: Oliver A. Gubler (oliver.gubler@hevs.ch) | ||||
| -- ------------------------------------------------------------------------------ | ||||
| -- | ||||
|  | ||||
| library common; | ||||
|   use common.commonlib.all; | ||||
|  | ||||
| ARCHITECTURE behavioral OF fifoBridgeRxToTxBusWidthAdaptionTxbigger IS | ||||
|    | ||||
|   constant ratio_txrx_c: positive range 1 to dataBitNbTx/dataBitNbRx:= dataBitNbTx/dataBitNbRx; | ||||
|  | ||||
|   signal cnt_s: unsigned(requiredBitNb(ratio_txrx_c-1)-1 downto 0); | ||||
|   signal shiftreg_s: std_ulogic_vector(dataBitNbTx-1 downto 0); | ||||
|   signal fullTx_s: std_ulogic; | ||||
|   signal emptyRx_s: std_ulogic; | ||||
|        | ||||
| BEGIN | ||||
|    | ||||
|   rx0: process(clock, reset) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       shiftreg_s <= (others => '0'); | ||||
|       readRx <= '1'; | ||||
|       emptyRx_s <= '1'; | ||||
|       cnt_s <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       readRx <= NOT fullTx_s; | ||||
|       emptyRx_s <= '1'; | ||||
|       if emptyRx = '0' and fullTx_s = '0' then | ||||
| --        shiftreg_s(((to_integer(cnt_s)+1)*dataBitNbRx)-1 downto to_integer(cnt_s)*dataBitNbRx) <= dataRx; | ||||
|         shiftreg_s <= shiftreg_s(dataBitNbTx-dataBitNbRx-1 downto 0) & dataRx; | ||||
|         readRx <= '1'; | ||||
|         cnt_s <= cnt_s +1; | ||||
|         if cnt_s >= ratio_txrx_c-1 then | ||||
|           cnt_s <= (others => '0'); | ||||
|           emptyRx_s <= '0'; | ||||
|         end if; | ||||
|       end if;   | ||||
|     end if;    | ||||
|   end process; | ||||
|    | ||||
|   tx0: process(clock, reset) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       fullTx_s <= '1'; | ||||
|       writeTx <= '0'; | ||||
|       dataTx <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       fullTx_s <= fullTx; | ||||
|       writeTx <= '0'; | ||||
|       -- no need to wait to check for full (in contrast to RxBigger) | ||||
|       -- because it will forcibly take several clocks to fill the shiftreg | ||||
|       if emptyRx_s = '0' and fullTx = '0' then | ||||
|         dataTx <= shiftreg_s; | ||||
|         writeTx <= '1'; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process;   | ||||
|    | ||||
| END ARCHITECTURE behavioral; | ||||
|  | ||||
|  | ||||
							
								
								
									
										165
									
								
								Libs/Memory/hdl/fifo_bram_rtl.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								Libs/Memory/hdl/fifo_bram_rtl.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,165 @@ | ||||
| library Common; | ||||
|   use Common.CommonLib.all; | ||||
|  | ||||
| architecture RTL of FIFO_bram is | ||||
|  | ||||
|   subtype register_type is std_ulogic_vector(dataIn'high downto 0); | ||||
|   type memory_type is array (0 to depth-1) of register_type; | ||||
|  | ||||
|   signal writeCounter: unsigned(requiredBitNb(depth-1)-1 downto 0); | ||||
|   signal readCounter: unsigned(writeCounter'range); | ||||
|   signal memoryArray: memory_type; | ||||
|  | ||||
|   type fifoStateType is ( | ||||
|     sEmpty, sFull, | ||||
|     sRead, sWrite, sWriteFirst, | ||||
|     sReadWrite, sWait | ||||
|   ); | ||||
|   signal fifoState: fifoStateType; | ||||
|   signal emptyCondition, fullCondition, empty_int: std_ulogic; | ||||
|  | ||||
| begin | ||||
|   ------------------------------------------------------------------------------ | ||||
|                                                       -- read and write counters | ||||
|   updateWriteCounter: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       writeCounter <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if (write = '1') and  (fullCondition = '0') then | ||||
|         writeCounter <= writeCounter + 1; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process updateWriteCounter; | ||||
|  | ||||
|   updateReadCounter: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       readCounter <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if (read = '1') and  (empty_int = '0') then | ||||
|         readCounter <= readCounter + 1; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process updateReadCounter; | ||||
|  | ||||
|   ------------------------------------------------------------------------------ | ||||
|                                                                 -- memory access | ||||
|   writeMem: process(clock) | ||||
|   begin | ||||
|     if rising_edge(clock) then | ||||
|       if (write = '1') and (fullCondition = '0') then | ||||
|         memoryArray(to_integer(writeCounter)) <= dataIn; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process writeMem; | ||||
|  | ||||
|   readMem: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       dataOut <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if (read = '0') or (empty_int = '1') then | ||||
|         dataOut <= memoryArray(to_integer(readCounter)); | ||||
|       else | ||||
|         dataOut <= memoryArray(to_integer(readCounter+1)); | ||||
|       end if; | ||||
|     end if; | ||||
|   end process readMem; | ||||
|  | ||||
|   ------------------------------------------------------------------------------ | ||||
|                                                                      -- controls | ||||
|   emptyCondition <= '1' when | ||||
|       ( (fifoState = sRead) and (writeCounter = readCounter) ) or | ||||
|         (fifoState = sEmpty) | ||||
|     else '0'; | ||||
|  | ||||
|   fullCondition <= '1' when | ||||
|       ( (fifoState = sWrite) and (writeCounter = readCounter) ) or | ||||
|         (fifoState = sFull) | ||||
|     else '0'; | ||||
|  | ||||
|  | ||||
|   fifoControl: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       fifoState <= sEmpty; | ||||
|     elsif rising_edge(clock) then | ||||
|       case fifoState is | ||||
|         when sEmpty => | ||||
|           if write = '1' then | ||||
|             fifoState <= sWriteFirst; | ||||
|           end if; | ||||
|         when sFull => | ||||
|           if (read = '1') then | ||||
|             fifoState <= sRead; | ||||
|           end if; | ||||
|         when sRead => | ||||
|           if (read = '1') and (write = '1') then | ||||
|             fifoState <= sReadWrite; | ||||
|           elsif write = '1' then | ||||
|             fifoState <= sWrite; | ||||
| 		      elsif emptyCondition = '1' then | ||||
|             fifoState <= sEmpty; | ||||
|           elsif read = '1' then | ||||
|             fifoState <= sRead; | ||||
|           else | ||||
|             fifoState <= sWait; | ||||
|           end if; | ||||
|         when sWriteFirst => | ||||
|           if (read = '1') and (write = '1') then | ||||
|             fifoState <= sReadWrite; | ||||
|           elsif write = '1' then | ||||
|             fifoState <= sWrite; | ||||
|           elsif read = '1' then | ||||
|             fifoState <= sRead; | ||||
|           else | ||||
|             fifoState <= sWait; | ||||
|           end if; | ||||
|         when sWrite => | ||||
|           if (read = '1') and (write = '1') then | ||||
|             fifoState <= sReadWrite; | ||||
|           elsif read = '1' then | ||||
|             fifoState <= sRead; | ||||
| 		      elsif fullCondition = '1' then | ||||
|             fifoState <= sFull; | ||||
|           elsif write = '1' then | ||||
|             fifoState <= sWrite; | ||||
|           else | ||||
|             fifoState <= sWait; | ||||
|           end if; | ||||
|         when sReadWrite => | ||||
|           if (read = '0') and (write = '0') then | ||||
|             fifoState <= sWait; | ||||
|           elsif (read = '1') and (write = '0') then | ||||
|             fifoState <= sRead; | ||||
|           elsif (write = '1') and (read = '0') then | ||||
|             fifoState <= sWrite; | ||||
|           end if; | ||||
|         when sWait => | ||||
|           if (read = '1') and (write = '1') then | ||||
|             fifoState <= sReadWrite; | ||||
|           elsif read = '1' then | ||||
|             fifoState <= sRead; | ||||
|           elsif write = '1' then | ||||
|             fifoState <= sWrite; | ||||
|           end if; | ||||
|         when others => null; | ||||
|       end case; | ||||
|     end if; | ||||
|   end process fifoControl; | ||||
|    | ||||
|  | ||||
|   full <= '1' when  | ||||
|         (fifoState = sFull) or | ||||
|         (fullCondition = '1') | ||||
|     else '0'; | ||||
|  | ||||
|   empty_int <= '1' when | ||||
|         (fifoState = sEmpty) or | ||||
|         (fifoState = sWriteFirst) or | ||||
|         ( (emptyCondition = '1') and (fifoState = sRead) ) | ||||
|     else '0'; | ||||
|   empty <= empty_int; | ||||
|    | ||||
| end RTL; | ||||
							
								
								
									
										63
									
								
								Libs/Memory/hdl/fifo_minimal.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								Libs/Memory/hdl/fifo_minimal.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| library Common; | ||||
|   use Common.CommonLib.all; | ||||
|  | ||||
| architecture minimal of FIFO_bram is | ||||
|  | ||||
|   subtype register_type is std_ulogic_vector(dataIn'high downto 0); | ||||
|   type memory_type is array (0 to depth-1) of register_type; | ||||
|  | ||||
|   signal writeCounter: unsigned(requiredBitNb(depth)-1 downto 0); | ||||
|   signal readCounter: unsigned(writeCounter'range); | ||||
|   signal memoryArray : memory_type; | ||||
|  | ||||
| begin | ||||
|  | ||||
|   updateWriteCounter: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       writeCounter <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if write = '1' then | ||||
|         writeCounter <= writeCounter + 1; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process updateWriteCounter; | ||||
|  | ||||
|   updateReadCounter: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       readCounter <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if read = '1' then | ||||
|         readCounter <= readCounter + 1; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process updateReadCounter; | ||||
|  | ||||
|   writeMem: process(clock) | ||||
|   begin | ||||
|     if rising_edge(clock) then | ||||
|       if write = '1' then | ||||
|         memoryArray(to_integer(writeCounter)) <= dataIn; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process writeMem; | ||||
|  | ||||
|   dataOut <= memoryArray(to_integer(readCounter)); | ||||
|  | ||||
|   checkStatus: process(readCounter, writeCounter) | ||||
|   begin | ||||
|     if readCounter = writeCounter then | ||||
|       empty <= '1'; | ||||
|     else | ||||
|       empty <= '0'; | ||||
|     end if; | ||||
|     if writeCounter+1 = readCounter then | ||||
|       full <= '1'; | ||||
|     else | ||||
|       full <= '0'; | ||||
|     end if; | ||||
|   end process checkStatus; | ||||
|  | ||||
| end minimal; | ||||
|  | ||||
							
								
								
									
										37
									
								
								Libs/Memory/hdl/fifo_oneRegister_rtl.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								Libs/Memory/hdl/fifo_oneRegister_rtl.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| architecture oneRegister of FIFO_oneRegister is | ||||
|  | ||||
|   signal dataRegister: std_ulogic_vector(dataIn'range); | ||||
|  | ||||
| begin | ||||
|  | ||||
|   writeReg: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       dataRegister <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if write = '1' then | ||||
|         dataRegister <= dataIn; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process writeReg; | ||||
|  | ||||
|   dataOut <= dataRegister; | ||||
|  | ||||
|   manageFlags: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       empty <= '1'; | ||||
|       full  <= '0'; | ||||
|     elsif rising_edge(clock) then | ||||
|       if write = '1' then | ||||
|         empty <= '0'; | ||||
|         full  <= '1'; | ||||
|       elsif read = '1' then | ||||
|         empty <= '1'; | ||||
|         full  <= '0'; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process manageFlags; | ||||
|  | ||||
| end oneRegister; | ||||
|  | ||||
							
								
								
									
										118
									
								
								Libs/Memory/hdl/fifo_pim.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								Libs/Memory/hdl/fifo_pim.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,118 @@ | ||||
| library Common; | ||||
|   use Common.CommonLib.all; | ||||
|  | ||||
| architecture pim of FIFO_bram is | ||||
|  | ||||
|   type mem_t is array (depth-1 downto 0) of std_ulogic_vector(dataIn'range); | ||||
|   subtype mem_range_r is natural range requiredBitNb(depth)-1 downto 0; | ||||
|   subtype ptr_range_r is natural range requiredBitNb(depth)+1-1 downto 0; | ||||
|  | ||||
| 	signal mem 				: mem_t := (others => (others => '0')); | ||||
|  | ||||
| 	signal full_int				: std_logic; | ||||
| 	signal empty_int			: std_logic; | ||||
| 	signal write_error		: std_logic; | ||||
| 	signal read_error		: std_logic; | ||||
| 	signal read_ptr			: unsigned(ptr_range_r); | ||||
| 	signal read_ptr_next	: unsigned(ptr_range_r); | ||||
| 	signal write_ptr		: unsigned(ptr_range_r); | ||||
| 	signal write_ptr_next	: unsigned(ptr_range_r); | ||||
|  | ||||
| 	signal used_int 		: unsigned(ptr_range_r); | ||||
|  | ||||
| begin | ||||
|   ----------------------------------------------------------------------------- | ||||
|   -- Free / used | ||||
|   ----------------------------------------------------------------------------- | ||||
|  | ||||
|   fifo_count_proc: process(reset, clock) | ||||
|   begin | ||||
|   	if reset = '1' then | ||||
|   		used_int <= (others => '0'); | ||||
|   	elsif rising_edge(clock) then | ||||
|   		if write = '1' and full_int = '0' then | ||||
|   			used_int <= used_int + 1; | ||||
|   		end if; | ||||
|   		if read = '1' and empty_int = '0' then | ||||
|   			used_int <= used_int - 1; | ||||
|   		end if; | ||||
|    | ||||
|   		-- Simultaneous read/write -> no change | ||||
|   		-- ignore full_int, since it is valid | ||||
|   		if write = '1' and read = '1' and empty_int = '0' then | ||||
|   			used_int <= used_int; | ||||
|   		end if;   | ||||
|   	end if; | ||||
|   end process; | ||||
|  | ||||
|  | ||||
|   ----------------------------------------------------------------------------- | ||||
|   -- FIFO status | ||||
|   ----------------------------------------------------------------------------- | ||||
|  | ||||
|   full_int	<= '1' when (write_ptr(write_ptr'left) /= read_ptr(read_ptr'left)) | ||||
|                 and ((write_ptr(mem_range_r) = read_ptr(mem_range_r))) | ||||
|     else '0'; | ||||
|   empty_int	<= '1' when (write_ptr = read_ptr) else '0'; | ||||
|  | ||||
|   full <= full_int; | ||||
|   empty <= empty_int; | ||||
|  | ||||
|   write_ptr_next <= write_ptr + 1; | ||||
|   read_ptr_next <= read_ptr + 1; | ||||
|  | ||||
|  | ||||
|   ----------------------------------------------------------------------------- | ||||
|   -- FIFO pointers | ||||
|   ----------------------------------------------------------------------------- | ||||
|  | ||||
|   fifo_ptr_proc: process(reset, clock) | ||||
|   begin | ||||
|   	if reset = '1' then | ||||
|   		write_ptr <= (others => '0'); | ||||
|   		read_ptr <= (others => '0'); | ||||
|   		write_error <= '0'; | ||||
|   		read_error <= '0';	 | ||||
|   	elsif rising_edge(clock) then | ||||
|   		write_error <= '0'; | ||||
|   		read_error <= '0';	 | ||||
|   		if write = '1' then | ||||
|   			if full_int = '0' or read = '1' then | ||||
|   				write_ptr <= write_ptr_next; | ||||
|   			else | ||||
|   				write_error <= '1'; | ||||
|   			end if; | ||||
|   		end if; | ||||
|   		if read = '1' then | ||||
|   			if empty_int = '0' then | ||||
|   				read_ptr <= read_ptr_next; | ||||
|   			else | ||||
|   				read_error <= '1'; | ||||
|   			end if; | ||||
|   		end if; | ||||
|   	end if; | ||||
|   end process; | ||||
|  | ||||
|  | ||||
|   ----------------------------------------------------------------------------- | ||||
|   -- FIFO RAM | ||||
|   ----------------------------------------------------------------------------- | ||||
|  | ||||
|   fifo_out_proc : process(clock) | ||||
|   begin | ||||
|   	if rising_edge(clock) then | ||||
|   		dataOut <= mem(to_integer(read_ptr(mem_range_r))); | ||||
|   	end if; | ||||
|   end process; | ||||
|  | ||||
|   fifo_in_proc : process(clock) | ||||
|   begin | ||||
|   	if rising_edge(clock) then | ||||
|   		if write = '1' and full_int = '0' then | ||||
|   			mem(to_integer(write_ptr(mem_range_r))) <= dataIn; | ||||
|   		end if; | ||||
|   	end if; | ||||
|   end process; | ||||
|  | ||||
| end pim; | ||||
|  | ||||
							
								
								
									
										97
									
								
								Libs/Memory/hdl/fifo_rtl_minimal.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								Libs/Memory/hdl/fifo_rtl_minimal.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| -- | ||||
| -- VHDL Architecture Memory.fifo_minimal | ||||
| -- | ||||
| -- Created: | ||||
| --          by - uadmin.UNKNOWN (WE3877) | ||||
| --          at - 13:54:33 11.07.2012 | ||||
| -- | ||||
| -- using Mentor Graphics HDL Designer(TM) 2009.2 (Build 10) | ||||
| -- | ||||
| library Common; | ||||
|   use Common.CommonLib.all; | ||||
|  | ||||
| architecture RTL_minimal of FIFO is | ||||
|  | ||||
|   subtype register_type is std_ulogic_vector(dataIn'high downto 0); | ||||
|   type memory_type is array (0 to depth-1) of register_type; | ||||
|  | ||||
|   signal writeCounter: unsigned(requiredBitNb(depth)-1 downto 0); | ||||
|   signal readCounter: unsigned(writeCounter'range); | ||||
|   signal memoryArray : memory_type; | ||||
|  | ||||
| begin | ||||
|  | ||||
|   updateWriteCounter: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       writeCounter <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if write = '1' then | ||||
|         writeCounter <= writeCounter + 1; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process updateWriteCounter; | ||||
|  | ||||
|   updateReadCounter: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       readCounter <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if read = '1' then | ||||
|         readCounter <= readCounter + 1; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process updateReadCounter; | ||||
|  | ||||
|   writeMem: process(clock) | ||||
|   begin | ||||
|     if rising_edge(clock) then | ||||
|       if write = '1' then | ||||
|         memoryArray(to_integer(writeCounter)) <= dataIn; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process writeMem; | ||||
|  | ||||
|   dataOut <= memoryArray(to_integer(readCounter)); | ||||
|  | ||||
| --  checkStatus: process(reset, clock) | ||||
| --  begin | ||||
| --    if reset = '1' then | ||||
| --      empty <= '1'; | ||||
| --      full <= '0'; | ||||
| --    elsif rising_edge(clock) then | ||||
| --      if readCounter+1 = writeCounter then | ||||
| --        if read = '1' then | ||||
| --          empty <= '1'; | ||||
| --        end if; | ||||
| --      elsif writeCounter = readCounter then | ||||
| --        if write = '1' then | ||||
| --          empty <= '0'; | ||||
| --        end if; | ||||
| --        if read = '1' then | ||||
| --          full <= '0'; | ||||
| --        end if; | ||||
| --      elsif writeCounter+1 = readCounter then | ||||
| --        if write = '1' then | ||||
| --          full <= '1'; | ||||
| --        end if; | ||||
| --      end if; | ||||
| --    end if; | ||||
| --  end process checkStatus; | ||||
|  | ||||
|   checkStatus: process(readCounter, writeCounter) | ||||
|   begin | ||||
|     if readCounter = writeCounter then | ||||
|       empty <= '1'; | ||||
|     else | ||||
|       empty <= '0'; | ||||
|     end if; | ||||
|     if writeCounter+1 = readCounter then | ||||
|       full <= '1'; | ||||
|     else | ||||
|       full <= '0'; | ||||
|     end if; | ||||
|   end process checkStatus; | ||||
|  | ||||
| END ARCHITECTURE RTL_minimal; | ||||
|  | ||||
							
								
								
									
										84
									
								
								Libs/Memory/hdl/fifobridgerxtotx_rtl.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								Libs/Memory/hdl/fifobridgerxtotx_rtl.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| -- ------------------------------------------------------------------------------ | ||||
| --  Copyright 2012 HES-SO Valais Wallis (www.hevs.ch) | ||||
| -- ------------------------------------------------------------------------------ | ||||
| --  FIFO bridge with bus width adaptation  | ||||
| --    A register that connects two FIFOs. | ||||
| --    Many IP blocks nowadays have FIFO or FIFO-like interfaces and often they | ||||
| --    have to be connected. This block can the be used for this task. | ||||
| --  | ||||
| --    Created on 2012 | ||||
| -- | ||||
| --    Author: Oliver A. Gubler (oliver.gubler@hevs.ch) | ||||
| --  | ||||
| --    2016-04-01: fix bug in FWFT read when full | ||||
| --    2016-03-22: +add FirstWordFallThrough (FWFT) generic | ||||
| --    2012: +intital release | ||||
| -- ------------------------------------------------------------------------------ | ||||
| -- | ||||
|  | ||||
| ARCHITECTURE RTL OF fifoBridgeRxToTx IS | ||||
|  | ||||
|   signal read1: std_ulogic; | ||||
|   signal read2: std_ulogic; | ||||
|   signal read: std_ulogic; | ||||
|   signal storedData: std_ulogic_vector(data1'range); | ||||
|   signal write: std_ulogic; | ||||
|  | ||||
| BEGIN | ||||
|  | ||||
|   readControl: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       read1 <= '0'; | ||||
|       read2 <= '0'; | ||||
|     elsif rising_edge(clock) then | ||||
|       if (empty1 = '0') and (full2 = '0') then | ||||
|         read1 <= '1'; | ||||
|       else | ||||
|         read1 <= '0'; | ||||
|       end if; | ||||
|       read2 <= read1; | ||||
|     end if; | ||||
|   end process readControl; | ||||
|  | ||||
|   read <= not empty1 and not full2 when firstWordFallThrough  | ||||
|           else not empty1 and read1; | ||||
|   rd1 <= read; | ||||
|  | ||||
|   readData: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       storedData <= (others => '0'); | ||||
|   elsif rising_edge(clock) then | ||||
|       if firstWordFallThrough then | ||||
|         storedData <= data1; | ||||
|       else | ||||
|         if read = '1' then | ||||
|           storedData <= data1; | ||||
|         end if; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process readData; | ||||
|  | ||||
|   data2 <= storedData; | ||||
|  | ||||
|   writeControl: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       write <= '0'; | ||||
|   elsif rising_edge(clock) then | ||||
|       if firstWordFallThrough then | ||||
|         write <= not empty1 and not full2; | ||||
|       else | ||||
|         if read = '1' then | ||||
|           write <= '1'; | ||||
|         else | ||||
|           write <= '0'; | ||||
|         end if; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process writeControl; | ||||
|  | ||||
|   wr2 <= write; | ||||
|  | ||||
| end RTL; | ||||
							
								
								
									
										140
									
								
								Libs/Memory/hdl/flashController_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								Libs/Memory/hdl/flashController_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,140 @@ | ||||
| ARCHITECTURE RTL OF flashController IS | ||||
|  | ||||
|   signal addressReg: unsigned(flashAddr'range); | ||||
|   signal dataOutReg: std_ulogic_vector(flashDataOut'range); | ||||
|   signal dataInReg: std_ulogic_vector(flashDataIn'range); | ||||
|   type sequenceStateType is ( | ||||
|     idle, | ||||
|     waitForBus1, waitForBus0, | ||||
|     startAccess, waitAcccessEnd | ||||
|   ); | ||||
|   signal sequenceState: sequenceStateType; | ||||
|   signal read: std_ulogic; | ||||
|   signal startCounter: std_ulogic; | ||||
|   signal sequenceCounter: unsigned(3 downto 0); | ||||
|   signal endOfCount: std_ulogic; | ||||
|   signal readDataValid: std_ulogic; | ||||
|   signal flashCE: std_ulogic; | ||||
|  | ||||
| BEGIN | ||||
|   ------------------------------------------------------------------------------ | ||||
|                                                                  -- memory reset | ||||
|   memRst_n <= not '0'; | ||||
|  | ||||
|   ------------------------------------------------------------------------------ | ||||
|                                                                       -- address | ||||
|   storeAddress: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       addressReg <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if (flashRd = '1') or (flashWr = '1') then | ||||
|         addressReg <= shift_left(flashAddr, 1); | ||||
|       end if; | ||||
|     end if; | ||||
|   end process storeAddress; | ||||
|  | ||||
|   memAddress <= std_ulogic_vector(addressReg); | ||||
|  | ||||
|   ------------------------------------------------------------------------------ | ||||
|                                                                      -- data out | ||||
|   storeDataOut: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       dataOutReg <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if flashWr = '1' then | ||||
|         dataOutReg <= flashDataOut; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process storeDataOut; | ||||
|  | ||||
|   memDataOut <= flashDataOut; | ||||
|  | ||||
|   ------------------------------------------------------------------------------ | ||||
|                                                                      -- data in | ||||
|   readDataValid <= '1' when (read = '1') and (endOfCount = '1') else '0'; | ||||
|  | ||||
|   storeDataIn: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       dataInReg <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if readDataValid = '1' then | ||||
|         dataInReg <= memDataIn; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process storeDataIn; | ||||
|  | ||||
|   flashDataIn <= dataInReg when readDataValid = '0' else memDataIn; | ||||
|  | ||||
|   ------------------------------------------------------------------------------ | ||||
|                                                           -- read/write sequence | ||||
|   busAccessFsm: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       read <= '0'; | ||||
|       sequenceState <= idle; | ||||
|     elsif rising_edge(clock) then | ||||
|       case sequenceState is | ||||
|         when idle => | ||||
|           if flashRd = '1' then | ||||
|             read <= '1'; | ||||
|             sequenceState <= waitForBus1; | ||||
|           elsif flashWr = '1' then | ||||
|             read <= '0'; | ||||
|             sequenceState <= waitForBus1; | ||||
|           end if; | ||||
|         when waitForBus1 => | ||||
|           if memBusEn_n = '1' then | ||||
|             sequenceState <= waitForBus0; | ||||
|           end if; | ||||
|         when waitForBus0 => | ||||
|           if memBusEn_n = '0' then | ||||
|             sequenceState <= startAccess; | ||||
|           end if; | ||||
|         when startAccess => | ||||
|           sequenceState <= waitAcccessEnd; | ||||
|         when waitAcccessEnd => | ||||
|           if endOfCount = '1' then | ||||
|             sequenceState <= idle; | ||||
|           end if; | ||||
|       end case; | ||||
|     end if; | ||||
|   end process busAccessFsm; | ||||
|  | ||||
|  | ||||
|   startCounter <= '1' when sequenceState = startAccess else '0'; | ||||
|   endOfCount <= '1' | ||||
|     when ( (sequenceCounter = rdWaitState) and (read = '1') ) or | ||||
|          ( (sequenceCounter = wrWaitState) and (read = '0') ) | ||||
|     else '0'; | ||||
|  | ||||
|   countSequence: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       sequenceCounter <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if sequenceCounter = 0 then | ||||
|         if startCounter = '1' then | ||||
|           sequenceCounter <= sequenceCounter + 1; | ||||
|         end if; | ||||
|       else | ||||
|         if endOfCount = '1' then | ||||
|           sequenceCounter <= (others => '0'); | ||||
|         else | ||||
|           sequenceCounter <= sequenceCounter + 1; | ||||
|         end if; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process countSequence; | ||||
|  | ||||
|   flashCE <= '0' when sequenceCounter = 0 else '1'; | ||||
|   flashCE_n <= not flashCE; | ||||
|   memWR_n <= not '1' when (read = '0') and (flashCE = '1') and (endOfCount = '0') | ||||
|     else not '0'; | ||||
|   memOE_n <= not '1' when (read = '1') and (flashCE = '1') else not '0'; | ||||
|  | ||||
|   flashDataValid <= endOfCount; | ||||
|  | ||||
| END ARCHITECTURE RTL; | ||||
							
								
								
									
										36
									
								
								Libs/Memory/hdl/sdramControllerBuildAddress_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								Libs/Memory/hdl/sdramControllerBuildAddress_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| ARCHITECTURE RTL OF sdramControllerBuildAddress IS | ||||
|  | ||||
|   constant addressPrecharge: std_ulogic_vector(memAddress'range) | ||||
|                            := (10=> '1', others => '-'); | ||||
|   constant addressModeRegU : unsigned(memAddress'range) | ||||
|                            := resize("0" & "00" & "010" & "0" & "000", memAddress'length); | ||||
|     -- ll,10 = reserved, | ||||
|     -- 9 = '0' programmed burst length => burst length applicable for both rd and wr | ||||
|     -- 8,7 = Op mode = 00 => standard operation (all other states are reserved) | ||||
|     -- 6,5,4 = CAS latency = 010 => cas latency of 2 | ||||
|     -- 3 = Burst Type = '0' => Sequential (not interleaved) | ||||
|     -- 2,1,0 = Brust Length = 000 => brust length is 1 | ||||
|   constant addressModeReg  : std_ulogic_vector(memAddress'range) | ||||
|                            := std_ulogic_vector(addressModeRegU); | ||||
|  | ||||
| BEGIN | ||||
|  | ||||
|   buildAddresses: process(ramAddr, addrSelPrecharge, addrSelModeReg, addrSelRow, addrSelCol) | ||||
|   begin | ||||
|     memBankAddress <= std_ulogic_vector(ramAddr(ramAddr'high downto ramAddr'high-memBankAddress'length+1)); | ||||
|     if addrSelPrecharge = '1' then | ||||
|       memAddress <= addressPrecharge; | ||||
|     elsif addrSelModeReg = '1' then | ||||
|       memAddress <= addressModeReg; | ||||
|     elsif addrSelRow = '1' then | ||||
|       memAddress <= std_ulogic_vector(ramAddr(rowAddressBitNb+colAddressBitNb-1 downto colAddressBitNb)); | ||||
|     elsif addrSelCol = '1' then | ||||
|       memAddress(memAddress'high downto colAddressBitNb) <= (others => '0'); | ||||
|       memAddress(10) <= '1'; | ||||
|       memAddress(colAddressBitNb-1 downto 0) <= std_ulogic_vector(ramAddr(colAddressBitNb-1 downto 0)); | ||||
|     else | ||||
|       memAddress <= (others => '-'); | ||||
|     end if; | ||||
|   end process buildAddresses; | ||||
|  | ||||
| END ARCHITECTURE RTL; | ||||
							
								
								
									
										48
									
								
								Libs/Memory/hdl/sdramControllerRefreshCounter_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								Libs/Memory/hdl/sdramControllerRefreshCounter_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| ARCHITECTURE RTL OF sdramControllerRefreshCounter IS | ||||
|  | ||||
|   signal delayCounter: unsigned(delayCounterBitNb-1 downto 0); | ||||
|   signal endOfDelay: std_ulogic; | ||||
|  | ||||
| BEGIN | ||||
|  | ||||
|   countDelay : process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       delayCounter <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       if endOfDelay = '1' then | ||||
|         delayCounter <= to_unsigned(1, delayCounter'length); | ||||
|       else | ||||
|         delayCounter <= delayCounter + 1; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process countDelay; | ||||
|  | ||||
|   findEndOfDelay: process(powerUpDone, delayCounter) | ||||
|   begin | ||||
|     endOfDelay <= '0'; | ||||
|     if powerUpDone = '0' then | ||||
|       if delayCounter+1 = 0 then | ||||
|         endOfDelay <= '1'; | ||||
|       end if; | ||||
|     else | ||||
|       if delayCounter+1 >= refreshPeriodNb then | ||||
|         endOfDelay <= '1'; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process findEndOfDelay; | ||||
|  | ||||
|   endOfRefreshCount <= endOfDelay; | ||||
|  | ||||
|   signalRefresh: process(powerUpDone, delayCounter) | ||||
|   begin | ||||
|     selectRefresh <= '0'; | ||||
|     if (powerUpDone = '1') and (delayCounter < 1024) then | ||||
|       if (delayCounter <= 16) or (delayCounter(3 downto 0) = 0) then | ||||
|         selectRefresh <= '1'; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process signalRefresh; | ||||
|  | ||||
|  | ||||
| END ARCHITECTURE RTL; | ||||
							
								
								
									
										18
									
								
								Libs/Memory/hdl/sdramControllerSR_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								Libs/Memory/hdl/sdramControllerSR_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| ARCHITECTURE RTL OF sdramControllerSR IS | ||||
| BEGIN | ||||
|  | ||||
|   setReset: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       flag <= '0'; | ||||
|     elsif rising_edge(clock) then | ||||
|       if setFlag = '1' then | ||||
|         flag <= '1'; | ||||
|       elsif resetFlag = '1' then | ||||
|         flag <= '0'; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process setReset; | ||||
|  | ||||
| END ARCHITECTURE RTL; | ||||
|  | ||||
							
								
								
									
										17
									
								
								Libs/Memory/hdl/sdramControllerSampleDataIn_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								Libs/Memory/hdl/sdramControllerSampleDataIn_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| ARCHITECTURE RTL OF sdramControllerSampleDataIn IS | ||||
| BEGIN | ||||
|  | ||||
|   sampleRamData: process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       ramDataIn <= (others => '0'); | ||||
|     elsif falling_edge(clock) then | ||||
|       if sampleData = '1' then | ||||
|         ramDataIn <= memDataIn; | ||||
|       end if; | ||||
|     end if; | ||||
|   end process sampleRamData; | ||||
|  | ||||
|  | ||||
| END ARCHITECTURE RTL; | ||||
|  | ||||
							
								
								
									
										14
									
								
								Libs/Memory/hdl/sdramControllerStoreData_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Libs/Memory/hdl/sdramControllerStoreData_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| ARCHITECTURE RTL OF sdramControllerStoreData IS | ||||
| BEGIN | ||||
|  | ||||
|   storeData : process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       memDataOut <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       memDataOut <= ramDataOut; | ||||
|     end if; | ||||
|   end process storeData; | ||||
|  | ||||
| END ARCHITECTURE RTL; | ||||
|  | ||||
							
								
								
									
										24
									
								
								Libs/Memory/hdl/sdramControllerTimingsShiftRegister_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								Libs/Memory/hdl/sdramControllerTimingsShiftRegister_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| ARCHITECTURE RTL OF sdramControllerTimingsShiftRegister IS | ||||
|  | ||||
|   --constant leadingZeroesNb: positive := 2; | ||||
|   --constant leadingZeroes: std_ulogic_vector(1 to leadingZeroesNb) := (others => '0'); | ||||
|   --signal shiftReg: std_ulogic_vector(1 to timerDone'high-leadingZeroesNb); | ||||
|   signal shiftReg: std_ulogic_vector(1 to timerDone'high); | ||||
|  | ||||
| BEGIN | ||||
|  | ||||
|   shiftToken : process(reset, clock) | ||||
|   begin | ||||
|     if reset = '1' then | ||||
|       shiftReg <= (others => '0'); | ||||
|     elsif rising_edge(clock) then | ||||
|       shiftReg(1) <= timerStart; | ||||
|       shiftReg(2 to shiftReg'right) <= shiftReg(1 to shiftReg'right-1); | ||||
|     end if; | ||||
|   end process shiftToken; | ||||
|  | ||||
|   --timerDone <= leadingZeroes & shiftReg; | ||||
|   timerDone <= shiftReg; | ||||
|  | ||||
| END ARCHITECTURE RTL; | ||||
|  | ||||
| @@ -0,0 +1,4 @@ | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_bram_bhv.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_bram_bhv.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_93 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_bramdualportwritefirst_entity.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_bramdualportwritefirst_entity.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1,4 @@ | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1,4 @@ | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhg._fpf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_bram_entity.vhg._fpf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_bram_rtl.vhd._fpf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_bram_rtl.vhd._fpf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhg._fpf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_entity.vhg._fpf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_minimal.vhd._fpf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_minimal.vhd._fpf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1,4 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_oneregister_entity.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_oneregister_entity.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_pim.vhd._fpf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_pim.vhd._fpf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_rtl.vhd._fpf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_rtl.vhd._fpf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_87 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_rtl_minimal.vhd._fpf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_rtl_minimal.vhd._fpf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhd._fpf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhg._fpf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Libs/Memory/hds/.hdlsidedata/_fifo_struct.vhg._fpf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1 @@ | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1,4 @@ | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1,4 @@ | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1,4 @@ | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1,4 @@ | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1,4 @@ | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1,4 @@ | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
| DIALECT atom VHDL_2008 | ||||
| @@ -0,0 +1,4 @@ | ||||
| INCLUDE list { | ||||
|  DEFAULT atom 1 | ||||
| } | ||||
| DIALECT atom VHDL_2008 | ||||
							
								
								
									
										4408
									
								
								Libs/Memory/hds/@f@i@f@o/struct.bd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4408
									
								
								Libs/Memory/hds/@f@i@f@o/struct.bd
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1860
									
								
								Libs/Memory/hds/@f@i@f@o/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1860
									
								
								Libs/Memory/hds/@f@i@f@o/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1848
									
								
								Libs/Memory/hds/@f@i@f@o_bram/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1848
									
								
								Libs/Memory/hds/@f@i@f@o_bram/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1828
									
								
								Libs/Memory/hds/@f@i@f@o_one@register/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1828
									
								
								Libs/Memory/hds/@f@i@f@o_one@register/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3
									
								
								Libs/Memory/hds/_bram._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Libs/Memory/hds/_bram._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| DEFAULT_FILE atom bram_bhv.vhd | ||||
| DEFAULT_ARCHITECTURE atom bhv | ||||
| TOP_MARKER atom 1 | ||||
							
								
								
									
										3
									
								
								Libs/Memory/hds/_bramdualportwritefirst._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Libs/Memory/hds/_bramdualportwritefirst._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| DEFAULT_FILE atom bramDualportWritefirst_bhv.vhd | ||||
| DEFAULT_ARCHITECTURE atom bhv | ||||
| TOP_MARKER atom 1 | ||||
							
								
								
									
										3
									
								
								Libs/Memory/hds/_fifo._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Libs/Memory/hds/_fifo._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| TOP_MARKER atom 1 | ||||
| DEFAULT_ARCHITECTURE atom struct | ||||
| DEFAULT_FILE atom @f@i@f@o/struct.bd | ||||
							
								
								
									
										3
									
								
								Libs/Memory/hds/_fifo_bram._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Libs/Memory/hds/_fifo_bram._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| DEFAULT_FILE atom fifo_bram_rtl.vhd | ||||
| DEFAULT_ARCHITECTURE atom RTL | ||||
| TOP_MARKER atom 0 | ||||
							
								
								
									
										3
									
								
								Libs/Memory/hds/_fifo_oneregister._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Libs/Memory/hds/_fifo_oneregister._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| DEFAULT_FILE atom fifo_oneRegister_rtl.vhd | ||||
| DEFAULT_ARCHITECTURE atom oneRegister | ||||
| TOP_MARKER atom 0 | ||||
							
								
								
									
										3
									
								
								Libs/Memory/hds/_fifobridge._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Libs/Memory/hds/_fifobridge._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| DEFAULT_FILE atom fifo@bridge/struct.bd | ||||
| DEFAULT_ARCHITECTURE atom struct | ||||
| TOP_MARKER atom 1 | ||||
							
								
								
									
										3
									
								
								Libs/Memory/hds/_fifobridgebuswidthadaption._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Libs/Memory/hds/_fifobridgebuswidthadaption._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| DEFAULT_FILE atom fifo@bridge@bus@width@adaption/struct.bd | ||||
| DEFAULT_ARCHITECTURE atom struct | ||||
| TOP_MARKER atom 1 | ||||
							
								
								
									
										2
									
								
								Libs/Memory/hds/_fifobridgerxtotx._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Libs/Memory/hds/_fifobridgerxtotx._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| DEFAULT_FILE atom fifobridgerxtotx_rtl.vhd | ||||
| DEFAULT_ARCHITECTURE atom RTL | ||||
| @@ -0,0 +1,2 @@ | ||||
| DEFAULT_FILE atom fifoBridgeRxToTxBuswidthAdaptionRxbigger_behavioral.vhd | ||||
| DEFAULT_ARCHITECTURE atom behavioral | ||||
| @@ -0,0 +1,2 @@ | ||||
| DEFAULT_FILE atom fifoBridgeRxToTxBuswidthAdaptionTxbigger_behavioral.vhd | ||||
| DEFAULT_ARCHITECTURE atom behavioral | ||||
							
								
								
									
										3
									
								
								Libs/Memory/hds/_flashcontroller._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Libs/Memory/hds/_flashcontroller._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| TOP_MARKER atom 1 | ||||
| DEFAULT_ARCHITECTURE atom RTL | ||||
| DEFAULT_FILE atom flashController_RTL.vhd | ||||
							
								
								
									
										3
									
								
								Libs/Memory/hds/_sdramcontroller._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Libs/Memory/hds/_sdramcontroller._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| DEFAULT_FILE atom sdram@controller/struct.bd | ||||
| DEFAULT_ARCHITECTURE atom struct | ||||
| TOP_MARKER atom 1 | ||||
							
								
								
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollerbuildaddress._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollerbuildaddress._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| DEFAULT_ARCHITECTURE atom RTL | ||||
| DEFAULT_FILE atom sdramControllerBuildAddress_RTL.vhd | ||||
							
								
								
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollerfsm._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollerfsm._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| DEFAULT_ARCHITECTURE atom fsm | ||||
| DEFAULT_FILE atom sdram@controller@fsm/fsm.sm | ||||
							
								
								
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollerrefreshcounter._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollerrefreshcounter._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| DEFAULT_ARCHITECTURE atom RTL | ||||
| DEFAULT_FILE atom sdramControllerRefreshCounter_RTL.vhd | ||||
							
								
								
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollersampledatain._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollersampledatain._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| DEFAULT_ARCHITECTURE atom RTL | ||||
| DEFAULT_FILE atom sdramControllerSampleDataIn_RTL.vhd | ||||
							
								
								
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollersr._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollersr._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| DEFAULT_ARCHITECTURE atom RTL | ||||
| DEFAULT_FILE atom sdramControllerSR_RTL.vhd | ||||
							
								
								
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollerstoredata._epf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Libs/Memory/hds/_sdramcontrollerstoredata._epf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| DEFAULT_ARCHITECTURE atom RTL | ||||
| DEFAULT_FILE atom sdramControllerStoreData_RTL.vhd | ||||
| @@ -0,0 +1,2 @@ | ||||
| DEFAULT_ARCHITECTURE atom RTL | ||||
| DEFAULT_FILE atom sdramControllerTimingsShiftRegister_RTL.vhd | ||||
							
								
								
									
										1778
									
								
								Libs/Memory/hds/bram/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1778
									
								
								Libs/Memory/hds/bram/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2162
									
								
								Libs/Memory/hds/bram@dualport@writefirst/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2162
									
								
								Libs/Memory/hds/bram@dualport@writefirst/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										4613
									
								
								Libs/Memory/hds/fifo@bridge/struct.bd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4613
									
								
								Libs/Memory/hds/fifo@bridge/struct.bd
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2251
									
								
								Libs/Memory/hds/fifo@bridge/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2251
									
								
								Libs/Memory/hds/fifo@bridge/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3912
									
								
								Libs/Memory/hds/fifo@bridge@bus@width@adaption/struct.bd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3912
									
								
								Libs/Memory/hds/fifo@bridge@bus@width@adaption/struct.bd
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1810
									
								
								Libs/Memory/hds/fifo@bridge@bus@width@adaption/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1810
									
								
								Libs/Memory/hds/fifo@bridge@bus@width@adaption/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1875
									
								
								Libs/Memory/hds/fifo@bridge@rx@to@tx/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1875
									
								
								Libs/Memory/hds/fifo@bridge@rx@to@tx/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2518
									
								
								Libs/Memory/hds/flash@controller/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2518
									
								
								Libs/Memory/hds/flash@controller/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										9775
									
								
								Libs/Memory/hds/sdram@controller/struct.bd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9775
									
								
								Libs/Memory/hds/sdram@controller/struct.bd
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2973
									
								
								Libs/Memory/hds/sdram@controller/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2973
									
								
								Libs/Memory/hds/sdram@controller/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1823
									
								
								Libs/Memory/hds/sdram@controller@build@address/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1823
									
								
								Libs/Memory/hds/sdram@controller@build@address/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										11074
									
								
								Libs/Memory/hds/sdram@controller@fsm/fsm.sm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11074
									
								
								Libs/Memory/hds/sdram@controller@fsm/fsm.sm
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2624
									
								
								Libs/Memory/hds/sdram@controller@fsm/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2624
									
								
								Libs/Memory/hds/sdram@controller@fsm/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1625
									
								
								Libs/Memory/hds/sdram@controller@refresh@counter/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1625
									
								
								Libs/Memory/hds/sdram@controller@refresh@counter/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1581
									
								
								Libs/Memory/hds/sdram@controller@s@r/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1581
									
								
								Libs/Memory/hds/sdram@controller@s@r/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1606
									
								
								Libs/Memory/hds/sdram@controller@sample@data@in/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1606
									
								
								Libs/Memory/hds/sdram@controller@sample@data@in/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1606
									
								
								Libs/Memory/hds/sdram@controller@store@data/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1606
									
								
								Libs/Memory/hds/sdram@controller@store@data/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1544
									
								
								Libs/Memory/hds/sdram@controller@timings@shift@register/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1544
									
								
								Libs/Memory/hds/sdram@controller@timings@shift@register/symbol.sb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user