有关VHDL的if语句嵌套的问题
大家好,我是刚开始工作的新手,做系统里的一些fpga小应用编程,半年不到,所以经验不够,老板基本也懂 就靠我大学水平在摸索,现在有个问题如下:
我有一个输出信号counter同时对两个输入型号敏感,分别是一个频率较高的clock信号和一个平率为clock 1/1000数量及的慢平率信号frequency, 两个都需要上升沿触发,clock触发计数加一,frequency触发复位0。
如果用
if(freq'event and freq='1')then
cnt <=(other=> '0');
elsif(clk'event and clk='1')then
cnt <=cnt+1;
end if;
这样不会报错 但是else那句不会执行,报警告cnt没用:(
如果用嵌套:
if(clk'event and clk='1')then
if(freq'event and freq='1')then
cnt <=(other=> '0');
else cnt <=cnt+1:
end if;
end if;
结果是 freq和cnt都报没有用,
我知道大概原因是触发器不能同时对两个上升沿信号敏感,但是我得模块功能就是这样要求的,各位有其他的点子么?
先谢过 只要给我思路 不用源码
发表时间:2005年8月17日4:21:25