📄 encoder_8b10b.v
字号:
7'h68 : {i,e,d,c,b,a} = 6'h34;
7'h69 : {i,e,d,c,b,a} = 6'h0b;
7'h6a : {i,e,d,c,b,a} = 6'h15;
7'h6b : {i,e,d,c,b,a} = 6'h0a;
7'h6c : {i,e,d,c,b,a} = 6'h16;
7'h6d : {i,e,d,c,b,a} = 6'h09;
7'h6e : {i,e,d,c,b,a} = 6'h28;
7'h6f : {i,e,d,c,b,a} = 6'h28;
7'h70 : {i,e,d,c,b,a} = 6'h0c;
7'h71 : {i,e,d,c,b,a} = 6'h33;
7'h72 : {i,e,d,c,b,a} = 6'h19;
7'h73 : {i,e,d,c,b,a} = 6'h06;
7'h74 : {i,e,d,c,b,a} = 6'h1a;
7'h75 : {i,e,d,c,b,a} = 6'h05;
7'h76 : {i,e,d,c,b,a} = 6'h24;
7'h77 : {i,e,d,c,b,a} = 6'h24;
7'h78 : {i,e,d,c,b,a} = 6'h1c;
7'h79 : {i,e,d,c,b,a} = 6'h03;
7'h7a : {i,e,d,c,b,a} = 6'h22;
7'h7b : {i,e,d,c,b,a} = 6'h22;
7'h7c : {i,e,d,c,b,a} = 6'h21;
7'h7d : {i,e,d,c,b,a} = 6'h21;
7'h7e : {i,e,d,c,b,a} = 6'h0a;
7'h7f : {i,e,d,c,b,a} = 6'h0a;
endcase
case (ein_dat[4:0])
5'h00 : rd1_part = 1'b1;
5'h01 : rd1_part = 1'b1;
5'h02 : rd1_part = 1'b1;
5'h03 : rd1_part = 1'b0;
5'h04 : rd1_part = 1'b1;
5'h05 : rd1_part = 1'b0;
5'h06 : rd1_part = 1'b0;
5'h07 : rd1_part = 1'b0;
5'h08 : rd1_part = 1'b1;
5'h09 : rd1_part = 1'b0;
5'h0a : rd1_part = 1'b0;
5'h0b : rd1_part = 1'b0;
5'h0c : rd1_part = 1'b0;
5'h0d : rd1_part = 1'b0;
5'h0e : rd1_part = 1'b0;
5'h0f : rd1_part = 1'b1;
5'h10 : rd1_part = 1'b1;
5'h11 : rd1_part = 1'b0;
5'h12 : rd1_part = 1'b0;
5'h13 : rd1_part = 1'b0;
5'h14 : rd1_part = 1'b0;
5'h15 : rd1_part = 1'b0;
5'h16 : rd1_part = 1'b0;
5'h17 : rd1_part = 1'b1;
5'h18 : rd1_part = 1'b1;
5'h19 : rd1_part = 1'b0;
5'h1a : rd1_part = 1'b0;
5'h1b : rd1_part = 1'b1;
5'h1c : rd1_part = 1'b0;
5'h1d : rd1_part = 1'b1;
5'h1e : rd1_part = 1'b1;
5'h1f : rd1_part = 1'b1;
endcase
end
wire disp4 = (!F & !G);
wire disp5 = (F & G);
wire disp6 = ((F ^ G) & K);
wire invert_fj = !(((rd1_part | K) ^ ein_rd) ? disp5 : (disp4 | disp6));
always @(*)
begin
g = (!(!F & !H) & !G) ^ invert_fj;
h = (!H) ^ invert_fj;
end
wire f0,f1,f2,f3,f4;
stratixii_lcell_comb f0_I (
.dataa(!ein_dat[3]),
.datab(!ein_dat[4]),
.datac(!ein_dat[1]),
.datad(!ein_dat[2]),
.datae(!ein_dat[0]),
.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(f0 ));
defparam f0_I .shared_arith = "off";
defparam f0_I .extended_lut = "off";
defparam f0_I .lut_mask = 64'h0224244002242440;
stratixii_lcell_comb f1_I (
.dataa(!ein_rd),
.datab(!ein_dat[7]),
.datac(!ein_dat[6]),
.datad(!ein_dat[5]),
.datae(!kin_ena),
.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(f1 ));
defparam f1_I .shared_arith = "off";
defparam f1_I .extended_lut = "off";
defparam f1_I .lut_mask = 64'h0F03AA590F03AA59;
stratixii_lcell_comb f2_I (
.dataa(!ein_rd),
.datab(!ein_dat[7]),
.datac(!ein_dat[6]),
.datad(!ein_dat[5]),
.datae(!kin_ena),
.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(f2 ));
defparam f2_I .shared_arith = "off";
defparam f2_I .extended_lut = "off";
defparam f2_I .lut_mask = 64'h00F355A600F355A6;
stratixii_lcell_comb f3_I (
.dataa(!f4 ),
.datab(!f0 ),
.datac(!ein_rd),
.datad(!f1 ),
.datae(!f2 ),
.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(f3 ));
defparam f3_I .shared_arith = "off";
defparam f3_I .extended_lut = "off";
defparam f3_I .lut_mask = 64'h7800FF597800FF59;
stratixii_lcell_comb f4_I (
.dataa(!ein_dat[3]),
.datab(!ein_dat[4]),
.datac(!ein_dat[1]),
.datad(!ein_dat[2]),
.datae(!ein_dat[0]),
.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(f4 ));
defparam f4_I .shared_arith = "off";
defparam f4_I .extended_lut = "off";
defparam f4_I .lut_mask = 64'h055E5EE8055E5EE8;
always @(*)
begin
f = f3;
end
wire j0,j1,j2,j3,j4,j5;
stratixii_lcell_comb j0_I (
.dataa(!ein_dat[1]),
.datab(!ein_dat[3]),
.datac(!ein_dat[4]),
.datad(!ein_dat[2]),
.datae(!ein_dat[0]),
.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(j0 ));
defparam j0_I .shared_arith = "off";
defparam j0_I .extended_lut = "off";
defparam j0_I .lut_mask = 64'h117676E8117676E8;
stratixii_lcell_comb j1_I (
.dataa(!ein_dat[1]),
.datab(!ein_dat[3]),
.datac(!ein_dat[4]),
.datad(!ein_dat[2]),
.datae(!ein_dat[0]),
.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(j1 ));
defparam j1_I .shared_arith = "off";
defparam j1_I .extended_lut = "off";
defparam j1_I .lut_mask = 64'h0418182004181820;
stratixii_lcell_comb j2_I (
.dataa(!ein_rd),
.datab(!ein_dat[7]),
.datac(!ein_dat[5]),
.datad(!ein_dat[6]),
.datae(!kin_ena),
.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(j2 ));
defparam j2_I .shared_arith = "off";
defparam j2_I .extended_lut = "off";
defparam j2_I .lut_mask = 64'h5339A6665339A666;
stratixii_lcell_comb j3_I (
.datac(!ein_dat[5]),
.datad(!ein_dat[6]),
.datae(!kin_ena),
.dataa(1'b1),.datab(1'b1),.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(j3 ));
defparam j3_I .shared_arith = "off";
defparam j3_I .extended_lut = "off";
defparam j3_I .lut_mask = 64'hF00F0000F00F0000;
stratixii_lcell_comb j4_I (
.datab(!ein_dat[7]),
.datac(!ein_dat[5]),
.datad(!ein_dat[6]),
.datae(!kin_ena),
.dataa(1'b1),.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(j4 ));
defparam j4_I .shared_arith = "off";
defparam j4_I .extended_lut = "off";
defparam j4_I .lut_mask = 64'h0003000000030000;
stratixii_lcell_comb j5_I (
.dataa(!j0 ),
.datab(!j1 ),
.datac(!j2 ),
.datad(!j3 ),
.datae(!j4 ),
.dataf(1'b1),.datag(1'b1),
.cin(1'b1),.sharein(1'b0),.sumout(),.cout(),.shareout(),
.combout(j5 ));
defparam j5_I .shared_arith = "off";
defparam j5_I .extended_lut = "off";
defparam j5_I .lut_mask = 64'hF07870A6F07870A6;
always @(*)
begin
j = j5;
end
end
endgenerate
always @(posedge clk or posedge rst)
begin
if (rst)
begin
eout_rdreg <= 0;
eout_val <= 0;
eout_dat <= 0;
end
else
begin
eout_val <= 0;
if (ein_ena | kin_ena)
begin
eout_rdreg <= eout_rdcomb;
eout_val <= ein_ena | kin_ena;
eout_dat <= {j,h,g,f,i,e,d,c,b,a};
end
end
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -