以下代码段中的目标是:
比较以压缩数组形式存储的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;
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
所以在上面的代码中,根据我的思考过程,当j = 0时,other_data(16&#39; haabb)将等于my_data [0:1]并导致temp = 1&#39; b1。
测试此设计会给出打包和解包类型之间的非法比较错误。
总而言之,目的是将2Bytes数据与2个1Bytes数据进行比较。任何建议/程序,这是赞赏。
答案 0 :(得分:2)
如果您只想比较两个字节,则无需在打包数组上循环。在我看来,这将起作用并且更加清晰。
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
edaplayground.com上的示例:http://www.edaplayground.com/x/CtZ