私はVHDLが初めてです。24 MHz の入力クロック信号から 1 Hz (50 % のデューティ サイクル) のクロック信号を生成する方法について、このコードが与えられました。より明確にするためにいくつか質問があります。
- カウンター制限はどのように選択されますか? 以下の場合は 12000000 です。8Hz のクロック信号を生成したい場合、この制限はどうなるでしょうか。
デューティ サイクルを 80% に変更したい場合、コードをどのように調整すればよいですか?
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity clock is port ( CLKin: in std_logic; reset: in std_logic; CLKout: out std_logic); end clock; architecture arch of clock is signal counter: integer:=0; signal temp : std_logic := '1'; begin process(CLKin,counter,reset) begin if(reset='0') then counter<=0; temp<='1'; elsif(CLKin'event and CLKin='1') then counter <=counter+1; if (counter = 12000000) then temp <= NOT temp; counter<=0; end if; end if; CLKout <= temp; end process; end arch;