Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
Pragmas or synthesis directives are specially formatted comments. Thye should not contain any extra characters other than what is necessary for the synthesis directive.
There are several types of pragmas supported by various RTL synthesis tool: Synthesis On and Off Directives ( Does code selection for the synthesis tool ), Architecture selection directive (For example adder can be inferred as ripple or carry lookahead ) , Case statement directive ( Full case, parallel case ), Module Template directive , Function and Task Mapping Directives , Set and Reset Synthesis Directives etc.
Hi,
pragma is used to skip unsynthesizable lines in the design. For simulation and debugging u may add some lines into design. so design complier skips the portion between pragma off and on.
That's only part of it. Like the other posters said, pragmas are "compiler directives." You can use a pragma to turn parsing on/off (//synopsys translate off), that's a common use. But pragmas can also tell the synthesis-tool to choose an algorithm/strategy, like choosing a FCLA adder (instead of CSEL or RPL), or choosing a multiplier architecture, etc.
Simulation tools generally ignore the directives, and that's a problem...because certain pragmas (//synopsys full_case parallel_case) change the behavior of the synthesized-output (compare to the soruce Verilog.)
Systemverilog has a few new language-keywords to help with designer-intent on case/if/else synthesis: priority, unique.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.