阅读:1659回复:2
菜鸟求助:AHDL语言怎么把组转换成整数?
if CHreg[countch[]] then
chCtrl =VCC; else countch[]=countch[]+1; chCtrl =GND; end if; 我想根据countch[]的值判断相应的寄存器位,但是AHDL不支持这样用。多谢! |
|
沙发#
发布于:2004-12-04 09:00
if CHreg[countch[]] then
chCtrl =VCC; else countch[]=countch[]+1; chCtrl =GND; end if; 从你的语句结构看,你可能有概念性的错误。我猜测你的意思是countch[]是一个计数器, 在时钟推动下根据其值循环判断寄存器的位,从而控制chCtrl。 但按你语句来看,如果寄存器该位的值为1,那么计数器就要停止计数。而停止计数后,就只能判断寄存器的固定位了――这是你的目的吗?即便是这个目的,也要在else前面加一句:countch[]=countch[].q 如果是前一种目的,在AHDL语言里只能这样分开来实现这个功能: countch[]=countch[]+1; when ((countch[] == 0 ) & CHreg[0] )) then chCtrl =VCC else chCtrl =VCC ; when ((countch[] == 1 ) & CHreg[1] )) then chCtrl =VCC else chCtrl =VCC ; .... |
|
|
板凳#
发布于:2004-12-07 12:40
嗯,我就是想根据countch[]的计数值判断相应的寄存器位,若是为1就停止计数,然后输出控制信号,再下一个开始周期再接着计数判断。。。 AHDL不支持chreg[countch[]]这种用法,我用vhdl生成了一个sym,现在解决了。原来我把这种功能放到一个子程序里面,综合的时候总是说我有的控制引脚是无用的,都综合掉了。多谢斑竹!
|
|