推荐答案
测试一下
题目
对于信号定义语句:reg[0:4]always,a;,说法错误的是:
A.bit定义顺序应该从高到低;
B.信号定义为reg型,只能使用在时序电路的赋值中;
C.每个信号应单独用一行来声明;
D.不能使用关键字定义信号名;
参考答案与知识点
参考答案
正确答案是B。解析:选项A:Verilog中向量声明可以采用[高:低]或[低:高]两种方式,[0:4]表示低位在左、高位在右,语法合法,但通常建议从高到低以保持一致性,并非错误。选项B:reg型变量既可以用于时序逻辑(如always@(posedge clk)),也可以用于组合逻辑(如always@(*)),其区别在于赋值方式(阻塞或非阻塞),而非仅用于时序电路,因此B说法错误。选项C:Verilog允许在一行中声明多个信号,使用逗号分隔,如“reg a, b;”,虽然编码规范常建议每行一个信号以便于阅读,但语法上并非强制,因此该说法不严谨但并非绝对错误。选项D:always是Verilog关键字,不能用作信号名,该语句试图声明名为“always”的变量,属于语法错误,因此D说法正确。综合各选项,唯一错误的表述是B。
涉及知识点
- reg型变量可同时用于组合和时序逻辑
- Verilog关键字不能用作标识符
- 向量位序可高到低或低到高
- 一行可声明多个信号