推荐答案
测试一下
题目
下列关于initial和always的说法正确的是__________。
A initial只能执行一次
B initial不可以综合,always可以综合
C always只要条件符合即可执行
D initial和always不能同时执行
参考答案与知识点
参考答案
正确答案:A。
A选项:initial块在仿真开始时执行一次,且仅执行一次,之后结束,因此说法正确。
B选项:initial块不可综合,但always块并非全部可综合,例如使用延时控制的always块(如always #5)不可综合,而仅用于仿真的always块(如always @(*))可综合,但B选项说“always可以综合”过于绝对,忽略了不可综合的情况,因此错误。
C选项:always块的执行依赖于敏感列表的触发,并非“只要条件符合”即可执行,这里的“条件”表述模糊,且always块本身是持续运行的循环结构,但内部语句的执行需要特定事件(如边沿或电平变化),因此C错误。
D选项:initial和always在仿真中都是并行运行的,可以同时执行,不存在互斥关系,因此D错误。
综上,仅A正确。
易错点:①混淆initial的不可综合性与always的可综合性,需注意always中可综合与不可综合的区别;②误解always的执行机制,以为其无条件执行;③误以为initial和always存在优先级或互斥关系。
涉及知识点
- initial块特性
- always块特性
- 可综合与不可综合代码
- 仿真并行执行机制
- 敏感列表触发条件