Community
cancel
Showing results for 
Search instead for 
Did you mean: 
RBish3
Novice
435 Views

Quartus Prime Pro 19.2 Linux missing devices converting programming files, crashing

Jump to solution

I am following the Arria 10 CvP tutorial, for configuring CvP on the Arria 10 Dev Kit, located here: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_a10_cvp_prop.pdf

 

My design is essentially just the PCI-E Hard IP Core with CvP enabled + a basic NIOS II configuration. I have my project configured to use the 10AX115S2F45I1SG under "Device" in Quartus, as specified in the Development Kit User Guide (https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_a10-fpga-prod-devkit....).

 

I have compiled the design successfully and downloaded it to the FPGA without setting it up for CvP - the PCI-E Hard IP Core enumerates successfully with the host system under "lspci".

 

I have followed the CvP tutorial through to "Splitting the SOF file" in section 3-4. When I load my SOF Data file in, under "Properties", my device is listed as the 10AX115S2F45. The tutorial specifies I need to select the flash loader as "10AX115S1F45I1SG" - I have used the "S2" variant in my Quartus project since the User Guide specified this as the correct chip.

 

However, when I go to select the "Flash Loader" device, in the "Select Devices" list, I am presented with a significantly reduced set of devices than available elsewhere in Quartus. In terms of "10AX115S2" devices, I have the choice of:

  • 10AX115S2
  • 10AX115S2E2
  • 10AX115S2ES

 

quartusoptions.png

 

Selecting either the "E2" or "ES" designations will cause Quartus to crash with an error report which is attached at the bottom of this post.

 

Selecting "10AX115S2" will successfully create the periphery and core files, however this isn't a specific designation as the tutorial suggests I should choose.

 

When I then go to program the FPGA in Quartus Programmer GUI, upon hitting "Auto Detect", I have a similar issue to setting the "Flash Loader". A prompt is shown with the text "Found devices with shared JTAG ID for device 1. Please select your device". Again, my specific device isn't present, so I select 10AX115S2. If I select any of the other variants, Quartus crashes.

 

I specify my periphery image for the EPCQL2014 device, and my programmer window looks as follows:

 

programmeroptions.png

 

 

I then hit "Start" to start flashing, the flash seems to progress, but hits 88% in the progress indicator and says "(Failed)".

 

In the messages console:

"Error(209025): Can't recognize silicon ID for device 1. A device's silicon ID is different from its JTAG ID. Verify that all cables are securely connected, select a different device, or check the power on the target system. Make sure the device pins are connected and configured correctly."

 

I believe there are some missing files or similar from my system, but short of installing the Arria 10 qdz file, I'm not sure what else I can do.

 

This crashing behavior I have also experienced under Windows.

 

Any and all advice on fixing this issue is welcomed.

 

Thanks.

 

Quartus Crash Report:

 

Problem Details

Error:

Internal Error: Sub-system: PGMIO, File: /quartus/pgm/pgmio/pgmio_pcf_data_server.cpp, Line: 70

No PCF Info Found for nightfury5es

Stack Trace:

0x6397e: std::string::_Rep::_M_dispose(std::allocator<char> const&) [clone .part.0] (pgm_pgmio)

 

0x46a5b1: PGMIO_PCF_DATA_SERVER::get_pcf_file_info(std::string const&, PGMIO_PCF_ENTRY**, bool) + 0x91 (pgm_pgmio)

0x3867ed: PGM_PCF_CONTAINER::get_pcf_file_info(std::string) + 0xcd (pgm_pgmio)

0x433679: PGMIO_POFIO::PGMIO_POFIO(PGM_DEVICE const*, std::string) + 0x109 (pgm_pgmio)

0x43d27c: PGMIO_BITSTREAM_WRITER::write_bitstream(std::vector<PGMIO_LOGICAL_PAGE*, std::allocator<PGMIO_LOGICAL_PAGE*> >&, std::vector<PGMIO_LOGICAL_PAGE*, std::allocator<PGMIO_LOGICAL_PAGE*> >&, PGMIO_CCF&, std::vector<std::string, std::allocator<std::string> >*, unsigned int) + 0x344c (pgm_pgmio)

0x3f1394: PGMIO_F2P::convert_sram_files(PGMIO_CCF&) + 0x1494 (pgm_pgmio)

0x80b09: CPFQ_FRAME_WND::on_click_generate() + 0xcb3 (pgm_cpfq)

0x91ff5: CPFQ_FRAME_WND::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) + 0xcf (pgm_cpfq)

0x2a088a: QMetaObject::activate(QObject*, int, int, void**) + 0x76a (Qt5Core)

0x234342: QAbstractButton::clicked(bool) + 0x32 (Qt5Widgets)

0x23452a: QAbstractButtonPrivate::emitClicked() + 0x3a (Qt5Widgets)

0x23584a: QAbstractButtonPrivate::click() + 0xba (Qt5Widgets)

0x235a15: QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 0xd5 (Qt5Widgets)

0x193508: QWidget::event(QEvent*) + 0x1d8 (Qt5Widgets)

0x15916c: QApplicationPrivate::notify_helper(QObject*, QEvent*) + 0x9c (Qt5Widgets)

0x160e27: QApplication::notify(QObject*, QEvent*) + 0xe57 (Qt5Widgets)

0x272ea8: QCoreApplication::notifyInternal2(QObject*, QEvent*) + 0x118 (Qt5Core)

0x15f7ef: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) + 0x1bf (Qt5Widgets)

0x1ada5b: QWidgetWindow::handleMouseEvent(QMouseEvent*) + 0x61b (Qt5Widgets)

0x1afe61: QWidgetWindow::event(QEvent*) + 0x1e1 (Qt5Widgets)

0x15916c: QApplicationPrivate::notify_helper(QObject*, QEvent*) + 0x9c (Qt5Widgets)

0x16028f: QApplication::notify(QObject*, QEvent*) + 0x2bf (Qt5Widgets)

0x272ea8: QCoreApplication::notifyInternal2(QObject*, QEvent*) + 0x118 (Qt5Core)

0xe8f6b: QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 0x90b (Qt5Gui)

0xea945: QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) + 0x105 (Qt5Gui)

0xc4f5b: QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 0xab (Qt5Gui)

0xd7236: QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 0x16 (Qt5XcbQpa)

0x27179a: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 0x12a (Qt5Core)

0x27a280: QCoreApplication::exec() + 0x80 (Qt5Core)

0x401ecb: qgq_main(int, char const**) + 0x7b (quartus)

0x3ebd0: msg_main_thread(void*) + 0x10 (ccl_msg)

0x40de4: msg_thread_wrapper(void* (*)(void*), void*) + 0x6e (ccl_msg)

0x11bec: mem_thread_wrapper(void* (*)(void*), void*) + 0x5c (ccl_mem)

0xc2ee: err_thread_wrapper(void* (*)(void*), void*) + 0x27 (ccl_err)

0x6c25: thr_thread_wrapper + 0x15 (ccl_thr)

0x41930: msg_exe_main(int, char const**, int (*)(int, char const**)) + 0x148 (ccl_msg)

0x401fb5: main + 0x26 (quartus)

0x20830: __libc_start_main + 0xf0 (c)

 

 

End-trace

 

 

Executable: quartus

Comment:

None

 

System Information

Platform: linux64

OS name: Ubuntu 16.04.6

OS version: 16

 

Quartus Prime Information

Address bits: 64

Version: 19.2.0

Build: 57

Edition: Pro Edition

 

0 Kudos
1 Solution
JohnT_Intel
Employee
98 Views

Hi,

 

When you convert the sof file, you should select "10AX115S2" as this is the production device which is on your board.

 

For the programming issue, may I know if you are using AS (Active Serial) configuration mode? Could you check your board MSEL to see if it is selecting AS mode? If no, please change the MSEL to AS before powering up the board.

View solution in original post

2 Replies
JohnT_Intel
Employee
99 Views

Hi,

 

When you convert the sof file, you should select "10AX115S2" as this is the production device which is on your board.

 

For the programming issue, may I know if you are using AS (Active Serial) configuration mode? Could you check your board MSEL to see if it is selecting AS mode? If no, please change the MSEL to AS before powering up the board.

View solution in original post

RBish3
Novice
98 Views

Ahhh, excellent, that's sorted the problem out John. For whatever reason, the newer tutorials don't specify that you have to set the MSEL jumpers into the Active Serial mode - hadn't made the link that the files generated earlier were configured as such. The periphery image is programmed using JTAG so its relevance wasn't particularly obvious.

 

Thanks very much!

Reply