CPLD development board package v1.1

Package v1.1 for the CPLD development boards is now available for download.  It includes:

Programming instructions for the Bus Pirate and Bus Blaster have been freshened. An updated ISE (X)SVF export tutorial will help you get started with your own projects.

Get the CoolRunner-II development board for $15 and XC9572XL dev-board  for $15.

Get a Bus Blaster v2 for $34.95 only at Seeed Studio. Hurry, the first batch is nearly gone!

Get the Bus Pirate for $30, including world-wide shipping. Also available from our friendly distributors.

Join the Conversation

5 Comments

  1. A brief comment on your verilog examples (puts on verilog implementor’s hat):

    always begin
    ….
    end

    may synthesize OK but will likely break during simulation because it will loop in 0-time and simulation time will not advance

    always begin
    LED = BUTTON;
    end

    suffers the same problem but also (in some synthesis tools) will fail or give errors you need to include all the stuff on the RHS of expression in a trigger list:

    always @(BUTTON) begin
    LED = BUTTON;
    end

    or:

    always @(*) begin
    LED = BUTTON;

    end

    (best use the last construct if your compilers support it)

    1. Thanks for sharing your experience. You are correct that sims don’t work, we didn’t try on these simple demos.

      The always@(*) construct didn’t work with the ISE compiler, but I did add *(BUTTON) to the second and third demos and wiki examples. The LED-only example stimulates OK without an @(*) – it shows the values correctly without a time dimension, which I suppose is exactly what happens…

      I would use wires and assign for these simple designs (see the alternate examples), but we wanted to show the always block.

      1. always@(*) was new in V200x (it was my idea :-) I’m surprised there are people who still haven’t implemented it now 10 years later – it makes avoiding those synopsis accidental latches so much easier.

        The always statement in the first case is, IMHO, not a good example for a beginner and should be removed (because an always statement without something to constrain it will always hang a simulator) – but in the other cases is perfectly valid (and yes you should show them

    1. It is, that’s one of my favorite parts of the design :) It only has a XC2C32A though, so the demos need to be recompiled.

      The next minor revision of the BBv2 will have a button and LED like the DEV boards, so it can work as a stand-alone dev board too.

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.