基于AHDL的函数信号发生器的设计(附源代码)

未知 12-05 0评

资料大小:0.1 MB

所需积分:0

下载次数:0

  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个回复

我要评论

热门标签