dividere med 4 counter

A

anoop12

Guest
Hej Alle,

Jeg har skrevet koden til dividere med 2 tæller.Jeg er nødt til at ændre det til dividere med
4 counter.
Er der nogen ved, hvordan man kan ændre det?
Anden måde?

Tak

Her er koden
---------------------------------------
library IEEE;
brug ieee.std_logic_1164.all;

enhed divide_by_2 er
port (
clk_i: i std_logic;
reset: i std_logic;
clk_div2: out std_logic

);
ende divide_by_2;

arkitektur RTL af divide_by_2 er
signal q: std_logic;
begynd
proces (clk_i, reset)
begynd
if (reset = '0 ') then
q <= '0 ';

elsif (clk_i'event og clk_i = '1 ') then
q <= ikke (q);

end if;
end process;
clk_div2 <= q;

ende RTL;

-----------------------------------------

 
Hej,

Brug en tæller at tælle to ur cyklusser og derefter vende output.
Hope u fik en idé.

 
signal Q: std_logic_vector (1 downto 0);
................

begynd
proces (clk_i, reset)
begynd
if (reset = '0 ') then
q <= "00";

elsif (clk_i'event og clk_i = '1 ') then
q <= q 1;

end if;
end process;

clk_div2 <= q (0);
clk_div4 <= q (1);

 
det ville være bedre at hav det argument, i hvis løkke af
addn programmet som følger:

if ((reset = '0 ') eller (q = '00')) then
....................
..................

 
hvis u give output af en strid, som clk til en anden Jeg tror ur problem vil være løst!
i dette tilfælde den CKT vil være asynkron.

anden

bruge en variabel i første omgang gøre det 0;
Ved Q <= ikke (q); var = var 1;

AT clk_div2 <= q; kontrollere, om der var derefter er 2 vendes clk_div2 (er nødt til at gøre det bi-directional)
gøre var = 0; igen

Hvis IAM forkert, bedes du rette mig, gutter!

 

Welcome to EDABoard.com

Sponsor

Back
Top