gem5  v20.1.0.0
design_rtl.h
Go to the documentation of this file.
1 /*****************************************************************************
2 
3  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
4  more contributor license agreements. See the NOTICE file distributed
5  with this work for additional information regarding copyright ownership.
6  Accellera licenses this file to you under the Apache License, Version 2.0
7  (the "License"); you may not use this file except in compliance with the
8  License. You may obtain a copy of the License at
9 
10  http://www.apache.org/licenses/LICENSE-2.0
11 
12  Unless required by applicable law or agreed to in writing, software
13  distributed under the License is distributed on an "AS IS" BASIS,
14  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15  implied. See the License for the specific language governing
16  permissions and limitations under the License.
17 
18  *****************************************************************************/
19 
20 /*****************************************************************************
21 
22  design_rtl.h --
23 
24  Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
25 
26  *****************************************************************************/
27 
28 /*****************************************************************************
29 
30  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
31  changes you are making here.
32 
33  Name, Affiliation, Date:
34  Description of Modification:
35 
36  *****************************************************************************/
37 
38 #include <systemc.h>
39 
41 public:
42  sc_in<sc_uint<1> > clk;
43  sc_in<sc_uint<32> > count;
44  sc_out<sc_uint<9> > out_a0;
45  sc_out<sc_uint<9> > out_a1;
46  SC_CTOR(fun) {
47  SC_METHOD(p1);
48  sensitive << count << out_a1;
49  };
50 private:
51 
52  template<int w> sc_int<w> int_conv_from_sc_uint_to_sc_int ( sc_uint<w>
53  a) {
54  sc_int<w> a_temp;
55  for (int i=0;i<w; i++)
56  a_temp[i] = a[i];
57  return a_temp;
58  }
59 
60  template<int w> sc_bigint<w> int_conv_from_sc_biguint_to_sc_bigint (
61  sc_biguint<w> a) {
62  sc_bigint<w> a_temp;
63  for (int i=0;i<w; i++)
64  a_temp[i] = a[i];
65  return a_temp;
66  }
67 
68  template<int w> sc_int<w> int_conv_from_sc_uint_to_sc_int ( bool a) {
69  sc_int<w> a_temp;
70  a_temp[0] = a;
71  return a_temp;
72  }
73 
74 
75  sc_uint<32> C18_B, C18_REMAINDER;
76  bool N73, N74, N75, N76, N77, N78, N79, N80, N81, N82, N83, N84, N85,
77  N86, N87, N88, N89, N90, N91, N92, N93, N94, N95, N96, N97, N98,
78  N99, N100, N101, N102, N103, N104, N105, N106, N107, N108, N109,
79  N110, N111, N112, N113, N114, N115, N116, N117, N118, N119, N120,
80  N121, N122, N123, N124, N125, N126, N127, N128, N129, N130, N131,
81  N132, N133, N134;
82 
83  void p1( ) {
84  out_a1[0].write( 0 );
85  out_a1[1].write( 0 );
86  out_a1[3].write( 1 );
87  out_a1[5].write( 1 );
88  out_a1[7].write( 0 );
89  out_a1[8].write( 0 );
90  out_a0[2].write( (0 ^ 1) );
91  out_a0[5].write( (0 ^ 1) );
92  C18_B[31] = 0 ;
93  C18_B[30] = 0 ;
94  C18_B[29] = 0 ;
95  C18_B[28] = 0 ;
96  C18_B[27] = 0 ;
97  C18_B[26] = 0 ;
98  C18_B[25] = 0 ;
99  C18_B[24] = 0 ;
100  C18_B[23] = 0 ;
101  C18_B[22] = 0 ;
102  C18_B[21] = 0 ;
103  C18_B[20] = 0 ;
104  C18_B[19] = 0 ;
105  C18_B[18] = 0 ;
106  C18_B[17] = 0 ;
107  C18_B[16] = 0 ;
108  C18_B[15] = 0 ;
109  C18_B[14] = 0 ;
110  C18_B[13] = 0 ;
111  C18_B[12] = 0 ;
112  C18_B[11] = 0 ;
113  C18_B[10] = 0 ;
114  C18_B[9] = 0 ;
115  C18_B[8] = 0 ;
116  C18_B[7] = 0 ;
117  C18_B[6] = 0 ;
118  C18_B[5] = 0 ;
119  C18_B[4] = 0 ;
120  C18_B[3] = 0 ;
121  C18_B[2] = 0 ;
122  C18_B[1] = 1 ;
123  C18_B[0] = 1 ;
124 
125  // REM_UNS_OP(A,B,REMAINDER)
126  REM_UNS_OP( count.read(), C18_B, C18_REMAINDER );
127  }
128  out_a0[7].write( (0 ^ 0) );
129  out_a0[8].write( (0 ^ 0) );
130  N73 = !(C18_REMAINDER[31]);
131  N74 = !(C18_REMAINDER[30]);
132  N76 = !(C18_REMAINDER[29]);
133  N78 = !(C18_REMAINDER[28]);
134  N80 = !(C18_REMAINDER[27]);
135  N82 = !(C18_REMAINDER[26]);
136  N84 = !(C18_REMAINDER[25]);
137  N86 = !(C18_REMAINDER[24]);
138  N88 = !(C18_REMAINDER[23]);
139  N90 = !(C18_REMAINDER[22]);
140  N92 = !(C18_REMAINDER[21]);
141  N94 = !(C18_REMAINDER[20]);
142  N96 = !(C18_REMAINDER[19]);
143  N98 = !(C18_REMAINDER[18]);
144  N100 = !(C18_REMAINDER[17]);
145  N102 = !(C18_REMAINDER[16]);
146  N104 = !(C18_REMAINDER[15]);
147  N106 = !(C18_REMAINDER[14]);
148  N108 = !(C18_REMAINDER[13]);
149  N110 = !(C18_REMAINDER[12]);
150  N112 = !(C18_REMAINDER[11]);
151  N114 = !(C18_REMAINDER[10]);
152  N116 = !(C18_REMAINDER[9]);
153  N118 = !(C18_REMAINDER[8]);
154  N120 = !(C18_REMAINDER[7]);
155  N122 = !(C18_REMAINDER[6]);
156  N124 = !(C18_REMAINDER[5]);
157  N126 = !(C18_REMAINDER[4]);
158  N128 = !(C18_REMAINDER[3]);
159  N130 = !(C18_REMAINDER[2]);
160  N132 = !(C18_REMAINDER[1]);
161  N134 = !(C18_REMAINDER[0]);
162  N75 = (N73 && N74);
163  N77 = (N75 && N76);
164  N79 = (N77 && N78);
165  N81 = (N79 && N80);
166  N83 = (N81 && N82);
167  N85 = (N83 && N84);
168  N87 = (N85 && N86);
169  N89 = (N87 && N88);
170  N91 = (N89 && N90);
171  N93 = (N91 && N92);
172  N95 = (N93 && N94);
173  N97 = (N95 && N96);
174  N99 = (N97 && N98);
175  N101 = (N99 && N100);
176  N103 = (N101 && N102);
177  N105 = (N103 && N104);
178  N107 = (N105 && N106);
179  N109 = (N107 && N108);
180  N111 = (N109 && N110);
181  N113 = (N111 && N112);
182  N115 = (N113 && N114);
183  N117 = (N115 && N116);
184  N119 = (N117 && N118);
185  N121 = (N119 && N120);
186  N123 = (N121 && N122);
187  N125 = (N123 && N124);
188  N127 = (N125 && N126);
189  N129 = (N127 && N128);
190  N131 = (N129 && N130);
191  N133 = (N131 && N132);
192  out_a1[6].write( (N133 && N134) );
193  out_a1[4].write( out_a1.read()[6] );
194  out_a0[3].write( (0 ^ out_a1.read()[6]) );
195  out_a0[4].write( (0 ^ out_a1.read()[6]) );
196  out_a0[6].write( (0 ^ out_a1.read()[6]) );
197  out_a1[2].write( !(out_a1.read()[6]) );
198  out_a0[0].write( (out_a1.read()[2] ^ 0) );
199  out_a0[1].write( (out_a1.read()[6] ^ out_a1.read()[2]) );
200 
201  }
202 
203 };
ArmISA::i
Bitfield< 7 > i
Definition: miscregs_types.hh:63
SC_CTOR
#define SC_CTOR(name)
Definition: sc_module.hh:293
X86ISA::count
count
Definition: misc.hh:703
fun
Definition: design.h:40
SC_MODULE
SC_MODULE(fun)
Definition: design_rtl.h:40
ArmISA::a
Bitfield< 8 > a
Definition: miscregs_types.hh:62
MipsISA::w
Bitfield< 0 > w
Definition: pra_constants.hh:278
SC_METHOD
#define SC_METHOD(name)
Definition: sc_module.hh:299

Generated on Wed Sep 30 2020 14:02:18 for gem5 by doxygen 1.8.17