answersLogoWhite

0


Best Answer

The full_case and parallel_case directives are dangerous because they tell the synthesis tool

something different about the design than what is told to the simulator.

To the Verilog simulator, full_case and parallel_case are buried inside of Verilog

comments and are completely ignored. To the synthesis tool, full_case and parallel_case

are command-directives that instruct the synthesis tools to potentially take certain actions or

perform certain optimizations that are unknown to the simulator.

A full case statement is a case statement in which all possible case-expression binary patterns

can be matched to a case item or to a case default.

e.g. Full case, sel=2'b11 will be covered by default statement.

The x-assignment will also be treated as a don'tcare for synthesis, which may allow the synthesis tool to further optimize the synthesized design. It's the potentially causing a mismatch to occur between simulation and synthesis. To insure that the pre-synthesis and post-synthesis simulations match, the case default could assign the y-output to either a

predetermined constant value, or to one of the other multiplexer input values

module mux3c

(output reg y,

input [1:0] sel,

input a, b, c);

always @*

case (sel)

2'b00: y = a;

2'b01: y = b;

2'b10: y = c;

default: y = 1'bx;

endcase

endmodule

// Use synopsys full_case statement to create the full case , but it treated differently in simulation and synthesis.

module mux3b (y, a, b, c, sel);

(output reg y,

input [1:0] sel,

input a, b, c);

always @*

case (sel) // synopsys full_case

2'b00: y = a;

2'b01: y = b;

2'b10: y = c;

endcase

endmodule

SystemVerilog use priority modified case statement to solve the full case problem.

The biggest difference between a full_case directive and a priority modified case statement

is that the priority keyword is part of the SystemVerilog syntax that will be interpreted the

same by simulators, synthesis tools and formal verification tools. In essence, the priority case

statement is a "safe" full_case case statement.

e.g.

priority case (...)

...

endcase

A parallel case statement is a case statement in which it is only possible to match any case

expression to one and only one case item.

e.g. A parallel case statement

module intctl1b

(output reg int2, int1, int0,

input [2:0] irq );

always @* begin

{int2, int1, int0} = 3'b0;

casez (irq) // synopsys parallel_case

3'b1??: int2 = 1'b1;

3'b?1?: int1 = 1'b1;

3'b??1: int0 = 1'b1;

endcase

end

endmodule

This is an example that demonstrates that adding the parallel_case directive makes the design

smaller and faster, but in the process it also adversely changes the functionality of the design.

SystemVerilog adds the new case statement modifier called "unique."

The unique keyword shall cause the simulator to report a run-time error if a case expression is

ever found to match more than one of the case items. In essence, the unique

case statement is a "safe" parallel_case case statement.

unique case (...)

...

default: ...

endcase

Guideline: Code all intentional priority encoders using if-else-if statements. It is easier for

the typical design engineer to recognize a priority encoder when it is coded as an if-else-if

statement.

User Avatar

Wiki User

11y ago
This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: How parallel case and full cases problems are avoided in System Verilog?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Continue Learning about Other Math

What system of equations has no solution?

A system of equations will have no solutions if the line they represent are parallel. Remember that the solution of a system of equations is physically represented by the intersection point of the two lines. If the lines don't intersect (parallel) then there can be no solution.


What does it mean for a system to be consistent or inconsistent?

does it stay the same or not? Actually, a system is inconsistent if you can derive two (or more) statements within the system which are contradictory. Otherwise it is consistent. For example, Eucliadean geometry requires that given a line and a point not on that line, you can have one and only one line through the point which is parallel to the original line. However, you can have a consistent system of geometry if you assume that there is no such parallel line. This is known as the projective plane. You can assume that there will be an infinite number of parallel lines through a point not on the line. And again you can have a consistent system. Consistency or inconsistency has nothing whatsoever to do with time.


The two lines graphed below are parallel How many solutions are there to the system of equations?

Although there is no graph, the number of solutions is 0.


Why do you need parallel lines and perpendicular lines in your lives?

Construction, engineering, drawing, and architecture all use parallel and perpendicular lines. Other than that, it is an important topic because you are learning how to apply the language and tools of mathematics to an intuitive system. These topics have proven important in the history of human kind and also many before you have shown that by learning about parallel and perpendicular lines, one learns how to use math and logic. It is doubtful that you can make a living off of parallel and perpendicular lines, but if you can't understand parallel and perpendicular lines, then I worry about your future.


What types of lines would be the result of an inconsistent system of equation?

If you refer to linear equations, graphed as straight lines, two inconsistent equations would result in two parallel lines.

Related questions

What is the difference between VHDL and Verilog?

They are very much the same, except VHDL syntax is derived from Ada while Verilog syntax is derived from C. ==================================== moreover, VHDL is a system level language whereas verilog is a gate level (circuit level) language. Hence, verilog is easy to learn than VHDL.


Why should you use Verilog?

Verilog is a hardware description language. Its very purpose is to describe hardware in the form of a program. This program can be understood by the user and the system as well. By implementing the hardware as a code, it is easier to verify its functionality. Hence, to test hardware before it could actually be designed, we should use Verilog.


Digital design through verilog question papers?

The link for verilog question paper is http://www.interview-secrets.net/jobinterviews/verilog-interview-questions.html http://vlsifaq.blogspot.com/2007/10/verilog.html http://vlsifaq.blogspot.com/2007/10/verilog.html http://forum.rficdesign.com/YaBB.pl?num=1222165121 http://forum.rficdesign.com/YaBB.pl?num=1222165286 http://www.asicguru.com/system-verilog/interview-questions/10/


What has the author Peter J Ashenden written?

Peter J. Ashenden has written: 'Digital design' -- subject(s): Embedded computer systems, Verilog (Computer hardware description language), System design 'The VHDL cookbook' 'Digital Design (Verilog)' 'The Designer's Guide to VHDL (Systems on Silicon)' 'The system designer's guide to VHDL-AMS'


When was Parallel Virtual File System created?

Parallel Virtual File System was created in 2003.


Is there a parallel universe in your solar system?

no because if there was a parallel earth there would have to be parallel planets


How vhdl acts as an exchange medium between chip vendors and cad tool users?

CAD means computer aided design. CAD tools are used to design chips virtually on a computer. Programming languages like VHDL, Verilog, System C, Syatem Verilog are used for this purpose. The successful designs of these languages can be fabricated into chips.


What has the author Hung Chang written?

Hung Chang has written: 'Using parallel banded linear system solvers in generalized Eigenvalue problems' -- subject(s): Eigenvalues


How many generator we can operate in parallel in a system?

In a grid system all the alternators run in parallel, locked together in frequency.


Why vERILOG is better than vHDL?

VHDL is a system level programming language and Verilog is a circuit level programming language. VHDL can be viewed as a language written in programmer's point of view. In that manner it is better than VHDL. For example, to write a code for a simple combinational circuit, we need to define from the circuit level in Verilog i. e. FET level. But in VHDL, we can directly take several smaller components and combine them to trealize the circuit. That means, one need not have a knowledge of analog circuits to design something in VHDL. He only needs to know the behavior of the desired design.


What is Parallel force system?

When the lines of action of all the forces are not parallel to each other is defined as non parallel forces


What is non-parallel force system?

When the lines of action of all the forces are not parallel to each other is defined as non parallel forces