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).