📄 dspiopt.tdf
字号:
FUNCTION DPWM12(en,clock,clr,s[11..0])
returns (pwm);
SUBDESIGN dspiopt
(
a0,a1,a2,a3,/iostb,r/w,/csioa,i[7..0],KIN[3..0],clk,it[7..0] : INPUT;
sgd[7..0],SDP[3..0],SKN[3..0],pwmop,opt[6..0]: OUTPUT;
d[7..0] :BIDIR;
)
VARIABLE
dlt[2..0]:lcell;
op0[7..0]:dff;
op1[6..0]:dff;
op2[3..0]:dff;
OP4[3..0],op7[5..0],op8[7..0]:dff; --op3[7..0],: DFF;
nn[7..0],cs0,cs1,cs3,cs:node;
pwmct :dpwm12;
BEGIN
dlt0=/iostb;
dlt1=dlt0;
dlt2=dlt1;
cs0=(!/csioa &(!a0&!a1&!a2&!a3) & r/w & dlt0);
cs1=(!/csioa &( a0&!a1&!a2&!a3) & r/w & dlt0);
cs3=(!/csioa &( a0&a1&!a2&!a3) & r/w & dlt0);
cs =(cs0 or cs1 or cs3);
nn[]= (cs0 & i[7..0]) or (cs1 & (0,0,0,0,KIN[]))or (cs3 & it[7..0]);
for j in 0 to 7 generate
d[j]=tri(nn[j],cs);
end generate;
op0[].clk=(!/csioa & (!a0&!a1&!a2&!a3)& !r/w & dlt2);%OUTPUT 00%
op1[].clk=(!/csioa & ( a0&!a1&!a2&!a3)& !r/w & dlt2); %OUTPUT 01%
--op3[].clk=(!/csioa & (a0& a1&!a2&!a3)& !r/w & dlt2); %OUTPUT 03%
op2[].clk=(!/csioa & (!a0& a1&!a2&!a3)& !r/w & dlt2);%OUTPUT 02%
op4[].clk=(!/csioa & (!a0&!a1&a2&!a3)& !r/w & dlt2); %OUTPUT 04%
op8[].clk=(!/csioa & (!a0&!a1&!a2& a3)& !r/w & dlt2); %OUTPUT 08%
op7[].clk=(!/csioa & ( a0& a1& a2&!a3)& !r/w & dlt2); %OUTPUT 07%
pwmct.clock=clk;
pwmop=pwmct.pwm;
op0[].d=d[7..0];%p64-p72 7seg anode%
op1[].d=d[6..0];%p55-p62 opt cnt %
op2[].d=d[3..0];%p76-p79 7 seg cathode%
--op3[]=d[];
OP4[]=d[3..0]; %p22-p25 key scan %
op7[].d=d[5..0]; %pwm.en ,pwm.clr,pwm a11-a8%
op8[].d=d[7..0]; %pwm a7-a0%
pwmct.s[7..0]=op8[].q;
pwmct.s[11..8]=op7[3..0].q;
pwmct.en =op75.q;
pwmct.clr =op74.q;
sgd[]=op0[].q;%port(00)%
opt[6..0]=op1[].q;%PORT(01)%
SDP[]=OP2[].Q;%port(02)%
SKN[]=OP4[].Q;%port(04)%
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -