VHDL編寫分頻器,用VHDL編寫分頻器程式

時間 2021-09-05 23:16:22

1樓:匿名使用者

library ieee;

use ieee.std_logic_1164.all;

entity onemhz is

port( clkin:in std_logic; --時鐘訊號輸入

clkout:out std_logic); --時鐘訊號輸出end onemhz;

architecture aronemhz of onemhz issignal data:integer range 0 to 10;

signal q:std_logic;

begin

process(clkin)

begin

if rising_edge(clkin) thenif(data=0) then --此句為你想要的分頻比,data=0,1,2,3,4.......9的分頻比為1,2,3,,,10

data<=0;

q<=not q;

else

data<=data+1;

end if;

end if;

clkout<=q;

end process;

end onemhz;

2樓:

我試了樓上的vhdl,結果是這樣的,

data=0, 二分頻

data=1,四分頻

data=2,六分頻

data=3,八分頻

data=4,十分頻

data=5,十二分頻~~~

用vhdl編寫分頻器程式

3樓:公羊頤

這個一般有兩種方法,一種是分奇偶分頻,因為奇偶分頻不一樣,所以先判斷是奇偶,然後再相應處理就可以了,另一種是一種整體演算法思想,不需要判斷奇偶數。。。

頂層模組程式:

entity control_clk is

port(

clk_i : in std_logic;

data_i : in std_logic_vector(4 downto 0);

clk_div : out std_logic

);end control_clk;

architecture rlt_control of control_clk is

component odd_div is

port(

clk_i : in std_logic;

data_i : in std_logic_vector(4 downto 0);

clk_odd : out std_logic

);end component;

signal clk_odd : std_logic :='0';

component even_div is

port(

clk_i : in std_logic;

data_i : in std_logic_vector(4 downto 0);

clk_even : out std_logic

);end component;

signal clk_even : std_logic :='0';

signal odd_even : std_logic :='0';

begin

odd_u : odd_div

port map(

clk_i => clk_i,

data_i => data_i,

clk_odd => clk_odd

);even_u : even_div

port map(

clk_i => clk_i,

data_i => data_i,

clk_even => clk_even

);odd_even <= data_i(0);

process(odd_even,clk_even,clk_odd)

begin

if odd_even ='0' then

clk_div <= clk_even;

else

clk_div <= clk_odd;

end if;

end process;

end rlt_control;

用vhdl編寫一個分頻器,實現輸出1mhz-1hz之間的任意頻率

4樓:匿名使用者

clk 輸入一個相對較大的頻率,

頻率要多少就用n_diviseur除!

library ieee;

use ieee.std_logic_1164.all;

entity div is

generic( n_diviseur : integer := 2 );

port ( clk : in std_logic;

clock : out std_logic);

end entity;

architecture beha of div isbegin

process (clk)

variable compteur : integer range 0 to n_diviseur;

begin

if (clk'event and clk = '1') thenif (compteur >= n_diviseur-1) thencompteur := 0;

clock <= '1';

else

compteur := compteur + 1;

clock <= '0';

end if;

end if;

end process;

end architecture;

5樓:匿名使用者

控制分頻比可以實現你的設計,達到

步進=1hz,

clkin=32mhz;

jitter=1/16ui.

簡單原理就是你用分頻器分出m分頻和n分頻的不同比重來實現步進1hz.

用VHDL實現分頻,VHDL編寫分頻器

模n計數器的實現 一般設計中用到計數器時,我們可以呼叫lpm庫中的計數器模組,也可以採用vhdl語言自己設計一個模n計數器。本設計採用vhdl語言設計一個最大模值為16的計數器。輸入埠為 使能訊號en,復位訊號clr和時鐘訊號clk 輸出埠為 qa qb qc qd。其vhdl語言描述略。帶使能控制...

汽車音響分頻器怎麼接出來的,汽車喇叭分頻器怎麼接

竹筱宓 汽車音響分頻器分為兩種 1 若是 lc 分頻,分頻器前 接放大器輸出的 接放大器輸出的 分頻器後面接就要注意了,分頻輸出有 h 高 和 l 低 如果有中頻則還有 m 中 一般只有高和低。對於 12 階的分頻 比較常用 高音輸出的 接喇叭的 低音輸出的 接喇叭的 這樣可以把經 lc 產生的移相...

分頻器幹什麼用的?原理是什麼,分頻器的原理

分頻器是做什麼用的?由於現在的音箱幾乎都採用多單元分頻段重放的設計方式,所以必須有一種裝置,能夠將功放送來的全頻帶 訊號按需要劃分為高音 低音輸出或者高音 中音 低音輸出,才能跟相應的喇叭單元連線,分頻器就是這樣的裝置。如果把全頻帶訊號不加分配地直接送入高 中 低音單元中去,在單元頻響範圍之外的那部...