Application Acceleration With FPGAs
Programmable Acceleration Cards (PACs), DCP, FPGA AI Suite, Software Stack, and Reference Designs
482 Discussions

How to Reconfigure and make changes in Quartus for a built and compiled OFS FIM.

Beginner_in_FPGA
New Contributor I
349 Views

Hello,

I have built and compiled the N6001 design from otchsare beta 3.2 SKU2 version using Quartus 23.1. 


It seems that within the FIM developer documents the steps to reconfigure and change the design are given all via the terminal and using Quartus commands. 
I was wondering if I can do design changes and other stuff within Quartus and give compilation from within quartus after building the design once. So when I tried compiling the same design without any changes from within Quartus, there were multiple tcl files which were throwing errors. 
--------------------------------------------------------------------------------------------------

Tcl error: can't find package options
    while executing
"package require options"
    (file "ofs_partial_reconfig/user_clock_freqs_compute.tcl" line 24)
    invoked from within
"source ofs_partial_reconfig/user_clock_freqs_compute.tcl"
    (file "ofs_partial_reconfig/ofs_sta_report_script_pr.tcl" line 12)
    invoked from within
"source ofs_partial_reconfig/ofs_sta_report_script_pr.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel source $script"
    invoked from within
"if [file exists $script] {        
set start_time [clock clicks -millisec]
uplevel source $script
set end_time [clock clicks -millisec]..."
    ("foreach" body line 2)
    invoked from within
"foreach script $options(report_script) {
if [file exists $script] {        
set start_time [clock clicks -millisec]
uplevel source $scri..."
    invoked from within
"if [is_project_open] {
# The all_corners option can be set by INI as well.
set all_corners_ini [get_ini_var -name "qsta_all_corners"]
if {[stri..."
    (procedure "main" line 140)
    invoked from within
"main"
    (file "t:/intelfpga_pro/23.1/quartus/common/tcl/internal/qsta_default_script.tcl" line 1610)
-------------------------------------------------------------------------------------------------------
 
 
So I went through the document again and found out about Relocatable PR Directory. And I thought this is used to create a project which can be used to compile within quartus. So I tried running this and got it to work successfully, but I think I must've misunderstood what this means since it doesn't generate a Complete Quartus project file with every file present within the Quartus Project, but generates some files and binaries. What exactly is this feature used for?
 
 
Is there any way after building the Quartus project in the Linux environment, after which I can copy the project file and then continue designing in a Windows environment without having to run scripts and just use Quartus to do everything?
0 Kudos
4 Replies
khtan
Employee
262 Views

Hi,

Sorry for the delay in response. Regarding your question ,  the document to compile FIM is solely based on command line terminal and if I understand correctly, most of the script/shell in there handles the linking of different components to the Quartus project and there is no standalone Quartus project can be built out without those command line scripts even though it exist in the git directory.

 

May I confirm if I get you right, you have successfully build out the FIM and you open the Quartus project that was generated out in the output folder or from the default directory? 

 

For the PR directory, its mainly used to share your FIM settings with others who wants to do their own AFU configuration, but it still needs to be executed via script

khtan_0-1719898221874.png

eg. if user just want to use the default fim, he/she will just download the prebuilt FIM from here and run their own AFU from there. It looks like still need to run through script though.

Reference:

https://ofs.github.io/latest/hw/common/user_guides/afu_dev/ug_dev_afu_ofs_agx7_pcie_attach/ug_dev_afu_ofs_agx7_pcie_attach/#26-build-or-download-the-relocatable-pr-build-tree

https://ofs.github.io/ofs-2024.1-1/hw/n6001/dev_guides/fim_dev/ug_dev_fim_ofs_n6001/#223-out-of-tree-pr-fim

 

 

Thanks

Regards

KH 

khtan
Employee
237 Views

Hi,

Just to add on , the new FIM supports custom configuration via terminal via OFSS (probably you can refer to here , just an example https://ofs.github.io/ofs-2024.1-1/hw/iseries_devkit/dev_guides/fim_dev/ug_ofs_iseries_dk_fim_dev/#443-pcie-configuration-using-ofss)

 

As for the GUI configuration , I've talk to our OFS guys whether it is possible to build off Quartus GUI directly without using command line, but they will check first on this .

 

The other option suggested was to after you finish compiling the FIM, open the Quartus in the build output folder and do the changes in there and make note of what are the file changes and then copy those changes back into the golden area(the base directory) and build from terminal. 

 

Will get back to you on whether the Quartus GUI compilation possibility.

 

Thanks

Regards

Kian

Beginner_in_FPGA
New Contributor I
196 Views

Hi @khtan,

For the question you asked,
"May I confirm if I get you right, you have successfully build out the FIM and you open the Quartus project that was generated out in the output folder or from the default directory?"
Yes, I have already successfully built the FIM using the script in the terminal and then opened the Quartus project that was generated from the output folder.

 

"The other option suggested was to after you finish compiling the FIM, open the Quartus in the build output folder and do the changes in there and make note of what are the file changes and then copy those changes back into the golden area(the base directory) and build from terminal."
This seems like an okayish option, will settle for this right now. 

 

But would definitely need a confirmation on this "Will get back to you on whether the Quartus GUI compilation possibility", since I work on a Windows system and switching to Linux would be a hassle.

 

Thanks,
Best Regards.

0 Kudos
khtan
Employee
164 Views

Hi,

Just to follow up on this , our OFS team mentioned that there is one additional parameter ( --stage)  in command that should generate out the Quartus project that can compile, but the command seems to be like for internal usage as it is not published out externally in documentation.

 

First you will need to use the public repo, not the one in github.com/otcshare i suppose , as the example given is based on public repository build script, not the otcshare build script command.

 

Example using this 

https://github.com/OFS/ofs-agx7-pcie-attach (formerly known as https://github.com/OFS/ofs-n6001)

 

eg .

git clone --recurse-submodules https://github.com/OFS/ofs-n6001
export OFS_ROOTDIR=${PWD}/ofs-n6001
export WORKDIR=${OFS_ROOTDIR}

 

build command with the --stage option

khtan_0-1720145739783.png

Could you try using the command below  with --stage compile, that should give you a quartus project that you can compile in GUI

In $OFS_ROOTDIR
./ofs-common/scripts/common/syn/build_top.sh --stage compile n6001 work

In project directory inside work tree:
quartus_sh --flow compile ofs_top –c ofs_top
Or:
quartus ofs_top –c ofs_top   <-- Use the GUI

 

Thanks

Regards

Kian

 

Reply