jamesbowman / swapforth

Swapforth is a cross-platform ANS Forth
BSD 3-Clause "New" or "Revised" License
279 stars 56 forks source link

Converting j1a to use ICEbreaker #86

Closed arblake closed 10 months ago

arblake commented 10 months ago

Hi, I am trying to adapt J1a to the Icebreaker board which uses the ICE40 UP5K chip. This is the error: ERROR: Cell 'pclk$sb_io' cannot be bound to bel 'X7/Y0/io0' since it is already bound to cell '_hdr1.io[5]._io'

RGD2 commented 10 months ago

Copy the j1a.pcf file to a new named one specific to the board you’re using, and do similar renames throughout the Makefiles to generate a new build using that new pin constraint file: every different board needs a different one.

The error is from trying to assign two signals to the same physical pin. And you shouldn’t fix it by changing the original file, which is for the icestick. You can look at what I did for the j1a-8k: basically you could copy all the Makefile entries for that, just changing “8k” for “up5k”, but you’ll need to delete all the specific PIN numbers after copying the PCF, then read through your board’s schematic to put the right assignments in for your board.

-- Remy

On Fri, 12 Jan 2024 at 7:26 pm, Adrian Blake @.***> wrote:

Hi, I am trying to adapt J1a to the Icebreaker board which uses the ICE40 UP5K chip. This is the error: ERROR: Cell 'pclk$sb_io' cannot be bound to bel 'X7/Y0/io0' since it is already bound to cell '_hdr1.io[5]._io'

— Reply to this email directly, view it on GitHub https://github.com/jamesbowman/swapforth/issues/86, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADXT4GCPZBPIKKGQZABNIE3YODXR5AVCNFSM6AAAAABBXX46HWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGA3TQMZSGE2DIMQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

arblake commented 10 months ago

Thanks for your help. I am learning by doing ...... and failing, but slow progress. The two devices are quite different.

arblake commented 10 months ago

It all builds and I can upload to my device. I connect to a serial port and there is "communication" but it looks like the baud rate is wrong. uart.v uses a clock, using the variable clk. clk is generated by the PLL in my main file j1aup5k.v and it is 40MHz but the uart.v has comments about the 12MHz hardware clock. thus I am confused.

arblake commented 10 months ago

Success, I can get an " ok " prompt and " words" lists the words. BUT 1 2 + . only gives ok prompt no answer. I can only communicate using GTK term. The suggested shell.py script does not talk to the serial port and it is not a permissions problem.