hxlk
驱动牛犊
驱动牛犊
  • 注册日期2002-04-01
  • 最后登录2005-01-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1611回复:2

菜鸟求助:AHDL语言怎么把组转换成整数?

楼主#
更多 发布于:2004-12-01 15:26
if CHreg[countch[]] then
  chCtrl =VCC;
else
  countch[]=countch[]+1;
  chCtrl =GND;
end if;
我想根据countch[]的值判断相应的寄存器位,但是AHDL不支持这样用。多谢!
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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 ;

....



(DEEP + BROAD + SIMPLE) & delicate
hxlk
驱动牛犊
驱动牛犊
  • 注册日期2002-04-01
  • 最后登录2005-01-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-07 12:40
嗯,我就是想根据countch[]的计数值判断相应的寄存器位,若是为1就停止计数,然后输出控制信号,再下一个开始周期再接着计数判断。。。 AHDL不支持chreg[countch[]]这种用法,我用vhdl生成了一个sym,现在解决了。原来我把这种功能放到一个子程序里面,综合的时候总是说我有的控制引脚是无用的,都综合掉了。多谢斑竹!
游客

返回顶部