wdjh.net
当前位置:首页 >> vhDl whEn othErs >>

vhDl whEn othErs

你将所有的情况都罗列出来就可以不写when others,但是有很多是情况是我们用不着这样做,太费时间了。而且你写上when others也能规避许多错误。

就相当于 if a = "0000" then q

others => '0' 用于对数组中的各个元素赋值‘0’;others => NULL 用于某些语句(例如case语句)中的子句(例如when子句)不做任何赋值。所以,others => '0' 是有赋值操作的,而others => NULL 是没有赋值操作的。

如果没有异常,在程序中应当检查每个命令的成功还是失败,如 BEGIN SELECT ... -- check for ’no data found’ error SELECT ... -- check for ’no data found’ error SELECT ... -- check for ’no data found’ error 这种实现的方法缺点在于错误...

因为VHDL综合器对null语句不敏感,所以不同的VHDL综合器对when others => null的综合结果是一样的。

如果你对case中的所有条件都包含全的话,这句话加不加都可以。 但是如果你没有将全部条件列举出来会报错。 “A value is missing in case.” 你可以写一个简单的测试程序,测一下就知道了:)

synplify不能综合状态机的“when others”状态:我用的是VHDL,编码风格中要求对case语句的使用要做到取值完全覆盖,即要加一个“when others”的判断,用case 来判断状态机的状态,用synplify综合时出warning:OTHERS clause is not synthesized。

LED_STATE_COUNT'0') when (LED_STATE_COUNT=62499) else (LED_STATE_COUNT+1); 是并行信号赋值语句,它本身就相当于一个进程process,因此不能放在进程体中。进程是不能够嵌套的。

【1】你的理解是对的。 请参考《VHDL Handbook》一书的13页,有这样一个例子 v2 := (3 => ‘0’, OTHERS => ‘1’); -- ”1011” 意思是将变量V2的第三位赋值为0,其他赋值为1 【2】欢迎采纳

when others=>seg1seg2

网站首页 | 网站地图
All rights reserved Powered by www.wdjh.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com