Hi,
Currently working on a project which needs pwm generator, freq counter, soft processor with uart for uploading code(some kind of bootloader). freq counter and pwm generator is done but know i need a very small open source portable soft processor.
It al needs to stay below 1000 LUT's. When using the zealot_small i noticed it uses true dual port block ram for rom, ram and stack. Unfortunately the lattice ice40 doesn't have true dual port block rams, only 2-port block ram as i noticed in the datasheet and when i was synthesizing (not infering correctly, using tons of logic).
zealot_medium doesn't use this dual port configuration, i decided to emulate every instruction i can. When removing all hardware-implemented instructions, and scapping some more logic i got it synthesized at 1175 LUT's, which is still too large.
i saw the zealot_medium uses single port rom and a top-of-stack register and i think that this is the major difference in LUT count.
Any ideas on how to use the zealot_small or zpu_small without true dual port ram and staying around 600, below 700 LUT ?
thx in advance
Just an idea... If you run the ram at twice the frequency of the
core, you can build a 2-port ram out of a 1-port ram.
/ Mr Bear
--
You received this message because you are subscribed to the Google Groups "zylin-zpu" group.
To unsubscribe from this group and stop receiving emails from it, send an email to zylin-zpu+...@googlegroups.com.
To post to this group, send email to zyli...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/zylin-zpu/890bb80d-67bf-4967-84be-4344d9f68410%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Emulated 2-port ram is an old standard method, used in the times when
logic was slow, and rams often quite fast. The idea is to divide the clock
cycle in two phases (periods of a faster clock). Phase A always writes,
Phase B does the reading. Thus it apears as if the ram has two ports.
The way to handle clocks, the mux of the address inputs, and latching
of read data depends on several things, so it is probably not a good idea
unless you are upp to speed in h/w design.
It is sometimes called “emulated dual port”, “emulated 2-port,” or
“pseudo dual-port ram”. Lattice seems to have some support for this,
see pages 22-25 in http://www.latticesemi.com/view_document?document_id=8521
Good luck!
/ MrBear
To view this discussion on the web visit https://groups.google.com/d/msgid/zylin-zpu/52ea2fed-e20e-4d50-b5eb-53b52b498355%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/zylin-zpu/52ea2fed-e20e-4d50-b5eb-53b52b498355%40googlegroups.com .
Well the the ice40 ultralight is currently the smallest smallest fpga available(1.4mm x 1.4mm). The smallest uC i can find is the KL03 from freescale measuring 1.6mm x 2.0mm. Size need to be as small as possible because of the application (body prosthesis). Although the fpga will probably dissipate more power that is something to evaluate after.
as with true dual-port ram, two address ports are available for read or write operation (two read/write ports). In this mode, you can write to or read from the address of port A or port B, and the data read is shown at the output port with respect to the read address port. with simple dual port reading is done through one port and writing through the other.
I might see it wrong but simple dual port (lattice defines this as there dual port ram) is not what i need with the zpu because stack operation require writing as wel as reading through one port. The other one is used for fetching instructions and writing data to the ram.
Would someone correct me if i'm wrong ? i'm having a hard time understanding this soft processor :p
--
You received this message because you are subscribed to the Google Groups "zylin-zpu" group.
To unsubscribe from this group and stop receiving emails from it, send an email to zylin-zpu+...@googlegroups.com.
To post to this group, send email to zyli...@googlegroups.com .
To view this discussion on the web visit https://groups.google.com/d/msgid/zylin-zpu/6b049aaa-1452-4d03-a928-79d9ee7f3e03%40googlegroups.com .