sresam89
Member level 2
- Joined
- Sep 9, 2009
- Messages
- 48
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,286
- Activity points
- 1,576
The attached is a code fro 8*8 mulitplier this doesnot work. tried simulating with modelsim and xilinx ISM
I want it to be a normal multiplier using addition by the integer value.
please help
I want it to be a normal multiplier using addition by the integer value.
please help
Code:
`timescale 1ns / 1ps
module multi8_8(input [7:0] x,y,input clk, output [15:0] z );
wire [7:0] x_temp,y_temp;
reg [15:0] z_temp;
/*initial
begin
assign z_temp = 16'b0;
end
*/
assign x_temp = (x[7]==1)? ~x+1:x;
assign y_temp = (y[7]==1)? ~y+1:y;
integer x_int,y_int;
always @ (x_temp)
begin
x_int=x_temp;
$display(x_int);
end
always @ (y_temp)
begin
y_int=y_temp;
$display(y_int);
end
integer i;
always @ (x_int or y_int)
begin
if(x_temp>y_temp)
for(i=0;i<y_int;i=i+1)
begin
z_temp=z_temp+x_temp;//[B]I THINK THIS LINE DOES NOT EXECUTES GIVES ZEROS ALWAYS[/B]
$display(i);//this seems to display the correct iteration
$display(z_temp);//[B]This displays always zero[/B]
end
else
for(i=0;i<x_int;i=i+1)
begin
z_temp=z_temp+y_temp;//[B]I THINK THIS LINE DOES NOT EXECUTES GIVES ZEROS ALWAYS[/B]
$display(i);//this seems to display the correct iteration
$display(z_temp);//[B]This displays always zero[/B]
end
end
assign z=z_temp;//no result either xxxx or zeros
endmodule