Arrays 在Verilog中将数组的一部分分配给一个数字时遇到了问题

Arrays 在Verilog中将数组的一部分分配给一个数字时遇到了问题,arrays,verilog,quartus,Arrays,Verilog,Quartus,这是我在操作过程中遇到的错误。虽然我找不到解决方案或问题,但它似乎应该可以工作。因为您定义的read\u reg\u 1没有类型,所以默认情况下,编译器假定它是wire,而不是reg,所以您不能使用 input [31:0] instruction; output [4:0] read_reg_1; read_reg_1 <= instruction[6:10]; Error (10170): Verilog HDL syntax error at mips_fetch.v(8) ne

这是我在操作过程中遇到的错误。虽然我找不到解决方案或问题,但它似乎应该可以工作。

因为您定义的
read\u reg\u 1
没有类型,所以默认情况下,编译器假定它是
wire
,而不是
reg
,所以您不能使用

input [31:0] instruction;
output [4:0] read_reg_1;

read_reg_1 <= instruction[6:10];
Error (10170): Verilog HDL syntax error at mips_fetch.v(8) near text "<=";  expecting ".", or "("
input wire [31:0] instruction;
output reg [4:0]  read_reg_1;

always @*
    read_reg_1 = instruction[6:10];
input  wire [31:0] instruction;
output wire [4:0]  read_reg_1;

assign read_reg_1 = instruction[6:10];
input wire [31:0] instruction;
output reg [4:0]  read_reg_1;

always @(posedge clk)
    read_reg_1 <= instruction[6:10];