1 |
7 |
marta |
/* File Name : idea_heart_1r.c */
|
2 |
|
|
/* Description : The one round idea processor heart */
|
3 |
|
|
/* Purpose : To be used by GENLIB */
|
4 |
|
|
/* Date : Aug 21, 2001 */
|
5 |
|
|
/* Version : 1.1 */
|
6 |
|
|
/* Author : Martadinata A. */
|
7 |
|
|
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */
|
8 |
|
|
/* Bandung, Indonesia */
|
9 |
|
|
/* E-mail : marta@ic.vlsi.itb.ac.id */
|
10 |
|
|
#include<genlib.h>
|
11 |
|
|
main()
|
12 |
|
|
{
|
13 |
|
|
DEF_LOFIG("idea_heart_1r");
|
14 |
|
|
LOCON("en[1:7]", IN, "en[1:7]" );
|
15 |
|
|
LOCON("x1[0:15]", IN, "x1[0:15]" );
|
16 |
|
|
LOCON("x2[0:15]", IN, "x2[0:15]" );
|
17 |
|
|
LOCON("x3[0:15]", IN, "x3[0:15]" );
|
18 |
|
|
LOCON("x4[0:15]", IN, "x4[0:15]" );
|
19 |
|
|
LOCON("z1[0:15]", IN, "z1[0:15]" );
|
20 |
|
|
LOCON("z2[0:15]", IN, "z2[0:15]" );
|
21 |
|
|
LOCON("z3[0:15]", IN, "z3[0:15]" );
|
22 |
|
|
LOCON("z4[0:15]", IN, "z4[0:15]" );
|
23 |
|
|
LOCON("z5[0:15]", IN, "z5[0:15]" );
|
24 |
|
|
LOCON("z6[0:15]", IN, "z6[0:15]" );
|
25 |
|
|
LOCON("y1[0:15]", INOUT, "y1[0:15]" );
|
26 |
|
|
LOCON("y2[0:15]", INOUT, "y2[0:15]" );
|
27 |
|
|
LOCON("y3[0:15]", INOUT, "y3[0:15]" );
|
28 |
|
|
LOCON("y4[0:15]", INOUT, "y4[0:15]" );
|
29 |
|
|
LOCON("reset", IN, "reset" );
|
30 |
|
|
LOCON("vdd", IN, "vdd" );
|
31 |
|
|
LOCON("vss", IN, "vss" );
|
32 |
|
|
|
33 |
|
|
LOINS("sm16plus1mul_glopf","mul1","x1[0:15]","z1[0:15]","en[1]","reset","o_mul1[0:15]","vdd","vss",0);
|
34 |
|
|
LOINS("sm16adder_glopf","add1","x2[0:15]","z2[0:15]","en[1]","reset","o_add1[0:15]","vdd","vss",0);
|
35 |
|
|
LOINS("sm16adder_glopf","add2","x3[0:15]","z3[0:15]","en[1]","reset","o_add2[0:15]","vdd","vss",0);
|
36 |
|
|
LOINS("sm16plus1mul_glopf","mul2","x4[0:15]","z4[0:15]","en[1]","reset","o_mul2[0:15]","vdd","vss",0);
|
37 |
|
|
|
38 |
|
|
LOINS("s16xor_glopf","xr1","o_mul1[0:15]","o_add2[0:15]","en[2]","reset","o_xr1[0:15]","vdd","vss",0);
|
39 |
|
|
LOINS("s16xor_glopf","xr2","o_add1[0:15]","o_mul2[0:15]","en[2]","reset","o_xr2[0:15]","vdd","vss",0);
|
40 |
|
|
|
41 |
|
|
LOINS("sm16plus1mul_glopf","mul3","o_xr1[0:15]","z5[0:15]","en[3]","reset","o_mul3[0:15]","vdd","vss",0);
|
42 |
|
|
LOINS("sm16adder_glopf","add3","o_mul3[0:15]","o_xr2[0:15]","en[4]","reset","o_add3[0:15]","vdd","vss",0);
|
43 |
|
|
LOINS("sm16plus1mul_glopf","mul4","o_add3[0:15]","z6[0:15]","en[5]","reset","o_mul4[0:15]","vdd","vss",0);
|
44 |
|
|
LOINS("sm16adder_glopf","add4","o_mul3[0:15]","o_mul4[0:15]","en[6]","reset","o_add4[0:15]","vdd","vss",0);
|
45 |
|
|
|
46 |
|
|
LOINS("s16xor_glopf","xr3","o_mul1[0:15]","o_mul4[0:15]","en[7]","reset","y1[0:15]","vdd","vss",0);
|
47 |
|
|
LOINS("s16xor_glopf","xr4","o_add2[0:15]","o_mul4[0:15]","en[7]","reset","y2[0:15]","vdd","vss",0);
|
48 |
|
|
LOINS("s16xor_glopf","xr5","o_add1[0:15]","o_add4[0:15]","en[7]","reset","y3[0:15]","vdd","vss",0);
|
49 |
|
|
LOINS("s16xor_glopf","xr6","o_mul2[0:15]","o_add4[0:15]","en[7]","reset","y4[0:15]","vdd","vss",0);
|
50 |
|
|
|
51 |
|
|
SAVE_LOFIG();
|
52 |
|
|
exit(0);
|
53 |
|
|
}
|