EE 3755    Homework 3      Due: March 28,2005

 

Estimated time to solve:

Prob.1        5 mins.

Prob.2         2 mins.

Prob.3         4hours.

Prob.4         2 hours.(check one of the previous homework then it will be 30mins)

Prob.5         3 mins..

Total:          From 4hour 40mins to 6hour 10mins.

 

How to submit? // Hard copy at the class room.

For Problem 2,3,and 4 ,you also have to leave your program on your account.

Please write down actual time you spend to do the each problem.

 

Use “script “ command to take a snap shot of your program.

After run “script “

Use “cat” command to display  contents of  your program.

Use “ncverilog” to run your program.

then stop the script.

For Prob.2 to Prob. 4,  take a snapshot and submit the snapshot.

 

Problem 1: Convert the following numbers. (5mins)

Hint (7/8) = 0.875  

        

a) Decimal  12  to 8-bit Binary:

   

b) Decimal  -12     to 8-bit Binary:

c) Decimal 12.875  to Binary (as many bits as needed):

 

d) Decimal    12.875  to IEEE 754 Single Precision (Show in hexadecimal):

 

  

Problem 2 : Show the output of the module.

 

module behavioral_1(x);

   output x;

   reg [7:0]  x;

   initial

// Procedural Code Starts Here

     begin

        x = 1;

       $display("Hello, x=%d, t=%t",x,$time);

        x = 2;

       $display("Hello, x=%d, t=%t",x,$time);

        x = 3;

        $display("Hello, x=%d, t=%t",x,$time);

    end

endmodule

//Ans.

// Simulator Output

//

module behavioral_2(x);

   output x;

   reg [7:0]  x;

   initial

     begin

        x = 1;

        $display("Hello, x=%d, t=%t",x,$time);

        #1;

        x = 2;

        $display("Hello, x=%d, t=%t",x,$time);

        #1;

        x = 3;

        $display("Hello, x=%d, t=%t",x,$time);

        #1;

     end

endmodule

// Ans.

 

// Simulator Output

 

//

 

 

Problem 3 : Write a simple Verilog program which will convert

              a decimal number to IEEE 754 single format number

              and  test the solution of problem 1.d.(12.875)//

              your program should print 32bit binary number.

Output format should be this:

## start of output

Decimal -10.625  convert to IEEE 754 Single Precision     

1100 0001 0010 1010 0000 0000 0000

##end of output

hint:

module test;

 

real float,float2; // Like a float in C

 //1)you also have to declare a data type for the output //here

initial

begin

                 float = 12.875;

                 float2 = 12;

$display ("%f\n",float);

 

  $display ("%f\n",float-float2);

                   i = float;

                   $display ("%f\n",i);

                    //

                   //2)you have to write conversion code here and print

 //the result,  run the program and get  a  snapshot of it.

 

Problem 4 : Write a population count program and a test bench which will generate this following output.

              //you have to write a program and take snapshot of it.

              //out put solution is following

             time  input                         output

100 input a = 00000000000000000000000000000000 output p =  0
                200 input a = 00000000000000000000000000000001 output p =  1
                300 input a = 00000000000000000000000000000010 output p =  1
                400 input a = 00000000000000000000000000000011 output p =  2
                500 input a = 00000000000000000000000000000100 output p =  1
                600 input a = 00000000000000000000000000000101 output p =  2
                700 input a = 00000000000000000000000000000110 output p =  2
                800 input a = 00000000000000000000000000000111 output p =  3
                900 input a = 00000000000000000000000000001000 output p =  1
               1000 input a = 00000000000000000000000000001001 output p =  2
               1100 input a = 00000000000000000000000000001010 output p =  2
               1200 input a = 00000000000000000000000000001011 output p =  3
               1300 input a = 00000000000000000000000000001100 output p =  2
               1400 input a = 00000000000000000000000000001101 output p =  3
               1500 input a = 00000000000000000000000000001110 output p =  3
               1600 input a = 00000000000000000000000000001111 output p =  4

 

Problem 5 : Answer the sub problems.

 

5-1)Which code will be longer ? Structural or Implicit ?(Hint : Gates)

(Estimated Time to Finish:  30s.)  .

 

Answer:

 

5-2)Fill  the blanks.( Estimated Time to Finish:  30s.)

 

a, b

a & b

a && b

000      000

 

 

010      111

 

   

 

    (Hint:: Arithmetic, logical)

5-3)Fill the blanks; x1 = a == b;

     ( Estimated Time to Finish:  30s.)

  

a,        b

     x1 = a== b

000   000

      

x01   001

 

 

 

 

 

 5-4)Fill the blanks x = {a, b};

( Estimated Time to Finish:  30s.)

A,         b

  x = {a,b};

000     000

 

001     111

 

        5-5)Fill the blanks x = a >> 2;

 ( Estimated Time to Finish:  30s.)

A

x = a >> 2

1100

 

0100

 

 

        5-6) Write down the value.

            //a = 10;

 

             x =   a < 12 ?  10 :  20;

  What is the x value?(10 or 20).