OpenASIP  2.0
MicroCodeGenerator.hh
Go to the documentation of this file.
1 /*
2  Copyright (C) 2021-2022 Tampere University.
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Lesser General Public
6  License as published by the Free Software Foundation; either
7  version 2.1 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Lesser General Public License for more details.
13 
14  You should have received a copy of the GNU Lesser General Public
15  License along with this library; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 /**
19  * @file MicroCodeGenerator.hh
20  *
21  * Declaration of MicroCodeGenerator class.
22  *
23  * @author Kari Hepola 2021-2022 (kari.hepola@tuni.fi)
24  * @note rating: red
25  */
26 
27 #ifndef TTA_INSTRUCTION_TRANSLATOR_HH
28 #define TTA_INSTRUCTION_TRANSLATOR_HH
29 
30 
31 #include <string>
32 
33 namespace TTAMachine {
34  class Machine;
35  class Bus;
36  class Port;
37 }
38 
41 
42 using namespace TTAMachine;
43 
44 namespace ProGe {
45 
47 
48 public:
49  MicroCodeGenerator() = default;
50  ~MicroCodeGenerator() = default;
51 
52  virtual void generateRTL(HDLTemplateInstantiator& instantiator,
53  const std::string& fileDst) = 0;
54 
55  struct Connection {
56  Bus* bus;
58  };
59 
60 };
61 }
62 #endif
ProGe::MicroCodeGenerator::Connection
Definition: MicroCodeGenerator.hh:55
HDLTemplateInstantiator
Definition: HDLTemplateInstantiator.hh:45
TTAMachine::Bus
Definition: Bus.hh:53
ProGe::MicroCodeGenerator::Connection::port
Port * port
Definition: MicroCodeGenerator.hh:57
ProGe::MicroCodeGenerator
Definition: MicroCodeGenerator.hh:46
TTAMachine::Port
Definition: Port.hh:54
ProGe
Definition: FUGen.hh:54
ProGe::MicroCodeGenerator::Connection::bus
Bus * bus
Definition: MicroCodeGenerator.hh:56
TTAMachine
Definition: Assembler.hh:48
TTAMachine::Machine
Definition: Machine.hh:73
InstructionBitVector
Definition: InstructionBitVector.hh:50