OpenCores
URL https://opencores.org/ocsvn/bluespec-h264/bluespec-h264/trunk

Subversion Repositories bluespec-h264

[/] [bluespec-h264/] [trunk/] [src/] [mkH264.bsv] - Blame information for rev 100

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 83 jamey.hick
 
2
// The MIT License
3
 
4
// Copyright (c) 2006-2007 Massachusetts Institute of Technology
5
 
6
// Permission is hereby granted, free of charge, to any person obtaining a copy
7
// of this software and associated documentation files (the "Software"), to deal
8
// in the Software without restriction, including without limitation the rights
9
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
// copies of the Software, and to permit persons to whom the Software is
11
// furnished to do so, subject to the following conditions:
12
 
13
// The above copyright notice and this permission notice shall be included in
14
// all copies or substantial portions of the Software.
15
 
16
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
// THE SOFTWARE.
23
 
24 2 jamey.hick
//**********************************************************************
25
// H264 Main Module
26
//----------------------------------------------------------------------
27
//
28
//
29
 
30
package mkH264;
31
 
32
import H264Types::*;
33
import IH264::*;
34
import INalUnwrap::*;
35
import IEntropyDec::*;
36
import IInverseTrans::*;
37
import IPrediction::*;
38
import IDeblockFilter::*;
39
import IBufferControl::*;
40
import mkNalUnwrap::*;
41
import mkEntropyDec::*;
42
import mkInverseTrans::*;
43
import mkPrediction::*;
44
import mkDeblockFilter::*;
45
import mkBufferControl::*;
46 21 jamey.hick
import EntropyTee::*;
47
import DeblockTee::*;
48
 
49 2 jamey.hick
import Connectable::*;
50
import GetPut::*;
51
import ClientServer::*;
52
 
53
(* synthesize *)
54
module mkH264( IH264 );
55
 
56
   // Instantiate the modules
57
 
58
   INalUnwrap     nalunwrap     <- mkNalUnwrap();
59
   IEntropyDec    entropydec    <- mkEntropyDec();
60
   IInverseTrans  inversetrans  <- mkInverseTrans();
61
   IPrediction    prediction    <- mkPrediction();
62
   IDeblockFilter deblockfilter <- mkDeblockFilter();
63
   IBufferControl buffercontrol <- mkBufferControl();
64
 
65
   // Internal connections
66
   mkConnection( prediction.mem_client_buffer, buffercontrol.inter_server );
67
 
68
   mkConnection( nalunwrap.ioout, entropydec.ioin );
69
   mkConnection( entropydec.ioout_InverseTrans, inversetrans.ioin );
70
   mkConnection( entropydec.ioout, prediction.ioin );
71
   mkConnection( inversetrans.ioout, prediction.ioin_InverseTrans );
72 35 jamey.hick
   mkConnection(prediction.ioout, deblockfilter.ioin);
73
   mkConnection( deblockfilter.ioout, buffercontrol.ioin);
74 2 jamey.hick
 
75
   // Interface to input generator
76
   interface ioin = nalunwrap.ioin;
77
 
78
   // Memory interfaces
79
   interface mem_clientED          = entropydec.mem_client;
80
   interface mem_clientP_intra     = prediction.mem_client_intra;
81
   interface mem_clientP_inter     = prediction.mem_client_inter;
82
   interface mem_clientD_data      = deblockfilter.mem_client_data;
83
   interface mem_clientD_parameter = deblockfilter.mem_client_parameter;
84
   interface buffer_client_load1   = buffercontrol.buffer_client_load1;
85
   interface buffer_client_load2   = buffercontrol.buffer_client_load2;
86
   interface buffer_client_store   = buffercontrol.buffer_client_store;
87
 
88
   // Interface for output
89
   interface ioout = buffercontrol.ioout;
90
 
91
endmodule
92
 
93
endpackage

powered by: WebSVN 2.1.0

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