-
Notifications
You must be signed in to change notification settings - Fork 240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add examples #59
Add examples #59
Conversation
First of all: great work! 👍
I am still looking through your changes... So maybe this question will resolve. Anyway, where is the actual difference between
I struggle with descriptions like "small configuration" because they are very relative in terms of the actual use case. In contrast, i think the description "minimal configuration" is fine because you know what you'll get 😉
Maybe we should remove
Don' worry too much about that 😄 You already did a great job. 👍 By the way... Isn't it possible to include "all VHDL files" from |
Agree. First, I named them
I'm not sure about
It should. I did not try. I used BTW, I can confirm that the Small example works on the Fomu by connecting gpio_o(0) to one of the RGB drivers. That is, the bootloader works. Now I need to adapt Minimal so that I get the same result. Then, I will update this PR. |
Tanks for clearing that. I like that approach 👍
I feel you. I'm even worse giving things a name... Since we had this talk about "application-specific" setup (#42 (reply in thread)) I thought about creating some exemplary templates (now that would be in
How about
It's not urgent at all. Your are right, let's focus on the important things.
Good to hear! 🚀 |
…nexpnr to osflow/UPduino_v3
…mponent sources there
…by making '-m ghdl' optional through GHDL_PLUGIN_MODULE
* Subdir 'hdl' from fomu-workshop was used as a reference
* [boards/osflow/synthesis.mk] support both DESIGN_SRC and BOARD_SRC * [boards/osflow/UPduino_v3] move BoardTop and ProcessorTop to examples and rtl/templates/processor, respectively * [ci] update 'Implementation' workflow
I think this might be good to merge now.
I tried this workflow with Fomu (#56) and I can confirm that the following do work: make BOARD=Fomu MinimalBoot UP5KDemo
make BOARD=Fomu TASK=load MinimalBoot
make BOARD=Fomu TASK=load UP5KDemo
make BOARD=Fomu TASK='clean load' MinimalBoot
make BOARD=Fomu TASK='clean load' UP5KDemo Note that README's/docs should be updated accordingly. @stnolting, will you take care of that?
I think Janeway, Sisco, and Riker, or any other is perfectly acceptable 😉
Since the Fomu has an external 48MHz clock, I still want to enhance those BoardTop files (#56). However, I think that this PR (related to UPduino_v3 examples only) is ready to merge. That will allow us to work on enhacements separatedly:
|
* PCF and boards.mk brought from the 'hdl' subdir in im-tomu/fomu-workshop
Awesome!! 🚀
Yes of course. |
As discussed in #56, in this PR:
boards/osflow
was created, in order to share sources between configurations using the open source tools.UPduino_v3_ghdl-yosys-nextpnr
was moved toboards/osflow/UPduino_v3
.filesets.mk
,PnR_Bit.mk
,synthesis.mk
andtools.mk
were created/split from the UPduino_v3 Makefiles.boards/osflow/devices/ice40
was created.rtl/top_templates
was renamed tortl/templates
and subdirsprocessor
andsystem
were created.Small
, was added tortl/templates/processor
.examples
directory was created.boards/osflow
.rtl/templates/processor
, and the corresponding BoardTop for UPduino_v3 was added toexamples
.I'm not sure about how to handle documentation. See the last commit in this PR.
boards/osflow
.rtl/templates
was updated.examples
.I moved part of the content from the first README to the other two. I think we want to have the "How To Run" section in
examples
, because that's the entrypoint (where the users need to executemake
in order to get a bitstream). However, the details about the device (the platform-specific IMEM and DMEM used in ICE40 designs) might not belong in the examples. Overall, maybe it's worth having most of this content in the User Guide?neorv32_UPduino_v3_SmallProcessor.bit
bitstream should be equivalent to the previous demo contributed by @tmeissner. I did not change any feature (on purpose). I'd be glad if someone with an UPduino v3 could try it. Bitstreams are generated in CI (see below).I guess that theneorv32_UPduino_v3_MinimalProcessor.bit
does not work. As per the discussion in Fomu #56, it might be too minimal. Note that I would like it to support one GPIO and 3 PWM by default, so that it can be used for blinky tests on boards with either a single LED or an RGB LED.neorv32_UPduino_v3_MinimalProcessor.bit
should also work.