def __init__(self, platform):
     platform.toolchain.bitstream_commands.extend([
         "set_property BITSTREAM.GENERAL.COMPRESS True [current_design]",
         "set_property BITSTREAM.CONFIG.UNUSEDPIN Pullnone [current_design]",
     ])
     self.submodules.j2s0 = j2s0 = JTAG2SPI()
     self.submodules.j2s1 = j2s1 = JTAG2SPI(platform.request("spiflash"))
     di = mg.Signal(4)
     self.comb += mg.Cat(j2s0.mosi.i, j2s0.miso.i).eq(di)
     self.specials += [
             mg.Instance("BSCANE2", p_JTAG_CHAIN=1,
                 o_SHIFT=j2s0.jtag.shift, o_SEL=j2s0.jtag.sel,
                 o_CAPTURE=j2s0.jtag.capture,
                 o_DRCK=j2s0.jtag.tck,
                 o_TDI=j2s0.jtag.tdi, i_TDO=j2s0.jtag.tdo),
             mg.Instance("BSCANE2", p_JTAG_CHAIN=2,
                 o_SHIFT=j2s1.jtag.shift, o_SEL=j2s1.jtag.sel,
                 o_CAPTURE=j2s1.jtag.capture,
                 o_DRCK=j2s1.jtag.tck,
                 o_TDI=j2s1.jtag.tdi, i_TDO=j2s1.jtag.tdo),
             mg.Instance("STARTUPE3", i_GSR=0, i_GTS=0,
                 i_KEYCLEARB=0, i_PACK=1,
                 i_USRDONEO=1, i_USRDONETS=1,
                 i_USRCCLKO=mg.Mux(j2s0.clk.oe, j2s0.clk.o, j2s1.clk.o),
                 i_USRCCLKTS=~(j2s0.clk.oe | j2s1.clk.oe),
                 i_FCSBO=j2s0.cs_n.o, i_FCSBTS=~j2s0.cs_n.oe,
                 o_DI=di,
                 i_DO=mg.Cat(j2s0.mosi.o, j2s0.miso.o, 0, 0),
                 i_DTS=mg.Cat(~j2s0.mosi.oe, ~j2s0.miso.oe, 1, 1))
     ]
     platform.add_period_constraint(j2s0.jtag.tck, 6)
     platform.add_period_constraint(j2s1.jtag.tck, 6)
 def __init__(self, platform):
     platform.toolchain.bitstream_commands.extend([
         "set_property BITSTREAM.GENERAL.COMPRESS True [current_design]",
         "set_property BITSTREAM.CONFIG.UNUSEDPIN Pullnone [current_design]"
     ])
     self.submodules.j2s = j2s = JTAG2SPI(platform.request("spiflash"))
     # clk = mg.Signal()
     self.specials += [
             mg.Instance(
                 "BSCANE2", p_JTAG_CHAIN=1,
                 o_SHIFT=j2s.jtag.shift, o_SEL=j2s.jtag.sel,
                 o_CAPTURE=j2s.jtag.capture,
                 o_DRCK=j2s.jtag.tck,
                 o_TDI=j2s.jtag.tdi, i_TDO=j2s.jtag.tdo),
             mg.Instance(
                 "STARTUPE2", i_CLK=0, i_GSR=0, i_GTS=0,
                 i_KEYCLEARB=0, i_PACK=1,
                 i_USRCCLKO=j2s.clk.o, i_USRCCLKTS=~j2s.clk.oe,
                 i_USRDONEO=1, i_USRDONETS=1),
             # mg.Instance("BUFG", i_I=clk, o_O=j2s.jtag.tck)
     ]
     platform.add_period_constraint(j2s.jtag.tck, 6)
     try:
         self.comb += [
                 platform.request("user_sma_gpio_p").eq(j2s.cs_n.i),
                 platform.request("user_sma_gpio_n").eq(j2s.clk.o),
                 platform.request("user_sma_clock_p").eq(j2s.mosi.o),
                 platform.request("user_sma_clock_n").eq(j2s.miso.i),
         ]
     except mb.ConstraintError:
         pass
示例#3
0
 def __init__(self, platform):
     platform.toolchain.bitstream_commands.extend([
         "set_property BITSTREAM.GENERAL.COMPRESS True [current_design]",
         "set_property BITSTREAM.CONFIG.UNUSEDPIN Pullnone [current_design]"
     ])
     self.submodules.j2s = j2s = JTAG2SPI(platform.request("spiflash"))
     self.specials += [
         mg.Instance("BSCANE2",
                     p_JTAG_CHAIN=1,
                     o_SHIFT=j2s.jtag.shift,
                     o_SEL=j2s.jtag.sel,
                     o_CAPTURE=j2s.jtag.capture,
                     o_TCK=j2s.jtag.tck,
                     o_TDI=j2s.jtag.tdi,
                     i_TDO=j2s.jtag.tdo),
         mg.Instance("STARTUPE2",
                     i_CLK=0,
                     i_GSR=0,
                     i_GTS=0,
                     i_KEYCLEARB=0,
                     i_PACK=1,
                     i_USRCCLKO=j2s.clk.o,
                     i_USRCCLKTS=~j2s.clk.oe,
                     i_USRDONEO=1,
                     i_USRDONETS=1)
     ]
 def __init__(self, platform):
     platform.toolchain.bitgen_opt += " -g compress -g UnusedPin:Pullup"
     self.submodules.j2s = j2s = JTAG2SPI(platform.request("spiflash"))
     self.specials += [
             mg.Instance(
                 self.macro,
                 o_SHIFT=j2s.jtag.shift, o_SEL1=j2s.jtag.sel,
                 o_CAPTURE=j2s.jtag.capture,
                 o_DRCK1=j2s.jtag.tck,
                 o_TDI=j2s.jtag.tdi, i_TDO1=j2s.jtag.tdo,
                 i_TDO2=0),
     ]
     platform.add_period_constraint(j2s.jtag.tck, 6)
示例#5
0
 def __init__(self, platform):
     platform.toolchain.bitgen_opt += " -g compress -g UnusedPin:Pullup"
     self.submodules.j2s = j2s = JTAG2SPI(platform.request("spiflash"))
     self.specials += [
         mg.Instance("BSCAN_SPARTAN6",
                     p_JTAG_CHAIN=1,
                     o_SHIFT=j2s.jtag.shift,
                     o_SEL=j2s.jtag.sel,
                     o_CAPTURE=j2s.jtag.capture,
                     o_TCK=j2s.jtag.tck,
                     o_TDI=j2s.jtag.tdi,
                     i_TDO=j2s.jtag.tdo),
     ]
 def __init__(self, platform):
     platform.toolchain.bitgen_opt += " -g compress -g UnusedPin:Pullup"
     self.submodules.j2s = j2s = JTAG2SPI(platform.request("spiflash"))
     # clk = mg.Signal()
     self.specials += [
             mg.Instance(
                 "BSCAN_SPARTAN6", p_JTAG_CHAIN=1,
                 o_SHIFT=j2s.jtag.shift, o_SEL=j2s.jtag.sel,
                 o_CAPTURE=j2s.jtag.capture,
                 o_DRCK=j2s.jtag.tck,
                 o_TDI=j2s.jtag.tdi, i_TDO=j2s.jtag.tdo),
             # mg.Instance("BUFG", i_I=clk, o_O=j2s.jtag.tck)
     ]
     platform.add_period_constraint(j2s.jtag.tck, 6)