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

Subversion Repositories async_sdm_noc

[/] [async_sdm_noc/] [branches/] [clos_opt/] [common/] [src/] [pipe4.v] - Blame information for rev 70

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 11 wsong0210
/*
2
 Asynchronous SDM NoC
3
 (C)2011 Wei Song
4
 Advanced Processor Technologies Group
5
 Computer Science, the Univ. of Manchester, UK
6
 
7
 Authors:
8
 Wei Song     wsong83@gmail.com
9
 
10
 License: LGPL 3.0 or later
11
 
12
 General pipeline stage using the 4-phase 1-of-4 QDI protocol.
13
 *** SystemVerilog is used ***
14
 
15
 History:
16
 05/05/2009  Initial version. <wsong83@gmail.com>
17 14 wsong0210
 17/04/2011  Replace the common ack generation. <wsong83@gmail.com>
18 28 wsong0210
 26/05/2011  Clean up for opensource. <wsong83@gmail.com>
19 62 wsong0210
 21/06/2011  Remove the eof as it makes confusion. <wsong83@gmail.com>
20 11 wsong0210
 
21
*/
22
 
23
module pipe4(/*AUTOARG*/
24
   // Outputs
25
   ia, o0, o1, o2, o3,
26
   // Inputs
27
   i0, i1, i2, i3, oa
28
   );
29
 
30
   parameter DW = 32;           // the data width of the pipeline stage
31
   parameter SCN = DW/2;        // the number of 1-of-4 sub-stage required
32
 
33 14 wsong0210
   input  [SCN-1:0]  i0, i1, i2, i3;
34
   output [SCN-1:0]  o0, o1, o2, o3;
35
   input             oa;        // input ack
36
   output            ia;        // output ack
37 11 wsong0210
 
38
   // internal signals
39 28 wsong0210
   wire [SCN-1:0]    tack;
40 11 wsong0210
 
41
   // generate the ack line
42
   genvar       i;
43
 
44
   // the data pipe stage
45
   generate for (i=0; i<SCN; i++) begin:DD
46 14 wsong0210
      dc2 DC0 (.d(i0[i]), .a(oa), .q(o0[i]));
47
      dc2 DC1 (.d(i1[i]), .a(oa), .q(o1[i]));
48
      dc2 DC2 (.d(i2[i]), .a(oa), .q(o2[i]));
49
      dc2 DC3 (.d(i3[i]), .a(oa), .q(o3[i]));
50 11 wsong0210
   end endgenerate
51
 
52
   // generate the input ack
53 14 wsong0210
   assign tack = o0|o1|o2|o3;
54
   ctree #(.DW(SCN)) ACKT (.ci(tack), .co(ia));
55 11 wsong0210
 
56 12 wsong0210
endmodule // pipe4
57 11 wsong0210
 
58
 
59
 
60 12 wsong0210
 

powered by: WebSVN 2.1.0

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