📄 str_filter.tdf
字号:
%
本程序完成位定时徘徊滤波器
%
SUBDESIGN STR_FILTER
(
CLK: INPUT;
BW_CTRL: INPUT;
FILTER_IN: INPUT;
FILTER_CLR: INPUT;
FACTOR[3..0]: OUTPUT;
LOAD: OUTPUT;
)
VARIABLE
COUNT[5..0] :DFF;
FACTOR[3..0] :DFF;
DALTA[2..0] :SOFT;
LOAD :DFF;
BEGIN
COUNT[].CLK=CLK;
FACTOR[3..0].CLK=CLK;
LOAD.CLK = CLK;
IF BW_CTRL==1 THEN --带宽控制
DALTA[]=1;
ELSE
DALTA[]=3;
END IF;
IF (FILTER_CLR==0) # (COUNT[].Q>=59) # (COUNT[].Q<=3) THEN
COUNT[].D=31;
ELSIF FILTER_IN==1 THEN
COUNT[].D=COUNT[].Q+(0,0,0,DALTA[]);
ELSIF FILTER_IN==0 THEN
COUNT[].D=COUNT[].Q-(0,0,0,DALTA[]);
END IF;
IF COUNT[].Q>=59 THEN
FACTOR[].D = 8;
LOAD.D = VCC;
ELSIF COUNT[].Q<=3 THEN
FACTOR[].D = 6 ;
LOAD.D = VCC;
ELSE
FACTOR[]= 7;
LOAD.D = GND;
END IF;
END;
%
鉴相器指示
1 本地超前
0 本地滞后
滤波器输出
LOAD=0 无需调整
LOAD=1 需要调整
FACTOR = 7 收发时钟同步
FACTOR = 6 本地时钟滞后
FACTOR = 8 本地时钟超前
%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -