fuzzers: Fix MULT18X18D enable config bits Signed-off-by: David Shah <dave@ds0.me>
diff --git a/database b/database index d960350..41759ec 160000 --- a/database +++ b/database
@@ -1 +1 @@ -Subproject commit d9603500f4a4df5b643c790d0e44bf7c67b755d0 +Subproject commit 41759ec4c83a34522f36f476108510f8e9eedd24
diff --git a/fuzzers/ECP5/073-mult18_config/dspconfig.ncl b/fuzzers/ECP5/073-mult18_config/dspconfig.ncl index a7e549f..9677528 100644 --- a/fuzzers/ECP5/073-mult18_config/dspconfig.ncl +++ b/fuzzers/ECP5/073-mult18_config/dspconfig.ncl
@@ -13,7 +13,7 @@ ${comment} logical { ${comment} cellmodel-name MULT18; ${comment} program "MODE:${mode} " - ${comment} "${mode}:::${settings}"; + ${comment} "${mode}:::${settings}:CLK0=#SIG,CLK1=#SIG,CLK2=#SIG,CLK3=#SIG,CE0=#INV,CE1=#INV,CE2=#INV,CE3=#INV,RST0=#INV,RST1=#INV,RST2=#INV,RST3=#INV"; ${comment} } ${comment} site ${loc}; ${comment} }
diff --git a/fuzzers/ECP5/073-mult18_config/fuzzer.py b/fuzzers/ECP5/073-mult18_config/fuzzer.py index 28b30d3..ec89ca4 100644 --- a/fuzzers/ECP5/073-mult18_config/fuzzer.py +++ b/fuzzers/ECP5/073-mult18_config/fuzzer.py
@@ -44,8 +44,20 @@ empty_bitfile = cfg.build_design(cfg.ncl, {}) cfg.ncl = "dspconfig.ncl" + def rclk(x): + return "CLK3" if x == "COVER_CLK3" else "NONE" + nonrouting.fuzz_enum_setting(cfg, "{}.MODE".format(mult), ["NONE", "MULT18X18D"], - lambda x: get_substs(settings={}, mode=x), empty_bitfile, False) + lambda x: get_substs(settings={"GSR": "ENABLED", + "REG_INPUTA_RST": "RST3", "REG_INPUTB_RST": "RST3", "REG_INPUTC_RST": "RST3", + "REG_PIPELINE_RST": "RST3", "REG_OUTPUT_RST": "RST3", + "REG_INPUTA_CLK": rclk(x), "REG_INPUTB_CLK": rclk(x), "REG_INPUTC_CLK": rclk(x), + "REG_PIPELINE_CLK": rclk(x), "REG_OUTPUT_CLK": rclk(x), + "REG_INPUTA_CE": "CE3", "REG_INPUTB_CE": "CE3", "REG_INPUTC_CE": "CE3", + "REG_PIPELINE_CE": "CE3", "REG_OUTPUT_CE": "CE3", + "SOURCEB_MODE": ("B_C_DYNAMIC" if x == "COVER_SRC" else "B_SHIFT") + }, mode=("NONE" if x == "NONE" else "MULT18X18D")), + empty_bitfile, False, ["COVER_CLK3", "COVER_SRC"]) regs = ["INPUTA", "INPUTB", "INPUTC", "PIPELINE", "OUTPUT"] clks = ["NONE", "CLK0", "CLK1", "CLK2", "CLK3"]
diff --git a/minitests/dsp/mult1.v b/minitests/dsp/mult1.v new file mode 100644 index 0000000..446d648 --- /dev/null +++ b/minitests/dsp/mult1.v
@@ -0,0 +1,36 @@ +module dut( + input clock, reset, + input din_valid, + input [31:0] din, + input dout_ready, + output dout_valid, + output [31:0] dout +); + (* LOC="MULT18_R46C52" *) + MULT18X18D dsp( + .A17(1'b0), .A16(1'b0), + .A15(din[15]), .A14(din[14]), .A13(din[13]), .A12(din[12]), .A11(din[11]), .A10(din[10]), .A9(din[9]), .A8(din[8]), + .A7(din[7]), .A6(din[6]), .A5(din[5]), .A4(din[4]), .A3(din[3]), .A2(din[2]), .A1(din[1]), .A0(din[0]), + + .B17(1'b0), .B16(1'b0), + .B15(din[31]), .B14(din[30]), .B13(din[29]), .B12(din[28]), .B11(din[27]), .B10(din[26]), .B9(din[25]), .B8(din[24]), + .B7(din[23]),.B6(din[22]), .B5(din[21]), .B4(din[20]), .B3(din[19]), .B2(din[18]), .B1(din[17]), .B0(din[16]), + + .C17(1'b0), .C16(1'b0), + .C15(1'b0), .C14(1'b0), .C13(1'b0), .C12(1'b0), .C11(1'b0), .C10(1'b0), .C9(1'b0), .C8(1'b0), + .C7(1'b0), .C6(1'b0), .C5(1'b0), .C4(1'b0), .C3(1'b0), .C2(1'b0), .C1(1'b0), .C0(1'b0), + + .SIGNEDA(1'B0), + .SIGNEDB(1'B0), + .SOURCEA(1'B0), + .SOURCEB(1'B0), + + .P31(dout[31]), .P30(dout[30]), .P29(dout[29]), .P28(dout[28]), .P27(dout[27]), .P26(dout[26]), .P25(dout[25]), .P24(dout[24]), + .P23(dout[23]), .P22(dout[22]), .P21(dout[21]), .P20(dout[20]), .P19(dout[19]), .P18(dout[18]), .P17(dout[17]), .P16(dout[16]), + .P15(dout[15]), .P14(dout[14]), .P13(dout[13]), .P12(dout[12]), .P11(dout[11]), .P10(dout[10]), .P9(dout[9]), .P8(dout[8]), + .P7(dout[7]), .P6(dout[6]), .P5(dout[5]), .P4(dout[4]), .P3(dout[3]), .P2(dout[2]), .P1(dout[1]), .P0(dout[0]) + ); + + + assign dout_valid = din_valid; +endmodule
diff --git a/minitests/dsp/mult1n.ncl b/minitests/dsp/mult1n.ncl new file mode 100644 index 0000000..ba9b2fe --- /dev/null +++ b/minitests/dsp/mult1n.ncl
@@ -0,0 +1,26 @@ +::FROM-WRITER; +// designname: dut +// Creation time stamp: 02/09/19 17:09:09 +design dut +{ + device + { + architecture sa5p00; + device LFE5U-25F; + package CABGA381; + performance "8"; + } + + comp dsp + { + + logical + { + cellmodel-name MULT18; + program "MODE:MULT18X18D " + "MULT18X18D:::"; + } + site MULT18_R13C5; + } + +}