IceStorm and PLLs: Solution


I was just trying to convert the example B2 blinky project in the B series user guide to a format that can be built with IceStorm.

I found that I had to tweak the PLL code a bit. Here is the change. Original Lattice code:

wire clk_10mhz;

SB_PLL40_CORE usb_pll_inst (

tweaked to this code:

  wire BYPASS;
  wire RESETB;

  SB_PLL40_CORE usb_pll_inst (

  assign BYPASS = 0;
  assign RESETB = 1;

Hope this helps other IceStorm users!

Cheers, Warren


Good to know, thanks! I’ll update the template to use this method.


It also should work if you use:
1’b1 and 1’b0 instead of 1 and 0.

No need for extra wires.


Gotchya. I have a habit of using plain integers when I should use vectors of the appropriate width. I also want to update the USB bootloader to be able to be synthesized by icestorm.


It’s not really your fault, this should be possible with Verilog, but Yosys did not support it correctly.
But Clifford has fixed it and it should work in next version.
See here