你好朋友和专业程序员,我是这个VHDL世界的新手,我有这个问题。 我想这样做:
if counter >= 0 and counter <=95 then
aux_Hs <= '0';
else
aux_Hx <= '1';
end if;
就像这样:
aux_Hs <= (counter >= 0 and counter <=95);
此错误显示:
第73行.aux_Hs的类型与和的类型不兼容。
aux_Hs
是一个信号STD_Logic
。
有哪些方法保存 IF语句?伪“?:”指令?。
提前谢谢你:)
答案 0 :(得分:4)
作为并发代码,没有VHDL-2008:
aux_Hs <= '1' when (counter >= 0 and counter <=95) else '0' ;
使用VHDL-2008:
aux_Hs <= counter ?>= 0 and counter ?<=95 ;
答案 1 :(得分:1)
如果您需要在流程中执行此操作,可以保存一行代码:
aux_Hs <= '0';
if not (counter >= 0 and counter <=95) then
aux_Hx <= '1';
end if;
或者您可以使用VHDL-2008(查找编译器上的开关并记录错误,如果不支持VHDL2008!),它允许在进程内部进行条件分配:
aux_Hs <= '0' when (counter >= 0 and counter <=95) else '1' ;