Community
cancel
Showing results for
Did you mean:
Honored Contributor I
1,003 Views

## Customized signal

Hello, for my project, i need to generate an input that is customizable. Means that i want to customize the high state and low state. For example, I set 1 sec for high state and 0.5 sec for low state. How can i set this kind of signal from vhdl ? Any ideas ? Thank you in advance.

Tags (1)
10 Replies
Honored Contributor I
86 Views

use a counter to count out 1s and 0.5s. Then toggle.

Honored Contributor I
86 Views

what do you mean by toggling both counter ?

Honored Contributor I
86 Views

Use a counter to count out the time. Then set your signal as you want at the appropriate time.

Honored Contributor I
86 Views

D you have any example ?

Honored Contributor I
86 Views

``` signal cnt : unsigned(31 downto 0); process(clk) begin if rising_edge(clk) then cnt <= cnt + 1; if cnt = ONE_S then op <= '1'; elsif cnt = ONE_S_PLUS_0_5s then op <= '0'; end if; end if; end process; ```

Honored Contributor I
86 Views

Thank you !

Honored Contributor I
86 Views

Do I need a loop for this signal to repeat infinitely ?

Honored Contributor I
86 Views

--- Quote Start ---

``` signal cnt : unsigned(31 downto 0); process(clk) begin cnt <= cnt + 1; if cnt = ONE_S then op <= '1'; elsif cnt = ONE_S_PLUS_0_5s then op <= '0'; end if; end process; ```

--- Quote End ---

Tricky, I am a bit disappointed...no clocking this time
Honored Contributor I
86 Views

--- Quote Start ---

Do I need a loop for this signal to repeat infinitely ?

--- Quote End ---

No, it is a continuous logic by itself but you need to add clock edge and your counter will keep going for ever.
Honored Contributor I
86 Views

--- Quote Start ---

Tricky, I am a bit disappointed...no clocking this time

--- Quote End ---

Doh - fixed it.