hm solution

$30.00

Category:

Description

 

Questions:

  1. Consider the following code:

always @(A)

            if(A < 10)

                        Y = 0;

            else if (A > 10 & A <= 15)

                        Y = 1;

Assume A can assume a value between -2 and +22.Why would a synthesizer believe a latch is necessary? Simply saying there is no “else” clause is not the answer. That causes a latch to be inferred but doesn’t explain why the synthesizer puts one in the design. I want to know why a latch is necessary.

 

 

  1. What are three ways of preventing latch inference in case statements?

 

 

  1. Why should module outputs be registered?

 

  1. Consider the following module:

module U1(in1, in2, y ,clk);

input in1, in2, clk;

output y;

reg s;

 

always @(posedge clk)

            s = in1 ^ in2;

            assign y = ~s;

endmodule

Edit the code so the module has a registered output.

 

 

 

  1. Consider the following Verilog code:

if(A)

                y = 1;

else if(B)

                y = 2;

else if(C)

                y = 3;

else if(D)

                y = 4;

else

                y = 0;

  • Show what would most likely be synthesized.

 

  1. Rewrite the code from the previous problem as a case statement. Show what would be synthesized if the parallel_case synthesis directive is used.

 


error: Content is protected !!