⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 divide1.tdf

📁 《FPGA嵌入式应用系统开发典型实例》-书的光盘资料
💻 TDF
字号:
--以下一个通用的50%占空比奇数分频器源程序。

--////////////////////////////////////////////////////////////////////////////////////////////////////////////
--// 如果你是 N (这里设一个 23 )分频;                                                                      //
--// PARAMETERS                                                                                             //
--// (  Divide_value   = 23 );  -- 这里是奇数值 N;                                                         //
--// -- 求出该分频器所需的最少 D 触发器;                                                                   //
--// CONSTANT  Divide_Length = (Divide_value + 1)/2;                                                        //
--// CONSTANT  Width  = LOG2(Divide_Length - 1);                                                            //
--////////////////////////////////////////////////////////////////////////////////////////////////////////////

SUBDESIGN Divide1      -- 设计实体名;
(
    Clock         : INPUT;
    Divide_Clk    : OUTPUT;
)
VARIABLE
    Interior_Clk                  : Node; -- 建立一个内部时钟;
    Divide_DFF[Width-1..0]  : DFF;  -- 说明一个 D 触发组;
    Result_DFF                   : DFF;  -- 建立一个输出 D 触发器;
BEGIN
    Interior_Clk         = Clock $ Result_DFF;   -- 输入时钟异或结果触发器值;     
    Divide_DFF[].Clk  = Interior_Clk;              -- D 触发器的时钟连接;
    IF Divide_DFF[] == (Divide_Length -1) THEN  --D 触发器的输入端处理;
       Divide_DFF[].D = 0;          
    ELSE
       Divide_DFF[].D = Divide_DFF[] + 1;   
    END IF;
    -- 计数器计满一次,结果触发器翻转一次;
    Result_DFF.Clk = Divide_DFF[Width-1];
    Result_DFF.D   = !Result_DFF;              
    Divide_Clk       =  Result_DFF;  -- 分频信号输出;
END;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -