41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
| ARCHITECTURE masterVersion OF interpolatorShiftRegister IS
 | |
| 
 | |
|   -- signal sample4_int: signed(sampleIn'range);
 | |
|   -- signal sample3_int: signed(sampleIn'range);
 | |
|   -- signal sample2_int: signed(sampleIn'range);
 | |
|   -- signal sample1_int: signed(sampleIn'range);
 | |
|   
 | |
|   type samplesArray is array(3 downto 0) of signed(sampleIn'range);
 | |
|   signal samples: samplesArray;
 | |
| 
 | |
| begin
 | |
| 
 | |
|   shiftThem: process(reset, clock)
 | |
|   begin
 | |
|     if reset = '1' then
 | |
| 		samples <= (others=>(others=>'0'));
 | |
|       -- sample1_int <= (others => '0');
 | |
|       -- sample2_int <= (others => '0');
 | |
|       -- sample3_int <= (others => '0');
 | |
|       -- sample4_int <= (others => '0');
 | |
|     elsif rising_edge(clock) then
 | |
|       if shiftSamples = '1' then
 | |
|         -- sample1_int <= sample2_int;
 | |
|         -- sample2_int <= sample3_int;
 | |
|         -- sample3_int <= sample4_int;
 | |
|         -- sample4_int <= sampleIn;
 | |
| 		samples(0) <= samples(1);
 | |
| 		samples(1) <= samples(2);
 | |
| 		samples(2) <= samples(3);
 | |
| 		samples(3) <= sampleIn;
 | |
|       end if;
 | |
|     end if;
 | |
|   end process shiftThem;
 | |
| 
 | |
|   sample4 <= samples(3);
 | |
|   sample3 <= samples(2);
 | |
|   sample2 <= samples(1);
 | |
|   sample1 <= samples(0);
 | |
| 
 | |
| END ARCHITECTURE masterVersion;
 |