📄 wave.tdf
字号:
include "sin.inc";
subdesign wave
(inclk,mode[1..0],inb[7..0]:input;
da[7..0],cs:output;
)
variable
fp[7..0],f:dff;
st:dff;
da[7..0]:dff;
md[8..0]:dff;
msin:sin;
begin
(fp[],f).clk=inclk; --将inclk分频输出f,输入inb[]控制分频系数
if fp[]>=inb[] then
fp[]=0;f=!f;
else
fp=fp+1;f=f;
end if;
cs=gnd;
da[].clk=f;
md[].clk=f;
st.clk=f;
case mode[] is --通过输入mode[1..0]控制输出波形
when 0=> --产生一个锯齿波
da[]=da[]+1;
when 1=> --产生一个三角波
case st is
when gnd =>
if da[]==255 then
da[]=da[];st=vcc;
else
da[]=da[]+1;st=gnd;
end if;
when vcc=>
if da[]==0 then
da[]=da[];st=gnd;
else
da[]=da[]-1;st=vcc;
end if;
end case;
when 2=> --产生一个方波
case st is
when gnd=>
da[]=da[];
if md[]>=255 then
md[]=0;st=vcc;
else
md[]=md[]+1;st=gnd;
end if;
when vcc=>
da[]=!da[];
end case;
when 3=> --产生一个正弦波
msin.inclk=f;msin.add[]=md[];da[]=msin.q[];
if md[]==255 then
md[]=0;
else
md[]=md[]+1;
end if;
end case;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -