Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16556 Discussions

SystemVerilog Cast Syntax in Quartus 20.1

James_B
New Contributor II
1,117 Views

Platform: Windows 10, Quartus 20.1 Standard

 

I have a design in which I used the SystemVerilog cast operators, and synthesis failed: 

 

Snag_51272a6.png

 

However, when I revert to old style cast operators, the design does compile as shown below: 

 

Snag_513f89a.png

So I take it that the modern SystemVerilog cast operators do not work, at least on Windows? Can someone at Intel confirm? 

Thanks,

James

 

0 Kudos
1 Solution
James_B
New Contributor II
1,046 Views

It appears that Quartus does not support SystemVerilog modports, and also is not planning on supporting VHDL 2019 interfaces which support view. Thus, any struct(SystemVerilog) or record(VHDL) must have all members as either in or out direction when using them on a portlist, that is my conclusion to all of this. 

View solution in original post

0 Kudos
5 Replies
sstrell
Honored Contributor III
1,109 Views

What exact error are you getting?  This is supported according to the built-in help, so the exact message you're getting might help figure out the issue.

0 Kudos
James_B
New Contributor II
1,102 Views

I have a mixed VHDL/SystemVerilog design in Quartus. I made sure the SystemVerilog option was set. Upon compiling, I get the errors shown. 

 

Snag_5d1b115.pngSnag_5d1d892.png 

0 Kudos
sstrell
Honored Contributor III
1,097 Views

I've never used this before, but is "signed" technically a data type you can convert to with a cast?

https://www.chipverify.com/systemverilog/systemverilog-datatypes

Has it worked elsewhere for you?

0 Kudos
James_B
New Contributor II
1,084 Views

Yes, signed and unsigned types are part of SystemVerilog IEEE Standard 1800. Using a tool like Riviera-Pro for simulation, which is old (2018), the cast operator runs fine as I originally showed it working. Only in Quartus does it have an issue. 

Looking closer at Quartus SystemVerilog support, it is not as thorough as anticipated. For example, Quartus does not support modports on interfaces in SystemVerilog. So I think you have to look at the detailed aspects of the language to see what is supported in Quartus. Snag_2a72033.png

0 Kudos
James_B
New Contributor II
1,047 Views

It appears that Quartus does not support SystemVerilog modports, and also is not planning on supporting VHDL 2019 interfaces which support view. Thus, any struct(SystemVerilog) or record(VHDL) must have all members as either in or out direction when using them on a portlist, that is my conclusion to all of this. 

0 Kudos
Reply