VHDL数控分频器编程

2025-10-05 19:17:44

1、LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY speaker IS

         PORT(clk:IN STD_LOGIC;

                   tone:IN STD_LOGIC_VECTOR (11 DOWNTO 0);

                    spk:OUT STD_LOGIC);

END ENTITY speaker;

ARCHITECTURE one OF speaker IS

         SIGNAL preclk:STD_LOGIC;

         SIGNAL fullspk:STD_LOGIC;

         BEGIN

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

         divclk:PROCESS(clk)

                   VARIABLE Count8:STD_LOGIC_VECTOR (3 DOWNTO 0);

                   BEGIN

                            IF (clk'EVENT AND clk='1') THEN

                                     IF Count8>7 THEN preclk<=NOT preclk;Count8:="0000";

                                     ELSE Count8:=Count8+1;

                                     END IF;

                            END IF;

         END PROCESS divclk;

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

         genspk:PROCESS(preclk,tone)

                   VARIABLE Count12:STD_LOGIC_VECTOR(11 DOWNTO 0);

                   BEGIN

                            IF (preclk'EVENT AND preclk='1') THEN

                                     IF Count12=16#FFF# THEN Count12:=tone;fullspk<='1';

                                     ELSE Count12:=Count12+1;fullspk<='0';

                                     END IF;

                            END IF;

         END PROCESS genspk;

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

         delayspk:PROCESS (fullspk)

                   VARIABLE Count2:STD_LOGIC;

                   BEGIN

                   IF (fullspk'EVENT AND fullspk='1') THEN Count2:=NOT Count2;

                            IF Count2='1' THEN spk <='1';

                            ELSE spk<='0';

                            END IF;

                   END IF;

         END PROCESS delayspk;

END ARCHITECTURE one;

VHDL数控分频器编程

2、进行波形仿真

VHDL数控分频器编程

3、说明:

tone即是分频系数

spk既是产生的信号

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢