基于AHDL的函數信號發生器的設計(附源代碼)
AD558可將輸入的數字量(8位)轉化成0~2.56V的模擬電壓量;用CPLD器件產生四種循環變化的數據量:
1、0~255(8Bit)循環加法計數;
2、255~0(8Bit)循環堿法計數;
3、0~255~0(8Bit)循環加減法計數;
4、0,20H,40H,60H,80H,A0H,C0H,E0H編碼計數器。
將計數器的八位輸出接到DAC的八位輸入,可以產生四種波形(頻率相同):
1、遞增斜波;
2、遞減斜波;
3、三角波;
4、遞增階梯波;
本實驗完全用硬件描述語言實現,參考AHDL源程序
t11.tdf
SUBDESIGN t11
(
clk,reset,model[1..0]: INPUT;
daout[7..0]: OUTPUT;
)
VARIABLE
count[7..0],subadd :DFF;
-- subadd :NODE;
BEGIN
count[].clk=clk;
count[].clrn=reset;
subadd.clk=clk;
subadd.clrn=reset;
daout[]=count[].q;
-- sa[]=subadd[].q;
CASE model[] IS
WHEN 0 =》
count[].d=count[].q+1;
WHEN 1 =》
count[].d=count[].q-1;
WHEN 2 =》
IF(subadd.q==GND) THEN
count[].d=count[].q+1;
IF(count[].q == 254) THEN
subadd.d=VCC;
ELSE
subadd.d=GND;
END IF;
ELSE
count[].d=count[].q-1;
IF(count[].q 《= 1) THEN
subadd.d=GND;
ELSE
subadd.d=VCC;
END IF;
END IF;
WHEN 3 =》
count[].d=count[].q+H“20”;
END CASE;
END;
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%