start Task 5
This commit is contained in:
		| @@ -1,51 +1,341 @@ | ||||
| ARCHITECTURE studentVersion OF charToMorseController IS | ||||
|  | ||||
|   signal isA, isB, isC, isD, isE, isF, isG, isH, | ||||
|          isI, isJ, isK, isL, isM, isN, isO, isP, | ||||
|          isQ, isR, isS, isT, isU, isV, isW, isX, | ||||
|          isY, isZ, | ||||
|          is0, is1, is2, is3, is4, is5, is6, is7, | ||||
|          is8, is9 : std_ulogic; | ||||
| signal isA, isB, isC, isD, isE, isF, isG, isH, | ||||
|        isI, isJ, isK, isL, isM, isN, isO, isP, | ||||
|        isQ, isR, isS, isT, isU, isV, isW, isX, | ||||
|        isY, isZ, | ||||
|        is0, is1, is2, is3, is4, is5, is6, is7, | ||||
|        is8, is9 : std_ulogic; | ||||
|  | ||||
| type T_MORSE is (SHORT, LONG, SPACE, END_WORD); | ||||
| --type registers_type is array (1 to 5) of T_MORSE; | ||||
| signal register1: T_MORSE; | ||||
| signal register2: T_MORSE; | ||||
| signal register3: T_MORSE; | ||||
| signal register4: T_MORSE; | ||||
| signal register5: T_MORSE; | ||||
|  | ||||
| TYPE GENERAL_STATE_TYPE IS ( | ||||
|         waitForChar, | ||||
|         storeChar, | ||||
|         sendRegisters, | ||||
|         sended | ||||
|     ); | ||||
| signal general_current_state, general_next_state : GENERAL_STATE_TYPE; | ||||
|  | ||||
| TYPE SENDING_STATE_TYPE IS ( | ||||
|         waiting, | ||||
|         sendR1, | ||||
|         waitR1, | ||||
|         sendR2, | ||||
|         waitR2, | ||||
|         sendR3, | ||||
|         waitR3, | ||||
|         sendR4, | ||||
|         waitR4, | ||||
|         sendR5, | ||||
|         waitEndWord | ||||
|     ); | ||||
| signal sending_current_state, sending_next_state : SENDING_STATE_TYPE; | ||||
|  | ||||
| BEGIN | ||||
|   ------------------------------------------------------------------------------ | ||||
|                                                    -- conditions for morse units | ||||
|   isA <= '1' when std_match(unsigned(char), "1-0" & x"1") else '0'; | ||||
|   isB <= '1' when std_match(unsigned(char), "1-0" & x"2") else '0'; | ||||
|   isC <= '1' when std_match(unsigned(char), "1-0" & x"3") else '0'; | ||||
|   isD <= '1' when std_match(unsigned(char), "1-0" & x"4") else '0'; | ||||
|   isE <= '1' when std_match(unsigned(char), "1-0" & x"5") else '0'; | ||||
|   isF <= '1' when std_match(unsigned(char), "1-0" & x"6") else '0'; | ||||
|   isG <= '1' when std_match(unsigned(char), "1-0" & x"7") else '0'; | ||||
|   isH <= '1' when std_match(unsigned(char), "1-0" & x"8") else '0'; | ||||
|   isI <= '1' when std_match(unsigned(char), "1-0" & x"9") else '0'; | ||||
|   isJ <= '1' when std_match(unsigned(char), "1-0" & x"A") else '0'; | ||||
|   isK <= '1' when std_match(unsigned(char), "1-0" & x"B") else '0'; | ||||
|   isL <= '1' when std_match(unsigned(char), "1-0" & x"C") else '0'; | ||||
|   isM <= '1' when std_match(unsigned(char), "1-0" & x"D") else '0'; | ||||
|   isN <= '1' when std_match(unsigned(char), "1-0" & x"E") else '0'; | ||||
|   isO <= '1' when std_match(unsigned(char), "1-0" & x"F") else '0'; | ||||
|   isP <= '1' when std_match(unsigned(char), "1-1" & x"0") else '0'; | ||||
|   isQ <= '1' when std_match(unsigned(char), "1-1" & x"1") else '0'; | ||||
|   isR <= '1' when std_match(unsigned(char), "1-1" & x"2") else '0'; | ||||
|   isS <= '1' when std_match(unsigned(char), "1-1" & x"3") else '0'; | ||||
|   isT <= '1' when std_match(unsigned(char), "1-1" & x"4") else '0'; | ||||
|   isU <= '1' when std_match(unsigned(char), "1-1" & x"5") else '0'; | ||||
|   isV <= '1' when std_match(unsigned(char), "1-1" & x"6") else '0'; | ||||
|   isW <= '1' when std_match(unsigned(char), "1-1" & x"7") else '0'; | ||||
|   isX <= '1' when std_match(unsigned(char), "1-1" & x"8") else '0'; | ||||
|   isY <= '1' when std_match(unsigned(char), "1-1" & x"9") else '0'; | ||||
|   isZ <= '1' when std_match(unsigned(char), "1-1" & x"A") else '0'; | ||||
|   is0 <= '1' when std_match(unsigned(char), "011" & x"0") else '0'; | ||||
|   is1 <= '1' when std_match(unsigned(char), "011" & x"1") else '0'; | ||||
|   is2 <= '1' when std_match(unsigned(char), "011" & x"2") else '0'; | ||||
|   is3 <= '1' when std_match(unsigned(char), "011" & x"3") else '0'; | ||||
|   is4 <= '1' when std_match(unsigned(char), "011" & x"4") else '0'; | ||||
|   is5 <= '1' when std_match(unsigned(char), "011" & x"5") else '0'; | ||||
|   is6 <= '1' when std_match(unsigned(char), "011" & x"6") else '0'; | ||||
|   is7 <= '1' when std_match(unsigned(char), "011" & x"7") else '0'; | ||||
|   is8 <= '1' when std_match(unsigned(char), "011" & x"8") else '0'; | ||||
|   is9 <= '1' when std_match(unsigned(char), "011" & x"9") else '0'; | ||||
|   isA <= '1' when std_match(unsigned(char), "1-0" & x"1") else '0'; -- 1-0 0001 | ||||
|   isB <= '1' when std_match(unsigned(char), "1-0" & x"2") else '0'; -- 1-0 0010 | ||||
|   isC <= '1' when std_match(unsigned(char), "1-0" & x"3") else '0'; -- 1-0 0011 | ||||
|   isD <= '1' when std_match(unsigned(char), "1-0" & x"4") else '0'; -- 1-0 0100 | ||||
|   isE <= '1' when std_match(unsigned(char), "1-0" & x"5") else '0'; -- 1-0 0101 | ||||
|   isF <= '1' when std_match(unsigned(char), "1-0" & x"6") else '0'; -- 1-0 0110 | ||||
|   isG <= '1' when std_match(unsigned(char), "1-0" & x"7") else '0'; -- 1-0 0111 | ||||
|   isH <= '1' when std_match(unsigned(char), "1-0" & x"8") else '0'; -- 1-0 1000 | ||||
|   isI <= '1' when std_match(unsigned(char), "1-0" & x"9") else '0'; -- 1-0 1001 | ||||
|   isJ <= '1' when std_match(unsigned(char), "1-0" & x"A") else '0'; -- 1-0 1010 | ||||
|   isK <= '1' when std_match(unsigned(char), "1-0" & x"B") else '0'; -- 1-0 1011 | ||||
|   isL <= '1' when std_match(unsigned(char), "1-0" & x"C") else '0'; -- 1-0 1100 | ||||
|   isM <= '1' when std_match(unsigned(char), "1-0" & x"D") else '0'; -- 1-0 1101 | ||||
|   isN <= '1' when std_match(unsigned(char), "1-0" & x"E") else '0'; -- 1-0 1110 | ||||
|   isO <= '1' when std_match(unsigned(char), "1-0" & x"F") else '0'; -- 1-0 1111 | ||||
|   isP <= '1' when std_match(unsigned(char), "1-1" & x"0") else '0'; -- 1-1 0000 | ||||
|   isQ <= '1' when std_match(unsigned(char), "1-1" & x"1") else '0'; -- 1-1 0001 | ||||
|   isR <= '1' when std_match(unsigned(char), "1-1" & x"2") else '0'; -- 1-1 0010 | ||||
|   isS <= '1' when std_match(unsigned(char), "1-1" & x"3") else '0'; -- 1-1 0011 | ||||
|   isT <= '1' when std_match(unsigned(char), "1-1" & x"4") else '0'; -- 1-1 0100 | ||||
|   isU <= '1' when std_match(unsigned(char), "1-1" & x"5") else '0'; -- 1-1 0101 | ||||
|   isV <= '1' when std_match(unsigned(char), "1-1" & x"6") else '0'; -- 1-1 0110 | ||||
|   isW <= '1' when std_match(unsigned(char), "1-1" & x"7") else '0'; -- 1-1 0111 | ||||
|   isX <= '1' when std_match(unsigned(char), "1-1" & x"8") else '0'; -- 1-1 1000 | ||||
|   isY <= '1' when std_match(unsigned(char), "1-1" & x"9") else '0'; -- 1-1 1001 | ||||
|   isZ <= '1' when std_match(unsigned(char), "1-1" & x"A") else '0'; -- 1-1 1010 | ||||
|   is0 <= '1' when std_match(unsigned(char), "011" & x"0") else '0'; -- 011 0000 | ||||
|   is1 <= '1' when std_match(unsigned(char), "011" & x"1") else '0'; -- 011 0001 | ||||
|   is2 <= '1' when std_match(unsigned(char), "011" & x"2") else '0'; -- 011 0010 | ||||
|   is3 <= '1' when std_match(unsigned(char), "011" & x"3") else '0'; -- 011 0011 | ||||
|   is4 <= '1' when std_match(unsigned(char), "011" & x"4") else '0'; -- 011 0100 | ||||
|   is5 <= '1' when std_match(unsigned(char), "011" & x"5") else '0'; -- 011 0101 | ||||
|   is6 <= '1' when std_match(unsigned(char), "011" & x"6") else '0'; -- 011 0110 | ||||
|   is7 <= '1' when std_match(unsigned(char), "011" & x"7") else '0'; -- 011 0111 | ||||
|   is8 <= '1' when std_match(unsigned(char), "011" & x"8") else '0'; -- 011 1000 | ||||
|   is9 <= '1' when std_match(unsigned(char), "011" & x"9") else '0'; -- 011 1001 | ||||
|  | ||||
|   process(reset, clock) begin | ||||
|     if reset = '1' then | ||||
|       general_current_state <= waitForChar; | ||||
|       sending_current_state <= waiting; | ||||
|     elsif rising_edge(clock) then | ||||
|       general_current_state <= general_next_state; | ||||
|       sending_current_state <= sending_next_state; | ||||
|     end if; | ||||
|   end process; | ||||
|  | ||||
|  | ||||
|   process(general_current_state) begin | ||||
|     case general_current_state is | ||||
|       when waitForChar => | ||||
|         register1 <= END_WORD; | ||||
|         register2 <= END_WORD; | ||||
|         register3 <= END_WORD; | ||||
|         register4 <= END_WORD; | ||||
|         register5 <= END_WORD; | ||||
|         if charNotReady = '0' then | ||||
|           general_next_state <= storeChar; | ||||
|         else | ||||
|           general_next_state <= waitForChar; | ||||
|         end if; | ||||
|  | ||||
|       when storeChar => | ||||
|         if isA then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isB then | ||||
|           register1 <= LONG; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isC then | ||||
|           register1 <= LONG; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= LONG; | ||||
|           register4 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isD then | ||||
|           register1 <= LONG; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isE then | ||||
|           register1 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isF then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= LONG; | ||||
|           register4 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isG then | ||||
|           register1 <= LONG; | ||||
|           register2 <= LONG; | ||||
|           register3 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isH then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isI then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isJ then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= LONG; | ||||
|           register3 <= LONG; | ||||
|           register4 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isK then | ||||
|           register1 <= LONG; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isL then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= LONG; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isM then | ||||
|           register1 <= LONG; | ||||
|           register2 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isN then | ||||
|           register1 <= LONG; | ||||
|           register2 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isO then | ||||
|           register1 <= LONG; | ||||
|           register2 <= LONG; | ||||
|           register3 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isP then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= LONG; | ||||
|           register3 <= LONG; | ||||
|           register4 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isQ then | ||||
|           register1 <= LONG; | ||||
|           register2 <= LONG; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isR then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= LONG; | ||||
|           register3 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isS then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isT then | ||||
|           register1 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isU then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isV then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isW then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= LONG; | ||||
|           register3 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isX then | ||||
|           register1 <= LONG; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isY then | ||||
|           register1 <= LONG; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= LONG; | ||||
|           register4 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif isZ then | ||||
|           register1 <= LONG; | ||||
|           register2 <= LONG; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif is0 then | ||||
|           register1 <= LONG; | ||||
|           register2 <= LONG; | ||||
|           register3 <= LONG; | ||||
|           register4 <= LONG; | ||||
|           register5 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif is1 then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= LONG; | ||||
|           register3 <= LONG; | ||||
|           register4 <= LONG; | ||||
|           register5 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif is2 then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= LONG; | ||||
|           register4 <= LONG; | ||||
|           register5 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif is3 then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= LONG; | ||||
|           register5 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif is4 then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= SHORT; | ||||
|           register5 <= LONG; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif is5 then | ||||
|           register1 <= SHORT; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= SHORT; | ||||
|           register5 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif is6 then | ||||
|           register1 <= LONG; | ||||
|           register2 <= SHORT; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= SHORT; | ||||
|           register5 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif is7 then | ||||
|           register1 <= LONG; | ||||
|           register2 <= LONG; | ||||
|           register3 <= SHORT; | ||||
|           register4 <= SHORT; | ||||
|           register5 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif is8 then | ||||
|           register1 <= LONG; | ||||
|           register2 <= LONG; | ||||
|           register3 <= LONG; | ||||
|           register4 <= SHORT; | ||||
|           register5 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         elsif is9 then | ||||
|           register1 <= LONG; | ||||
|           register2 <= LONG; | ||||
|           register3 <= LONG; | ||||
|           register4 <= LONG; | ||||
|           register5 <= SHORT; | ||||
|           general_next_state <= sendRegisters; | ||||
|         else | ||||
|           register1 <= END_WORD; | ||||
|           register2 <= END_WORD; | ||||
|           register3 <= END_WORD; | ||||
|           register4 <= END_WORD; | ||||
|           register5 <= END_WORD; | ||||
|           general_next_state <= storeChar; | ||||
|         end if; | ||||
|  | ||||
|       when sendRegisters => | ||||
|         sending_next_state <= sendR1; | ||||
|  | ||||
|       when sended => | ||||
|         register1 <= END_WORD; | ||||
|         register2 <= END_WORD; | ||||
|         register3 <= END_WORD; | ||||
|         register4 <= END_WORD; | ||||
|         register5 <= END_WORD; | ||||
|        | ||||
|       WHEN OTHERS => | ||||
|         general_next_state <= waitForChar; | ||||
|  | ||||
|     end case; | ||||
|   end process; | ||||
|  | ||||
|   process(sending_current_state) begin | ||||
|  | ||||
|   end process; | ||||
|  | ||||
|   morseOut <= '0'; | ||||
|   startCounter <= '0'; | ||||
|   | ||||
							
								
								
									
										30
									
								
								05-Morse/Morse/hdl/chartomorse_entity.vhg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								05-Morse/Morse/hdl/chartomorse_entity.vhg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| -- VHDL Entity Morse.charToMorse.symbol | ||||
| -- | ||||
| -- Created: | ||||
| --          by - axel.amand.UNKNOWN (WE7860) | ||||
| --          at - 14:49:52 28.04.2023 | ||||
| -- | ||||
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) | ||||
| -- | ||||
| LIBRARY ieee; | ||||
|   USE ieee.std_logic_1164.all; | ||||
|   USE ieee.numeric_std.all; | ||||
|  | ||||
| ENTITY charToMorse IS | ||||
|     GENERIC(  | ||||
|         characterBitNb  : positive := 8; | ||||
|         unitCountDivide : positive := 10E3 | ||||
|     ); | ||||
|     PORT(  | ||||
|         morseOut     : OUT    std_ulogic; | ||||
|         clock        : IN     std_ulogic; | ||||
|         reset        : IN     std_ulogic; | ||||
|         charIn       : IN     std_ulogic_vector (characterBitNb-1 DOWNTO 0); | ||||
|         readChar     : OUT    std_ulogic; | ||||
|         charNotReady : IN     std_ulogic | ||||
|     ); | ||||
|  | ||||
| -- Declarations | ||||
|  | ||||
| END charToMorse ; | ||||
|  | ||||
							
								
								
									
										98
									
								
								05-Morse/Morse/hdl/chartomorse_struct.vhg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								05-Morse/Morse/hdl/chartomorse_struct.vhg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | ||||
| -- | ||||
| -- VHDL Architecture Morse.charToMorse.struct | ||||
| -- | ||||
| -- Created: | ||||
| --          by - axel.amand.UNKNOWN (WE7860) | ||||
| --          at - 14:49:52 28.04.2023 | ||||
| -- | ||||
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) | ||||
| -- | ||||
| LIBRARY ieee; | ||||
|   USE ieee.std_logic_1164.all; | ||||
|   USE ieee.numeric_std.all; | ||||
|  | ||||
| LIBRARY Morse; | ||||
|  | ||||
| ARCHITECTURE struct OF charToMorse IS | ||||
|  | ||||
|     -- Architecture declarations | ||||
|     constant unitCountBitNb: positive := 3; | ||||
|  | ||||
|     -- Internal signal declarations | ||||
|     SIGNAL startCounter : std_ulogic; | ||||
|     SIGNAL done         : std_ulogic; | ||||
|     SIGNAL unitNb       : unsigned(unitCountBitNb-1 DOWNTO 0); | ||||
|  | ||||
|  | ||||
|     -- Component Declarations | ||||
|     COMPONENT charToMorseController | ||||
|     GENERIC ( | ||||
|         characterBitNb : positive := 8; | ||||
|         unitCountBitNb : positive := 3 | ||||
|     ); | ||||
|     PORT ( | ||||
|         morseOut     : OUT    std_ulogic ; | ||||
|         clock        : IN     std_ulogic ; | ||||
|         reset        : IN     std_ulogic ; | ||||
|         charNotReady : IN     std_ulogic ; | ||||
|         char         : IN     std_ulogic_vector (characterBitNb-1 DOWNTO 0); | ||||
|         startCounter : OUT    std_ulogic ; | ||||
|         unitNb       : OUT    unsigned (unitCountBitNb-1 DOWNTO 0); | ||||
|         counterDone  : IN     std_ulogic ; | ||||
|         readChar     : OUT    std_ulogic  | ||||
|     ); | ||||
|     END COMPONENT; | ||||
|     COMPONENT unitCounter | ||||
|     GENERIC ( | ||||
|         unitCountDivide : positive := 10E3; | ||||
|         unitCountBitNb  : positive := 3 | ||||
|     ); | ||||
|     PORT ( | ||||
|         clock        : IN     std_ulogic ; | ||||
|         reset        : IN     std_ulogic ; | ||||
|         startCounter : IN     std_ulogic ; | ||||
|         unitNb       : IN     unsigned (unitCountBitNb-1 DOWNTO 0); | ||||
|         done         : OUT    std_ulogic  | ||||
|     ); | ||||
|     END COMPONENT; | ||||
|  | ||||
|     -- Optional embedded configurations | ||||
|     -- pragma synthesis_off | ||||
|     FOR ALL : charToMorseController USE ENTITY Morse.charToMorseController; | ||||
|     FOR ALL : unitCounter USE ENTITY Morse.unitCounter; | ||||
|     -- pragma synthesis_on | ||||
|  | ||||
|  | ||||
| BEGIN | ||||
|  | ||||
|     -- Instance port mappings. | ||||
|     I_ctl : charToMorseController | ||||
|         GENERIC MAP ( | ||||
|             characterBitNb => characterBitNb, | ||||
|             unitCountBitNb => unitCountBitNb | ||||
|         ) | ||||
|         PORT MAP ( | ||||
|             morseOut     => morseOut, | ||||
|             clock        => clock, | ||||
|             reset        => reset, | ||||
|             charNotReady => charNotReady, | ||||
|             char         => charIn, | ||||
|             startCounter => startCounter, | ||||
|             unitNb       => unitNb, | ||||
|             counterDone  => done, | ||||
|             readChar     => readChar | ||||
|         ); | ||||
|     I_cnt : unitCounter | ||||
|         GENERIC MAP ( | ||||
|             unitCountDivide => unitCountDivide, | ||||
|             unitCountBitNb  => unitCountBitNb | ||||
|         ) | ||||
|         PORT MAP ( | ||||
|             clock        => clock, | ||||
|             reset        => reset, | ||||
|             startCounter => startCounter, | ||||
|             unitNb       => unitNb, | ||||
|             done         => done | ||||
|         ); | ||||
|  | ||||
| END struct; | ||||
							
								
								
									
										33
									
								
								05-Morse/Morse/hdl/chartomorsecontroller_entity.vhg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								05-Morse/Morse/hdl/chartomorsecontroller_entity.vhg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| -- VHDL Entity Morse.charToMorseController.symbol | ||||
| -- | ||||
| -- Created: | ||||
| --          by - francois.francois (Aphelia) | ||||
| --          at - 09:13:01 03/29/19 | ||||
| -- | ||||
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) | ||||
| -- | ||||
| LIBRARY ieee; | ||||
|   USE ieee.std_logic_1164.all; | ||||
|   USE ieee.numeric_std.all; | ||||
|  | ||||
| ENTITY charToMorseController IS | ||||
|     GENERIC(  | ||||
|         characterBitNb : positive := 8; | ||||
|         unitCountBitNb : positive := 3 | ||||
|     ); | ||||
|     PORT(  | ||||
|         morseOut     : OUT    std_ulogic; | ||||
|         clock        : IN     std_ulogic; | ||||
|         reset        : IN     std_ulogic; | ||||
|         charNotReady : IN     std_ulogic; | ||||
|         char         : IN     std_ulogic_vector (characterBitNb-1 DOWNTO 0); | ||||
|         startCounter : OUT    std_ulogic; | ||||
|         unitNb       : OUT    unsigned (unitCountBitNb-1 DOWNTO 0); | ||||
|         counterDone  : IN     std_ulogic; | ||||
|         readChar     : OUT    std_ulogic | ||||
|     ); | ||||
|  | ||||
| -- Declarations | ||||
|  | ||||
| END charToMorseController ; | ||||
|  | ||||
							
								
								
									
										234
									
								
								05-Morse/Morse/hdl/chartomorsecontroller_fsm.vhg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										234
									
								
								05-Morse/Morse/hdl/chartomorsecontroller_fsm.vhg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,234 @@ | ||||
| -- | ||||
| -- VHDL Architecture Morse.charToMorseController.fsm | ||||
| -- | ||||
| -- Created: | ||||
| --          by - axel.amand.UNKNOWN (WE7860) | ||||
| --          at - 14:50:02 28.04.2023 | ||||
| -- | ||||
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) | ||||
| -- | ||||
| LIBRARY ieee; | ||||
|   USE ieee.std_logic_1164.all; | ||||
|   USE ieee.numeric_std.all; | ||||
|   | ||||
| ARCHITECTURE fsm OF charToMorseController IS | ||||
|  | ||||
|     TYPE STATE_TYPE IS ( | ||||
|         waitForChar, | ||||
|         storeChar, | ||||
|         sendDotStart, | ||||
|         sendDotWait, | ||||
|         sendDotSpacerStart, | ||||
|         sendDotSpacerWait, | ||||
|         sendDotDotStart, | ||||
|         sendDotDotWait, | ||||
|         sendDotDashStart, | ||||
|         sendDotDashWait, | ||||
|         sendDashStart, | ||||
|         sendDashWait, | ||||
|         sendDahsSpacerStart, | ||||
|         sendDashSpacerWait, | ||||
|         sendDashDotStart, | ||||
|         sendDashDashStart, | ||||
|         sendDashDotWait, | ||||
|         sendDashDashWait, | ||||
|         popChar, | ||||
|         popChar1 | ||||
|     ); | ||||
|   | ||||
|     -- Declare current and next state signals | ||||
|     SIGNAL current_state : STATE_TYPE; | ||||
|     SIGNAL next_state : STATE_TYPE; | ||||
|  | ||||
| BEGIN | ||||
|  | ||||
|     ----------------------------------------------------------------- | ||||
|     clocked_proc : PROCESS (  | ||||
|         clock, | ||||
|         reset | ||||
|     ) | ||||
|     ----------------------------------------------------------------- | ||||
|     BEGIN | ||||
|         IF (reset = '1') THEN | ||||
|             current_state <= waitForChar; | ||||
|         ELSIF (clock'EVENT AND clock = '1') THEN | ||||
|             current_state <= next_state; | ||||
|         END IF; | ||||
|     END PROCESS clocked_proc; | ||||
|   | ||||
|     ----------------------------------------------------------------- | ||||
|     nextstate_proc : PROCESS (  | ||||
|         char, | ||||
|         charNotReady, | ||||
|         counterDone, | ||||
|         current_state | ||||
|     ) | ||||
|     ----------------------------------------------------------------- | ||||
|     BEGIN | ||||
|         CASE current_state IS | ||||
|             WHEN waitForChar =>  | ||||
|                 IF (charNotReady = '0') THEN  | ||||
|                     next_state <= storeChar; | ||||
|                 ELSE | ||||
|                     next_state <= waitForChar; | ||||
|                 END IF; | ||||
|             WHEN storeChar =>  | ||||
|                 IF (character'val(to_integer(unsigned(char))) = 'e' or | ||||
|                     character'val(to_integer(unsigned(char))) = 'i' or | ||||
|                     character'val(to_integer(unsigned(char))) = 'a') THEN  | ||||
|                     next_state <= sendDotStart; | ||||
|                 ELSIF (character'val(to_integer(unsigned(char))) = 't' or | ||||
|                        character'val(to_integer(unsigned(char))) = 'n' or | ||||
|                        character'val(to_integer(unsigned(char))) = 'm') THEN  | ||||
|                     next_state <= sendDashStart; | ||||
|                 ELSE | ||||
|                     next_state <= popChar1; | ||||
|                 END IF; | ||||
|             WHEN sendDotStart =>  | ||||
|                 next_state <= sendDotWait; | ||||
|             WHEN sendDotWait =>  | ||||
|                 IF (counterDone = '0') THEN  | ||||
|                     next_state <= sendDotWait; | ||||
|                 ELSIF (character'val(to_integer(unsigned(char))) = 'e') THEN  | ||||
|                     next_state <= popChar1; | ||||
|                 ELSE | ||||
|                     next_state <= sendDotSpacerStart; | ||||
|                 END IF; | ||||
|             WHEN sendDotSpacerStart =>  | ||||
|                 next_state <= sendDotSpacerWait; | ||||
|             WHEN sendDotSpacerWait =>  | ||||
|                 IF (counterDone = '0') THEN  | ||||
|                     next_state <= sendDotSpacerWait; | ||||
|                 ELSIF (character'val(to_integer(unsigned(char))) = 'i') THEN  | ||||
|                     next_state <= sendDotDotStart; | ||||
|                 ELSE | ||||
|                     next_state <= sendDotDashStart; | ||||
|                 END IF; | ||||
|             WHEN sendDotDotStart =>  | ||||
|                 next_state <= sendDotDotWait; | ||||
|             WHEN sendDotDotWait =>  | ||||
|                 IF (counterDone = '0') THEN  | ||||
|                     next_state <= sendDotDotWait; | ||||
|                 ELSE | ||||
|                     next_state <= popChar1; | ||||
|                 END IF; | ||||
|             WHEN sendDotDashStart =>  | ||||
|                 next_state <= sendDotDashWait; | ||||
|             WHEN sendDotDashWait =>  | ||||
|                 IF (counterDone = '0') THEN  | ||||
|                     next_state <= sendDotDashWait; | ||||
|                 ELSE | ||||
|                     next_state <= popChar1; | ||||
|                 END IF; | ||||
|             WHEN sendDashStart =>  | ||||
|                 next_state <= sendDashWait; | ||||
|             WHEN sendDashWait =>  | ||||
|                 IF (counterDone = '0') THEN  | ||||
|                     next_state <= sendDashWait; | ||||
|                 ELSIF (character'val(to_integer(unsigned(char))) = 't') THEN  | ||||
|                     next_state <= popChar1; | ||||
|                 ELSE | ||||
|                     next_state <= sendDahsSpacerStart; | ||||
|                 END IF; | ||||
|             WHEN sendDahsSpacerStart =>  | ||||
|                 next_state <= sendDashSpacerWait; | ||||
|             WHEN sendDashSpacerWait =>  | ||||
|                 IF (counterDone = '0') THEN  | ||||
|                     next_state <= sendDashSpacerWait; | ||||
|                 ELSIF (character'val(to_integer(unsigned(char))) = 'i') THEN  | ||||
|                     next_state <= sendDashDotStart; | ||||
|                 ELSE | ||||
|                     next_state <= sendDashDashStart; | ||||
|                 END IF; | ||||
|             WHEN sendDashDotStart =>  | ||||
|                 next_state <= sendDashDotWait; | ||||
|             WHEN sendDashDashStart =>  | ||||
|                 next_state <= sendDashDashWait; | ||||
|             WHEN sendDashDotWait =>  | ||||
|                 IF (counterDone = '0') THEN  | ||||
|                     next_state <= sendDashDotWait; | ||||
|                 ELSE | ||||
|                     next_state <= popChar1; | ||||
|                 END IF; | ||||
|             WHEN sendDashDashWait =>  | ||||
|                 IF (counterDone = '0') THEN  | ||||
|                     next_state <= sendDashDashWait; | ||||
|                 ELSE | ||||
|                     next_state <= popChar1; | ||||
|                 END IF; | ||||
|             WHEN popChar =>  | ||||
|                 IF (counterDone = '1') THEN  | ||||
|                     next_state <= waitForChar; | ||||
|                 ELSE | ||||
|                     next_state <= popChar; | ||||
|                 END IF; | ||||
|             WHEN popChar1 =>  | ||||
|                 next_state <= popChar; | ||||
|             WHEN OTHERS => | ||||
|                 next_state <= waitForChar; | ||||
|         END CASE; | ||||
|     END PROCESS nextstate_proc; | ||||
|   | ||||
|     ----------------------------------------------------------------- | ||||
|     output_proc : PROCESS (  | ||||
|         current_state | ||||
|     ) | ||||
|     ----------------------------------------------------------------- | ||||
|     BEGIN | ||||
|         -- Default Assignment | ||||
|         morseOut <= '0'; | ||||
|         startCounter <= '0'; | ||||
|         unitNb <= (others => '0'); | ||||
|         readChar <= '0'; | ||||
|  | ||||
|         -- Combined Actions | ||||
|         CASE current_state IS | ||||
|             WHEN sendDotStart =>  | ||||
|                 startCounter <= '1'; | ||||
|             WHEN sendDotWait =>  | ||||
|                 unitNb <= to_unsigned(1, unitNb'length); | ||||
|                 morseOut <= '1'; | ||||
|             WHEN sendDotSpacerStart =>  | ||||
|                 startCounter <= '1'; | ||||
|             WHEN sendDotSpacerWait =>  | ||||
|                 unitNb <= to_unsigned(1, unitNb'length); | ||||
|             WHEN sendDotDotStart =>  | ||||
|                 startCounter <= '1'; | ||||
|             WHEN sendDotDotWait =>  | ||||
|                 unitNb <= to_unsigned(1, unitNb'length); | ||||
|                 morseOut <= '1'; | ||||
|             WHEN sendDotDashStart =>  | ||||
|                 startCounter <= '1'; | ||||
|             WHEN sendDotDashWait =>  | ||||
|                 unitNb <= to_unsigned(3, unitNb'length); | ||||
|                 morseOut <= '1'; | ||||
|             WHEN sendDashStart =>  | ||||
|                 startCounter <= '1'; | ||||
|             WHEN sendDashWait =>  | ||||
|                 unitNb <= to_unsigned(3, unitNb'length); | ||||
|                 morseOut <= '1'; | ||||
|             WHEN sendDahsSpacerStart =>  | ||||
|                 startCounter <= '1'; | ||||
|             WHEN sendDashSpacerWait =>  | ||||
|                 unitNb <= to_unsigned(1, unitNb'length); | ||||
|             WHEN sendDashDotStart =>  | ||||
|                 startCounter <= '1'; | ||||
|             WHEN sendDashDashStart =>  | ||||
|                 startCounter <= '1'; | ||||
|             WHEN sendDashDotWait =>  | ||||
|                 unitNb <= to_unsigned(1, unitNb'length); | ||||
|                 morseOut <= '1'; | ||||
|             WHEN sendDashDashWait =>  | ||||
|                 unitNb <= to_unsigned(3, unitNb'length); | ||||
|                 morseOut <= '1'; | ||||
|             WHEN popChar =>  | ||||
|                 unitNb <= to_unsigned(3, unitNb'length); | ||||
|             WHEN popChar1 =>  | ||||
|                 readChar <= '1'; | ||||
|                 startCounter <= '1'; | ||||
|             WHEN OTHERS => | ||||
|                 NULL; | ||||
|         END CASE; | ||||
|     END PROCESS output_proc; | ||||
|   | ||||
| END fsm; | ||||
							
								
								
									
										31
									
								
								05-Morse/Morse/hdl/morseencoder_entity.vhg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								05-Morse/Morse/hdl/morseencoder_entity.vhg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| -- VHDL Entity Morse.morseEncoder.symbol | ||||
| -- | ||||
| -- Created: | ||||
| --          by - francois.francois (Aphelia) | ||||
| --          at - 09:13:01 03/29/19 | ||||
| -- | ||||
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) | ||||
| -- | ||||
| LIBRARY ieee; | ||||
|   USE ieee.std_logic_1164.all; | ||||
|   USE ieee.numeric_std.all; | ||||
|  | ||||
| ENTITY morseEncoder IS | ||||
|     GENERIC(  | ||||
|         clockFrequency : real     := 100.0E6; | ||||
|         uartBaudRate   : real     := 115.2E3; | ||||
|         uartDataBitNb  : positive := 8; | ||||
|         unitDuration   : real     := 100.0E-3; | ||||
|         toneFrequency  : real     := 300.0 | ||||
|     ); | ||||
|     PORT(  | ||||
|         morseCode : OUT    std_ulogic; | ||||
|         clock     : IN     std_ulogic; | ||||
|         reset     : IN     std_ulogic; | ||||
|         RxD       : IN     std_ulogic | ||||
|     ); | ||||
|  | ||||
| -- Declarations | ||||
|  | ||||
| END morseEncoder ; | ||||
|  | ||||
							
								
								
									
										154
									
								
								05-Morse/Morse/hdl/morseencoder_struct.vhg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								05-Morse/Morse/hdl/morseencoder_struct.vhg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,154 @@ | ||||
| -- | ||||
| -- VHDL Architecture Morse.morseEncoder.struct | ||||
| -- | ||||
| -- Created: | ||||
| --          by - axel.amand.UNKNOWN (WE7860) | ||||
| --          at - 14:50:20 28.04.2023 | ||||
| -- | ||||
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) | ||||
| -- | ||||
| LIBRARY ieee; | ||||
|   USE ieee.std_logic_1164.all; | ||||
|   USE ieee.numeric_std.all; | ||||
|  | ||||
| LIBRARY Memory; | ||||
| LIBRARY Morse; | ||||
| LIBRARY RS232; | ||||
|  | ||||
| ARCHITECTURE struct OF morseEncoder IS | ||||
|  | ||||
|     -- Architecture declarations | ||||
|     constant fifoDepth : positive := 100; | ||||
|  | ||||
|     -- Internal signal declarations | ||||
|     SIGNAL characterReg   : std_ulogic_vector(uartDataBitNb-1 DOWNTO 0); | ||||
|     SIGNAL characterIn    : std_ulogic_vector(uartDataBitNb-1 DOWNTO 0); | ||||
|     SIGNAL characterValid : std_ulogic; | ||||
|     SIGNAL morseOut       : std_ulogic; | ||||
|     SIGNAL tone           : std_ulogic; | ||||
|     SIGNAL charNotReady   : std_ulogic; | ||||
|     SIGNAL readChar       : std_ulogic; | ||||
|  | ||||
|  | ||||
|     -- Component Declarations | ||||
|     COMPONENT FIFO_bram | ||||
|     GENERIC ( | ||||
|         dataBitNb : positive := 8; | ||||
|         depth     : positive := 8 | ||||
|     ); | ||||
|     PORT ( | ||||
|         write   : IN     std_ulogic ; | ||||
|         clock   : IN     std_ulogic ; | ||||
|         reset   : IN     std_ulogic ; | ||||
|         dataOut : OUT    std_ulogic_vector (dataBitNb-1 DOWNTO 0); | ||||
|         read    : IN     std_ulogic ; | ||||
|         dataIn  : IN     std_ulogic_vector (dataBitNb-1 DOWNTO 0); | ||||
|         empty   : OUT    std_ulogic ; | ||||
|         full    : OUT    std_ulogic  | ||||
|     ); | ||||
|     END COMPONENT; | ||||
|     COMPONENT charToMorse | ||||
|     GENERIC ( | ||||
|         characterBitNb  : positive := 8; | ||||
|         unitCountDivide : positive := 10E3 | ||||
|     ); | ||||
|     PORT ( | ||||
|         morseOut     : OUT    std_ulogic ; | ||||
|         clock        : IN     std_ulogic ; | ||||
|         reset        : IN     std_ulogic ; | ||||
|         charIn       : IN     std_ulogic_vector (characterBitNb-1 DOWNTO 0); | ||||
|         readChar     : OUT    std_ulogic ; | ||||
|         charNotReady : IN     std_ulogic  | ||||
|     ); | ||||
|     END COMPONENT; | ||||
|     COMPONENT toneGenerator | ||||
|     GENERIC ( | ||||
|         toneDivide : positive := 100E3 | ||||
|     ); | ||||
|     PORT ( | ||||
|         tone  : OUT    std_ulogic ; | ||||
|         clock : IN     std_ulogic ; | ||||
|         reset : IN     std_ulogic  | ||||
|     ); | ||||
|     END COMPONENT; | ||||
|     COMPONENT serialPortReceiver | ||||
|     GENERIC ( | ||||
|         dataBitNb      : positive := 8; | ||||
|         baudRateDivide : positive := 2083 | ||||
|     ); | ||||
|     PORT ( | ||||
|         RxD       : IN     std_ulogic ; | ||||
|         clock     : IN     std_ulogic ; | ||||
|         reset     : IN     std_ulogic ; | ||||
|         dataOut   : OUT    std_ulogic_vector (dataBitNb-1 DOWNTO 0); | ||||
|         dataValid : OUT    std_ulogic  | ||||
|     ); | ||||
|     END COMPONENT; | ||||
|  | ||||
|     -- Optional embedded configurations | ||||
|     -- pragma synthesis_off | ||||
|     FOR ALL : FIFO_bram USE ENTITY Memory.FIFO_bram; | ||||
|     FOR ALL : charToMorse USE ENTITY Morse.charToMorse; | ||||
|     FOR ALL : serialPortReceiver USE ENTITY RS232.serialPortReceiver; | ||||
|     FOR ALL : toneGenerator USE ENTITY Morse.toneGenerator; | ||||
|     -- pragma synthesis_on | ||||
|  | ||||
|  | ||||
| BEGIN | ||||
|     -- Architecture concurrent statements | ||||
|     -- HDL Embedded Text Block 1 eb1 | ||||
|     morseCode <= morseOut and tone; | ||||
|  | ||||
|  | ||||
|     -- Instance port mappings. | ||||
|     I_FIFO : FIFO_bram | ||||
|         GENERIC MAP ( | ||||
|             dataBitNb => uartDataBitNb, | ||||
|             depth     => fifoDepth | ||||
|         ) | ||||
|         PORT MAP ( | ||||
|             write   => characterValid, | ||||
|             clock   => clock, | ||||
|             reset   => reset, | ||||
|             dataOut => characterReg, | ||||
|             read    => readChar, | ||||
|             dataIn  => characterIn, | ||||
|             empty   => charNotReady, | ||||
|             full    => OPEN | ||||
|         ); | ||||
|     I_enc : charToMorse | ||||
|         GENERIC MAP ( | ||||
|             characterBitNb  => uartDataBitNb, | ||||
|             unitCountDivide => integer(clockFrequency*unitDuration + 0.5) | ||||
|         ) | ||||
|         PORT MAP ( | ||||
|             morseOut     => morseOut, | ||||
|             clock        => clock, | ||||
|             reset        => reset, | ||||
|             charNotReady => charNotReady, | ||||
|             charIn       => characterReg, | ||||
|             readChar     => readChar | ||||
|         ); | ||||
|     I_tone : toneGenerator | ||||
|         GENERIC MAP ( | ||||
|             toneDivide => integer(clockFrequency/toneFrequency + 0.5) | ||||
|         ) | ||||
|         PORT MAP ( | ||||
|             tone  => tone, | ||||
|             clock => clock, | ||||
|             reset => reset | ||||
|         ); | ||||
|     I_UART : serialPortReceiver | ||||
|         GENERIC MAP ( | ||||
|             dataBitNb      => uartDataBitNb, | ||||
|             baudRateDivide => integer(clockFrequency/uartBaudRate + 0.5) | ||||
|         ) | ||||
|         PORT MAP ( | ||||
|             RxD       => RxD, | ||||
|             clock     => clock, | ||||
|             reset     => reset, | ||||
|             dataOut   => characterIn, | ||||
|             dataValid => characterValid | ||||
|         ); | ||||
|  | ||||
| END struct; | ||||
							
								
								
									
										26
									
								
								05-Morse/Morse/hdl/tonegenerator_entity.vhg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								05-Morse/Morse/hdl/tonegenerator_entity.vhg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| -- VHDL Entity Morse.toneGenerator.symbol | ||||
| -- | ||||
| -- Created: | ||||
| --          by - francois.francois (Aphelia) | ||||
| --          at - 09:13:01 03/29/19 | ||||
| -- | ||||
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) | ||||
| -- | ||||
| LIBRARY ieee; | ||||
|   USE ieee.std_logic_1164.all; | ||||
|   USE ieee.numeric_std.all; | ||||
|  | ||||
| ENTITY toneGenerator IS | ||||
|     GENERIC(  | ||||
|         toneDivide : positive := 100E3 | ||||
|     ); | ||||
|     PORT(  | ||||
|         tone  : OUT    std_ulogic; | ||||
|         clock : IN     std_ulogic; | ||||
|         reset : IN     std_ulogic | ||||
|     ); | ||||
|  | ||||
| -- Declarations | ||||
|  | ||||
| END toneGenerator ; | ||||
|  | ||||
							
								
								
									
										29
									
								
								05-Morse/Morse/hdl/unitcounter_entity.vhg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								05-Morse/Morse/hdl/unitcounter_entity.vhg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| -- VHDL Entity Morse.unitCounter.symbol | ||||
| -- | ||||
| -- Created: | ||||
| --          by - francois.francois (Aphelia) | ||||
| --          at - 09:13:01 03/29/19 | ||||
| -- | ||||
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5) | ||||
| -- | ||||
| LIBRARY ieee; | ||||
|   USE ieee.std_logic_1164.all; | ||||
|   USE ieee.numeric_std.all; | ||||
|  | ||||
| ENTITY unitCounter IS | ||||
|     GENERIC(  | ||||
|         unitCountDivide : positive := 10E3; | ||||
|         unitCountBitNb  : positive := 3 | ||||
|     ); | ||||
|     PORT(  | ||||
|         clock        : IN     std_ulogic; | ||||
|         reset        : IN     std_ulogic; | ||||
|         startCounter : IN     std_ulogic; | ||||
|         unitNb       : IN     unsigned (unitCountBitNb-1 DOWNTO 0); | ||||
|         done         : OUT    std_ulogic | ||||
|     ); | ||||
|  | ||||
| -- Declarations | ||||
|  | ||||
| END unitCounter ; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user