📄 bp2_decoder.v
字号:
module BP2_decoder(range_out, offset_out, bin_3, range_from_BP1, offset_from_BP1, range_from_RB2,
offset_from_RB2, bin_2, bin_1, dec_mode, readReg, total_used_bins);
output [8:0] range_out;
output [8:0] offset_out;
output bin_3;
reg [8:0] range_out;
reg [8:0] offset_out;
reg bin_3;
input [8:0] range_from_BP1;
input [8:0] offset_from_BP1;
input [8:0] range_from_RB2;
input [8:0] offset_from_RB2;
input bin_2; //bypass decoder 1 output bin
input bin_1; //normal decoder 2 output bin
input [2:0] dec_mode;
input [15:0] readReg;
input [3:0] total_used_bins;
reg [8:0] range_new;
reg [8:0] offset_new;
always @(range_from_BP1 or offset_from_BP1 or range_from_RB2 or offset_from_RB2 or
bin_2 or bin_1 or dec_mode or readReg or total_used_bins)
begin
if(((dec_mode == 0) && (bin_1 == 0)) || ((dec_mode == 1) && (bin_2 == 1)))
begin
if((dec_mode == 0) && (bin_1 == 0)) //normal decoing process, sign
begin
range_new = range_from_RB2;
offset_new = offset_from_RB2;
offset_new = offset_new << 1;
offset_new[0] = readReg[total_used_bins];
end
else //bypass decoding, prefix
begin
range_new = range_from_BP1;
offset_new = offset_from_BP1;
offset_new = offset_new << 1;
offset_new[0] = readReg[1]; //cause readReg[0] havn't been take out
end
if(offset_new < range_new)
begin
bin_3 = 0;
end
else
begin
bin_3 = 1;
offset_new = offset_new - range_new;
end
range_out = range_new;
offset_out = offset_new;
end
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -