sylefeb / Silice

Silice is an easy-to-learn, powerful hardware description language, that simplifies designing hardware algorithms with parallelism and pipelines.
Other
1.3k stars 78 forks source link

Altera Cyclone IV EP4CE6E22C8N #223

Open ShervinShokouhi opened 2 years ago

ShervinShokouhi commented 2 years ago

Hi to all

Any one here has experience with Altera Cyclone IV EP4CE6E22C8N? How can I check my project resource consumption on for EP4CE6E22C8N?

Thanks

ShervinShokouhi commented 2 years ago

Unable to recognise Quartus version via quartus_sh???

sylefeb commented 2 years ago

Hi @ShervinShokouhi,

There is no board with a CycloneIV in the repo ; there is however a well tested framework for the de10nano which is a CycloneV board. It should be possible to make a framework for your board, what kind is it?

It's not just about the FPGA model but also the pinout and how it connects to peripherals, there is a small tutorial on adding a board here: https://github.com/sylefeb/Silice/blob/master/frameworks/boards/README.md

Normally, after creating the framework doing make board (with board the chosen name) should work. Edalize (which is used by Silice) will find the local Quartus installation and do the rest. I recommend starting by having the blinky project work.

Let me know how it goes - Best regards, Sylvain

sylefeb commented 2 years ago

(regarding resource consumption, this will be available in the Quartus logs after synthesis)

ShervinShokouhi commented 2 years ago

@sylefeb Thanks for your suggestions, I'm trying to fit my board based on "de10nano" but some questions: 1) How setup "USB Blaster" as JTAG programmer. There is an error: "Error (213013): Programming hardware cable not detected" My settings are: "builders": [ { "builder" : "edalize", "description": "Build using Edalize", "tool": "quartus", "tool_options": [ { "family": "Cyclone IV", "device": "EP4CE6E22C8", "board_device_index" : 2 } ], "toplevel" : "top", "bitstream" : "build.sof", "constraints": [ {"name": "build.sdc", "file_type": "SDC"}, {"name": "pins.tcl", "file_type": "tclSource"} ], "program": [ {"cmd" : "quartus_pgm", "args" : "-m jtag -o \"p;build.sof@2\""} ] } ]

2) If set up incorrect pin in pins tcl, for example setup incorrect pin for SDRAM: set_instance_assignment -name IOSTANDARD "3.3-V LVTTL" -to SDRAM*

Can this damage SDRAM chip?
sylefeb commented 2 years ago

Hi - I believe programming is done either by Edalize or through Quartus (I don't precisely remember, will have to retest when I have the board in front of me).

Regarding damage, I always assume bad things could happen and triple check everything. So far I never got into trouble, but I would expect that yes, there is the possibility of bad things happening if pins are improperly configured (most likely will be fine but the risk is not 0). The best would be to start from an example project and use the generated files as an example?

sylefeb commented 2 years ago

(on programming: check first that you can program the board from Quartus - does that work fine?)

ShervinShokouhi commented 2 years ago

Yes I am able to program board with quartus. but could not find how to set USB BLASTER as programming tool? Also I faced situation that leds always work fine in any project, but some board pins like UART pins work only in one project !

sylefeb commented 2 years ago

Good news for programming! For the pins, please check they are declared in the Makefile, like here: https://github.com/sylefeb/Silice/blob/55631c9a7af652e1b889421ed4e89c48cedab92b/projects/uart_echo/Makefile#L3 (the -p uart part of the command line)

Could you otherwise send an example where the uart pins are not working? Even just the build.v file should allow me to check what the issue might be.