Verilog中压缩阵列与非压缩阵列的比较
以下代码片段的目标是: 将以压缩数组形式存储的2字节数据(2个位置,每个位置1字节)与以非压缩方式存储的2字节数据进行比较Verilog中压缩阵列与非压缩阵列的比较,verilog,Verilog,以下代码片段的目标是: 将以压缩数组形式存储的2字节数据(2个位置,每个位置1字节)与以非压缩方式存储的2字节数据进行比较 module byte_design ( input wire clk, input wire [7:0] my_data [1:0], input wire [15:0] other_data, output reg temp ); integer j; assign my_data[0] = 8'haa; assign my_data[1] = 8'hbb;
module byte_design (
input wire clk,
input wire [7:0] my_data [1:0],
input wire [15:0] other_data,
output reg temp
);
integer j;
assign my_data[0] = 8'haa;
assign my_data[1] = 8'hbb;
assign other_data = 16'haabb;
always @ (posedge clk) begin
for ( j = 0; j < 2 ; j = j+1 ) begin
if ( other_data == my_data [j+:1]) begin
temp <= 1'b1;
end
else begin
temp <= 1'b0;
end
end
end
endmodule
模块字节\u设计(
输入线时钟,
输入导线[7:0]我的_数据[1:0],
输入线[15:0]其他_数据,
输出调节温度
);
整数j;
分配我的_数据[0]=8'haa;
分配我的_数据[1]=8'hbb;
分配其他_数据=16'haabb;
始终@(posedge clk)开始
对于(j=0;j<2;j=j+1)开始
如果(其他_数据==我的_数据[j+:1])开始
temp如果只想比较两个字节,则无需在压缩数组上循环。在我看来,这将起作用,而且更加清晰
module byte_design (
input wire clk,
input wire [7:0] my_data [1:0],
input wire [15:0] other_data,
output reg temp
);
assign temp = ({my_data[1], my_data[0]} == other_data);
endmodule
EDAPlayde.com上的示例:感谢您的回复。您给出的示例适用于2字节。在我这方面,更大的画面涉及循环n个字节,并将其与2个字节进行比较。因此,我能够使用{my_data[j],my_data[j+1]}逻辑将其扩展到n个字节。