Line 203... |
Line 203... |
|
|
reg [1:0] pmatch;
|
reg [1:0] pmatch;
|
reg dmatch, // Match, on clock 'd'
|
reg dmatch, // Match, on clock 'd'
|
vaddr; // Was the address valid then?
|
vaddr; // Was the address valid then?
|
reg [(DW-1):0] cword;
|
reg [(DW-1):0] cword;
|
reg [(TBITS-1):0] caddr, daddr, maddr;
|
reg [(TBITS-1):0] caddr, maddr;
|
always @(posedge i_clk)
|
always @(posedge i_clk)
|
begin
|
begin
|
cword <= compression_tbl[rd_addr];
|
cword <= compression_tbl[rd_addr];
|
caddr <= rd_addr;
|
caddr <= rd_addr;
|
|
|
dmatch <= (cword == { r_word[32:31], r_word[29:0] });
|
dmatch <= (cword == { r_word[32:31], r_word[29:0] });
|
daddr <= caddr;
|
|
maddr <= tbl_addr - caddr;
|
maddr <= tbl_addr - caddr;
|
|
|
vaddr <= ( {1'b0, caddr} < {tbl_filled, tbl_addr} )
|
vaddr <= ( {1'b0, caddr} < {tbl_filled, tbl_addr} )
|
&&(caddr != tbl_addr);
|
&&(caddr != tbl_addr);
|
end
|
end
|
Line 248... |
Line 247... |
zmatch <= (maddr == 10'h1);
|
zmatch <= (maddr == 10'h1);
|
hmatch <= (maddr < 10'd10);
|
hmatch <= (maddr < 10'd10);
|
end
|
end
|
|
|
// Did we find something?
|
// Did we find something?
|
wire [(TBITS-1):0] adr_diff;
|
|
wire [9:0] adr_dbld;
|
wire [9:0] adr_dbld;
|
wire [2:0] adr_hlfd;
|
wire [2:0] adr_hlfd;
|
assign adr_diff = matchaddr;
|
|
assign adr_hlfd = matchaddr[2:0]- 3'd2;
|
assign adr_hlfd = matchaddr[2:0]- 3'd2;
|
assign adr_dbld = matchaddr- 10'd10;
|
assign adr_dbld = matchaddr- 10'd10;
|
reg [(CW-1):0] r_cword; // Record our result
|
reg [(CW-1):0] r_cword; // Record our result
|
always @(posedge i_clk)
|
always @(posedge i_clk)
|
begin
|
begin
|