OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [common/] [opencores.org/] [cde/] [ip/] [mult/] [rtl/] [verilog/] [top.generic] - Blame information for rev 135

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 131 jt_eaton
 
2
 
3
 
4
 
5
   //
6
   // Internal wires and regs
7
   //
8
 
9
reg ex_freeze_r;
10
 
11
  always @( posedge clk)
12
     if (reset) ex_freeze_r <= 1'b1;
13
     else       ex_freeze_r <= ex_freeze;
14
 
15
 
16
 
17
 
18
 
19
   wire [2*WIDTH-1:0]                   mul_prod;
20
   reg [1:0]                            mul_stall_count;
21
 
22
 
23 135 jt_eaton
`ifndef SYNTHESIS
24 131 jt_eaton
 
25
always@(posedge clk)
26
 
27
if(mul_stall_count == 2'b10)
28
begin
29
   $display("%t %m mul (%x,%x,%x);",$realtime,a_in,b_in,mul_prod );
30
 
31
 
32
end
33
 
34
 
35
 
36
`endif
37
 
38
 
39
 
40
 
41
 
42
 
43
   or1200_gmultp2_32x32 or1200_gmultp2_32x32(
44
                                             .X(a_in),
45
                                             .Y(b_in),
46
                                             .RST(reset),
47
                                             .CLK(clk),
48
                                             .P(mul_prod)
49
                                             );
50
 
51
 
52
   always @( posedge clk)
53
     if (reset) begin
54
        mul_prod_r <=  64'h0000_0000_0000_0000;
55
     end
56
     else begin
57
        mul_prod_r <=  mul_prod[63:0];
58
     end
59
 
60
   //
61
   // Generate stall signal during multiplication
62
   //
63
   always @( posedge clk)
64
     if (reset)
65
       mul_stall_count <= 0;
66
     else if (!(|mul_stall_count))
67
       mul_stall_count <= {mul_stall_count[0], alu_op_mul & !ex_freeze_r};
68
     else
69
       mul_stall_count <= {mul_stall_count[0],1'b0};
70
 
71
   assign mul_stall = (|mul_stall_count) |
72
                      (!(|mul_stall_count) & alu_op_mul & !ex_freeze_r);
73
 
74
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.