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

Subversion Repositories spacewire

[/] [spacewire/] [tags/] [arelease/] [rtl/] [SPW_I_vlogcore.v] - Blame information for rev 27

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 btltz
//2005-1-18      btltz@mail.china.com      btltz from CASIC,China  
2
//File=Module=SPW_I_vlogcore    2005-2-18      btltz@mail.china.com      btltz from CASIC,China 
3
//Description:   SpaceWire RxTx top module with Wishbone interface to node device(the host) or communication mem.    
4
//                "A SpaceWire node comprise one or more SpaceWire link interfaces
5
//                (encoder-decoders) and an interface to the host system,represents an interface between 
6
//                a SpaceWire network and an application system using the network services."
7
//Approximate area:
8
//Origin:        SpaceWire Std-Draft-1 of ECSS(European Cooperation for Space Standardization),ESTEC,ESA
9
//               
10
//--     TODO:
11
////////////////////////////////////////////////////////////////////////////////////
12
//
13
 
14
/*synthesis translate off*/
15
`timescale 1ns/10ps
16
/*synthesis translate on */
17
`define USE_XIL_DEVICE
18
 
19
module SPW_I_vlogcore #(parameter CH_NUM = 3)                              //Triple Modulo Redundant (TMR)
20
                      ( output [CH_NUM-1:0] Dout,Doutb, Sout,Soutb,   //LVDS pad
21
                        input  [CH_NUM-1:0] Sin, Sinb,  Din, Dinb,        //LVDS pad. 8 pads/pin for 1 channel
22
 
23
                                                          output int_LnkErr_o,
24
                                                          output TICK_o, TICK_i,
25
 
26
                       input  reset,gclk
27
                        );
28
 
29
 
30
//////////////
31
// LVDS IO
32
//
33
`ifdef USE_XIL_DEVICE
34
wire [CH_NUM-1:0] Si,Di,  So,Do;
35
 
36
generate
37
begin:Gen_LVDS_PADS
38
genvar k;
39
 for (k=0; k<CH_NUM, k=k+1)
40
 IBUFDS_LVDS_25   inst_LVDS_Di ( .I(Din[k])                 // P-channel data 
41
                                 .IB(Dinb[k])       // N-channel data 
42
                                                                                   .O(Di[k]) );     // Non-differential data input
43
 IBUFDS_LVDS_25   inst_LVDS_Si ( .I(Sin[k])                 // P-channel strobe 
44
                                 .IB(Sinb[k])       // N-channel strobe 
45
                                                                                   .O(Si[k]) );     // Non-differential strobe input
46
 
47
 
48
 OBUFDS_LVDS_25   inst_LVDS_Do ( .I(Do[k]),                      //Non-differential data output
49
                                .O(Dout[k]),                     //P-channel output 
50
                                .OB(Doutb[k])  );        //N-channel output
51
 OBUFDS_LVDS_25   inst_LVDS_So ( .I(So[k]),                      //Non-differential strobe output
52
                                .O(Sout[k]),                     //P-channel output
53
                                .OB(Soutb[k])  );        //N-channel output
54
end    //end block Gen_LVDS_PADS
55
endgenerate
56
`endif
57
 
58
//////////////////////////
59
// Synchronizer 
60
// between 2 clock domain 
61
synchronizer_flop  #(WIDTH*2) inst_Syn_flops(.sync_data_out(),
62
                                      .data_in(),
63
                                      .clk(),
64
                                      .async_reset()
65
                                      );
66
 
67
/********** Instantiations of low level modules ****************/
68
////// Channels //////
69
generate
70
begin:G_channel
71
genvar i;
72
 for(i=0; i<CHANNEL_NUM; i=i+1)
73
   SPW_CODEC  #() CODEC_xChannels  (
74
                                 );
75
end
76
endgenerate
77
 
78
Gluelogic inst_fifo_crc  ();
79
 
80
WB_COMI_HOCI inst_WB_IF  ();
81
 
82
JTAG_spw  inst_JTAG_IO  ();
83
 
84
 
85
endmodule

powered by: WebSVN 2.1.0

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