错误(10170):Verilog HDL语法错误,在final_lab.sv(46)文本附近;违约;;期待;完";
您好,我在verilog中遇到以下错误,我不知道为什么我似乎无法解决它。请帮忙 错误:错误(10170):Verilog HDL语法错误在final_lab.sv(46) 近文本“默认”;期待“结束” 代码错误(10170):Verilog HDL语法错误,在final_lab.sv(46)文本附近;违约;;期待;完";,verilog,Verilog,您好,我在verilog中遇到以下错误,我不知道为什么我似乎无法解决它。请帮忙 错误:错误(10170):Verilog HDL语法错误在final_lab.sv(46) 近文本“默认”;期待“结束” 代码 模块最终实验室(时钟50、开关、LED、钥匙、HEX5、HEX4、HEX3、HEX2、HEX1、HEX0); 输入逻辑时钟50; 输入逻辑[6:1]开关; 输入逻辑[3:0]键; 输出逻辑[9:0]LEDR; 输出逻辑[6:0]HEX5、HEX4、HEX3、HEX2、HEX1、HEX0; 逻
模块最终实验室(时钟50、开关、LED、钥匙、HEX5、HEX4、HEX3、HEX2、HEX1、HEX0);
输入逻辑时钟50;
输入逻辑[6:1]开关;
输入逻辑[3:0]键;
输出逻辑[9:0]LEDR;
输出逻辑[6:0]HEX5、HEX4、HEX3、HEX2、HEX1、HEX0;
逻辑[6:1]我们拥有什么;
逻辑复位;
逻辑键一,键三;
分配whatWeHave=6'b000000;
总是用梳子
开始
如果(whatWeHave[6:1]==SW[6:1])
开始
keytree=0;
keyOne=0;
whatWeHave=whatWeHave;
结束
否则如果(什么有[6:1]SW[6:1])
开始
whatWeHave=whatWeHave-1;
keyOne=1;
keytree=0;
结束
其他的
开始
whatWeHave=whatWeHave;
keyOne=0;
keytree=0;
结束
违约
开始
whatWeHave=6'bxxxxxx;
keyOne=1'bx;
键三=1'bx;
结束
结束
正常光一号(.clk(时钟_50),.reset(开关[9]),.L(键三),.R(键零),.NL(发光二极管[2]),.NR(1'b0),.lightOn(发光二极管[1]);
正常光二号(.clk(CLOCK_50),.reset(SW[9]),.L(keytree),.R(keyZero),.NL(LEDR[3]),.NR(LEDR[1]),.lightOn(LEDR[2]);
正常光三级(.clk(CLOCK_50),.reset(SW[9]),.L(keytree),.R(keyZero),.NL(LEDR[4]),.NR(LEDR[2]),.lightOn(LEDR[3]);
普通灯四个(.clk(CLOCK_50),.reset(SW[9]),.L(keytree),.R(keyZero),.NL(LEDR[5]),.NR(LEDR[3]),.lightOn(LEDR[4]);
正常照明5(.clk(时钟_50),.reset(开关[9]),.L(键三),.R(键零),.NL(发光二极管[6]),.NR(发光二极管[4]),.lightOn(发光二极管[5]);
正常灯六个(.clk(时钟_50),.reset(开关[9]),.L(键三),.R(键零),.NL(1'b0),.NR(发光二极管[5]),.lightOn(发光二极管[6]);
端模
在逻辑中使用默认值的位置是不合适的。default关键字通常与case语句一起使用,而不与if-else条件一起使用
在嵌套的if-else中,最终的else(无条件)将类似于default执行。看起来您正在尝试设置两个默认条件。试着修改你的逻辑 这是错误的语法。基本上,我们使用default作为case语句的最后一部分。不能将default与if-else语句一起使用。
只需删除default关键字,然后使用另一个if-else语句或而不是所有的if else语句;您可以在最后一部分中使用带有default关键字的case语句。与前面两个答案相同,if else语句中不存在default。
仔细想想,在default语句之前有一个else语句,它将覆盖以前未涉及的所有情况,然后在case语句中执行default操作。尝试对开始/结束块使用一致的缩进,因为这有助于发现此类问题。
module final_lab (CLOCK_50, SW, LEDR, KEY, HEX5, HEX4, HEX3, HEX2, HEX1,HEX0);
input logic CLOCK_50;
input logic [6:1] SW;
input logic [3:0] KEY;
output logic [9:0] LEDR;
output logic [6:0] HEX5, HEX4, HEX3, HEX2, HEX1, HEX0;
logic [6:1] whatWeHave;
logic reset;
logic keyOne , keyThree;
assign whatWeHave = 6'b000000;
always_comb
begin
if (whatWeHave[6:1] == SW[6:1])
begin
keyThree = 0;
keyOne = 0;
whatWeHave = whatWeHave;
end
else if (whatWeHave[6:1] < SW[6:1])
begin
whatWeHave = whatWeHave+1;
keyThree = 1;
keyOne = 0;
end
else if (whatWeHave[6:1] > SW[6:1])
begin
whatWeHave = whatWeHave-1;
keyOne = 1;
keyThree = 0;
end
else
begin
whatWeHave = whatWeHave;
keyOne = 0;
keyThree = 0;
end
default
begin
whatWeHave = 6'bxxxxxx;
keyOne = 1'bx;
keyThree = 1'bx;
end
end
normalLight one (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(LEDR[2]), .NR(1'b0), .lightOn(LEDR[1]));
normalLight two (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(LEDR[3]), .NR(LEDR[1]), .lightOn(LEDR[2]));
normalLight three (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(LEDR[4]), .NR(LEDR[2]), .lightOn(LEDR[3]));
normalLight four (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(LEDR[5]), .NR(LEDR[3]), .lightOn(LEDR[4]));
normalLightLight five (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(LEDR[6]), .NR(LEDR[4]), .lightOn(LEDR[5]));
normalLight six (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(1'b0), .NR(LEDR[5]), .lightOn(LEDR[6]));
endmodule