yinhe 发表于 2008-2-19 09:26:51

请大家帮忙解决,VHDL 无限循环部分编译通不过!有电路图--该贴在别处无人回答,所以转

1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_215635.JPG

希望VHDL 上电不断输出三个不同的方波:ADcA,ADcB,ADcC,经图中的3位D/A转换(用多路复用开关芯片4053做的),最终由out端输出模拟三角波(因为不连续,所以实际形状大约是"阶梯状").

因此,我想用quartusII编译一个无限循环程序,写入altera的CPLD芯片epm7064,在循环体内使ADcA,ADcB,ADcC三个序列正序输出后再倒序输出.其他语句已通过,但这几条总是出错:

PROCESS
BEGIN
    WHILE(1)
       LOOP
--这里放置使ADcA,ADcB,ADcC三个序列对应变量的操作语句.
      END LOOP;
END PROCESS;
请问是何问题?谢谢!

qinxg 发表于 2008-2-19 17:48:32

VHDL里的LOOP相当于汇编的宏汇编,最终还是要展开.不是逻辑意义上的循环.
你的例子应该: 1. CPLD引入一个时钟.
            2. 写一个状态机,在时钟驱动下输出3个序列.

yinhe 发表于 2008-2-19 20:29:28

谢谢qinxg
"1. CPLD引入一个时钟"
你是指这样吗?

PROCESS(puls)
BEGIN
    WHILE(1)   
       LOOP
--这里放置使ADcA,ADcB,ADcC三个序列对应变量的操作语句.
      END LOOP;
END PROCESS;

"2. 写一个状态机,在时钟驱动下输出3个序列."
你说的状态机是指"被语句描述的状态图"吗?

是对下面的这类图的VHDL语句描述吗?

yinhe 发表于 2008-2-19 20:31:07

对2楼补充:
是对下面的这类图的VHDL语句描述吗?
1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_216098.gif
页: [1]
查看完整版本: 请大家帮忙解决,VHDL 无限循环部分编译通不过!有电路图--该贴在别处无人回答,所以转