📄 divide1.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 + -