// 显示输入的密码if (delete_count == 2'b00 && password_count > 0) begin // 将输入的密码存储到display寄存器中 display <= {input_password,4'b0000}[((count4)+3):(count4)]; count <= count + 2'b01; last_password_count <= password_count;end else if (delete_count == 2'b01 && last_password_count > 0) begin // 删除输入的密码 display <= display-4'b0001; count <= count - 2'b01; last_password_count <= last_password_count - 1;end; Error (10170): Verilog HDL syntax error at keshe9.v(60) near text "["; expecting ";"还这个错误改完之后的代码
时间: 2023-07-15 17:14:18 浏览: 89
你需要在 `display` 的赋值语句中,将 `{input_password,4'b0000}` 改为 `{input_password,4'b0000}[((count4)+3):(count4)]`,即加上一个索引操作。同时,在第一行的 `if` 语句中,也需要加上一个分号来结束该语句。修改后的代码如下:
```
// 显示输入的密码
if (delete_count == 2'b00 && password_count > 0) begin
// 将输入的密码存储到display寄存器中
display <= {input_password,4'b0000}[((count4)+3):(count4)];
count <= count + 2'b01;
last_password_count <= password_count;
end else if (delete_count == 2'b01 && last_password_count > 0) begin
// 删除输入的密码
display <= display-4'b0001;
count <= count - 2'b01;
last_password_count <= last_password_count - 1;
end;
```
相关问题
// 显示输入的密码if (delete_count == 2'b00 && password_count > 0) begin // 将输入的密码存储到display寄存器中 display <= {input_password,4'b0000}[(count4)+3:(count4)]; count <= count + 2'b01; last_password_count <= password_count;end else if (delete_count == 2'b01 && last_password_count > 0) begin // 删除输入的密码 display <= display-4'b0001; count <= count - 2'b01; last_password_count <= last_password_count - 1;end; // 加入分号 Error (10170): Verilog HDL syntax error at keshe9.v(60) near text "["; expecting ";"这个错误改完之后的代码
如果你想在Verilog中使用花括号来创建一个选择器,你需要在使用选择器前加上一个反斜杠,如下所示:
```
// 显示输入的密码
if (delete_count == 2'b00 && password_count > 0) begin
// 将输入的密码存储到display寄存器中
display <= {input_password,4'b0000}[((count4)+3):(count4)];
count <= count + 2'b01;
last_password_count <= password_count;
end else if (delete_count == 2'b01 && last_password_count > 0) begin
// 删除输入的密码
display <= display-4'b0001;
count <= count - 2'b01;
last_password_count <= last_password_count - 1;
end;
```
这样,Verilog就会将花括号视为选择器,而不是一个新的语法结构。
// 显示输入的密码 if (delete_count == 2'b00 && password_count > 0) begin // 将输入的密码存储到display寄存器中 display <= {input_password,4'b0000}[(count4)+3:(count4)]; count <= count + 2'b01;last_password_count <= password_count; end else if (delete_count == 2'b01 && last_password_count > 0) begin // 删除输入的密码 display <= display-4'b0001; count <= count - 2'b01; last_password_count <= last_password_count - 1; end;// Error (10170): Verilog HDL syntax error at keshe9.v(60) near text "["; expecting ";"还是这个错误改了之后的代码是什么
你需要在 `display` 寄存器的赋值语句中加入一个分号,代码如下所示:
```
// 显示输入的密码
if (delete_count == 2'b00 && password_count > 0) begin
// 将输入的密码存储到display寄存器中
display <= {input_password,4'b0000}[(count4)+3:(count4)];
count <= count + 2'b01;
last_password_count <= password_count;
end else if (delete_count == 2'b01 && last_password_count > 0) begin
// 删除输入的密码
display <= display-4'b0001;
count <= count - 2'b01;
last_password_count <= last_password_count - 1;
end; // 加入分号
```
这样就可以解决 Verilog HDL syntax error at keshe9.v(60) near text "["; expecting ";" 的问题了。
阅读全文