URL
https://opencores.org/ocsvn/idea/idea/trunk
Subversion Repositories idea
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 6 to Rev 7
- ↔ Reverse comparison
Rev 6 → Rev 7
/trunk/structural_c/inout_port/key_in.c
0,0 → 1,38
/* File Name : key_in.c */ |
/* Description : The key in block */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 30, 2001 */ |
/* Version : 1.1 */ |
/* Author : Sigit Dewantoro */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : sigit@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
int i; |
DEF_LOFIG("key_in"); |
LOCON("inkey[31:0]", IN, "inkey[31:0]" ); |
LOCON("key_sended", IN, "key_sended" ); |
LOCON("clk", IN, "clk" ); |
LOCON("rst", IN, "rst" ); |
LOCON("req_key", OUT, "req_key" ); |
LOCON("ikey_ready", INOUT, "ikey_ready" ); |
LOCON("inkey64[127:0]", OUT, "inkey64[127:0]" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
|
LOINS("dec1to4","dec12","inkey[31:0]","n_block","en_bufin","rst","inkey64_total[127:95]", |
"inkey64_total[95:64]","inkey64_total[63:32]","inkey64_total[31:0]","vdd","vss",0); |
|
LOINS("in_key","ctrl_inkey","clk","rst","key_sended","en_bufin", |
"req_key","ikey_ready","n_block", "vdd","vss",0); |
for(i=0;i<128;i++) |
LOINS("buf_x2",NAME("buf%d",i),NAME("inkey64_total[%d]",i),NAME("inkey64[%d]",i), |
"vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/inout_port/data_in.c
0,0 → 1,39
/* File Name : data_in.c */ |
/* Description : The data in block */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 30, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
int i; |
DEF_LOFIG("data_in"); |
LOCON("datain[31:0]", IN, "datain[31:0]" ); |
LOCON("dt_sended", IN, "dt_sended" ); |
LOCON("emp_buf", IN, "emp_buf" ); |
LOCON("clk", IN, "clk" ); |
LOCON("rst", IN, "rst" ); |
LOCON("req_dt", OUT, "req_dt" ); |
LOCON("dt_ready", INOUT, "dt_ready" ); |
LOCON("data64in[63:0]", OUT, "data64in[63:0]" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
|
LOINS("dec1to2","dec12","datain[31:0]","n_block","en_bufin","rst","data64in_t[63:32]", |
"data64in_t[31:0]","vdd","vss",0); |
|
LOINS("control_datain","ctrl_dtin","clk","rst","dt_sended","emp_buf","en_bufin", |
"req_dt","dt_ready","n_block", "vdd","vss",0); |
for(i=0;i<=63;i++) |
LOINS("buf_x2",NAME("buf%d",i),NAME("data64in_t[%d]",i),NAME("data64in[%d]",i), |
"vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/inout_port/data_out.c
0,0 → 1,34
/* File Name : data_out.c */ |
/* Description : The data out block */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 30, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
DEF_LOFIG("data_out"); |
LOCON("data64out[63:0]", IN, "data64out[63:0]" ); |
LOCON("cp_ready", IN, "cp_ready" ); |
LOCON("emp_bufout", IN, "emp_bufout" ); |
LOCON("clk", IN, "clk" ); |
LOCON("rst", IN, "rst" ); |
LOCON("req_cp", OUT, "req_cp" ); |
LOCON("cp_sended", OUT, "cp_sended" ); |
LOCON("dataout[31:0]", OUT, "dataout[31:0]" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
|
LOINS("mux2to1","mux","data64out[63:0]","n_block","en_bufout","rst", |
"dataout[31:0]","vdd","vss",0); |
|
LOINS("control_dataout","ctrl_dtout","clk","rst","cp_ready","emp_bufout", |
"en_bufout","req_cp","cp_sended","n_block","vdd","vss",0); |
|
SAVE_LOFIG(); exit(0); |
} |
/trunk/structural_c/operation_mode/reg01.c
0,0 → 1,29
// File Name : reg01.c |
// Description : Register 1 bit in C |
// Author : Sigit Dewantoro |
// Date : July 3rd, 2001 |
|
#include<genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG("reg01"); |
LOCON("a", IN, "a"); |
LOCON("rst", IN, "rst"); |
LOCON("en", IN, "en"); |
// LOCON("c", INOUT, "c"); |
LOCON("b", INOUT, "b"); |
LOCON("vdd", IN, "vdd"); |
LOCON("vss", IN, "vss"); |
|
LOINS ("a2_x2", "and1", "en", "a", "a1", "vdd", "vss", 0); |
LOINS ("no2_x1", "nor1", "a1", "b", "c", "vdd", "vss", 0); |
LOINS ("inv_x1", "inv1", "a", "nota", "vdd", "vss", 0); |
LOINS ("a2_x2", "and2", "en", "nota" , "a2", "vdd", "vss", 0); |
LOINS ("no3_x1", "nor2", "a2", "c", "rst", "b", "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/operation_mode/register64.c
0,0 → 1,25
// File Name : register64.c |
// Description : Register 64 bit in C |
// Author : Sigit Dewantoro |
// Date : July 10th, 2001 |
|
#include<genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG("register64"); |
LOCON("a[0:63]", IN, "a[0:63]"); |
LOCON("rst", IN, "rst"); |
LOCON("en", IN, "en"); |
LOCON("b[0:63]", INOUT, "b[0:63]"); |
LOCON("vdd", IN, "vdd"); |
LOCON("vss", IN, "vss"); |
|
for (i=0; i<64; i++) |
LOINS ("reg01", NAME("reg%d", i + 1), NAME("a[%d]", i), "rst", "en", NAME("b[%d]", i), "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/operation_mode/reg01_pat.c
0,0 → 1,59
// File Name : reg01_pat.c |
// Description : Test Pattern for block register |
// Author : Sigit Dewantoro |
// Date : July 3rd, 2001 |
|
#include <stdio.h> |
#include "genpat.h" |
|
char *inttostr (entier) |
int entier; |
{ |
char *str; |
str = (char *) mbkalloc (32 * sizeof (char)); |
sprintf (str, "%d", entier); |
return (str); |
} |
|
main () |
{ |
int i, j, k, l, m; |
int vect_date; /* this date is an absolute date, in ps */ |
|
DEF_GENPAT ("reg01"); |
|
SETTUNIT ("ns"); |
|
/* interface */ |
DECLAR ("vdd", ":2", "B", IN, "", ""); |
DECLAR ("vss", ":2", "B", IN, "", ""); |
DECLAR ("a", ":2", "B", IN, "", ""); |
DECLAR ("rst", ":2", "B", IN, "", ""); |
DECLAR ("en", ":2", "B", IN, "", ""); |
DECLAR ("b", ":2", "B", OUT, "", ""); |
DECLAR ("c", ":2", "B", OUT, "", ""); |
|
LABEL ("pat"); |
AFFECT ("0", "vss", "0b0"); |
AFFECT ("0", "vdd", "0b1"); |
|
|
for (i=0; i<2; i++) |
for (j=0; j<2; j++) |
for (k=0; k<2; k++) |
for (l=0; l<2; l++) |
{ |
vect_date = ((i*2 + j)*2 + k); |
AFFECT (inttostr(vect_date), "a", inttostr(i)); |
AFFECT (inttostr(vect_date), "rst", inttostr(j)); |
AFFECT (inttostr(vect_date), "en", inttostr(k)); |
} |
|
vect_date = vect_date + 1; |
AFFECT (inttostr(vect_date), "vss", "0b0"); |
AFFECT (inttostr(vect_date), "a", "0b0"); |
AFFECT (inttostr(vect_date), "rst", "0b0"); |
AFFECT (inttostr(vect_date), "en", "0b0"); |
|
SAV_GENPAT (); |
} |
/trunk/structural_c/operation_mode/xor64.c
0,0 → 1,29
// File Name : xor64.c |
// Description : xor 64 bit in C |
// Author : Sigit Dewantoro |
// Date : July 10th, 2001 |
|
#include<genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG("xor64"); |
LOCON("a[0:63]", IN, "a[0:63]"); |
LOCON("b[0:63]", IN, "b[0:63]"); |
// LOCON("rst", IN, "rst"); |
// LOCON("en", IN, "en"); |
LOCON("o[0:63]", OUT, "o[0:63]"); |
LOCON("vdd", IN, "vdd"); |
LOCON("vss", IN, "vss"); |
|
for (i=0; i<64; i++) |
{ |
LOINS ("xr2_x1", NAME("xor%d", i + 1), NAME("a[%d]", i), NAME("b[%d]",i), NAME("i[%d]", i), "vdd", "vss", 0); |
|
LOINS ("latch", NAME("en%d", i+1), NAME("i%d",i), "en", NAME("o%d",i),"vdd","vss",0); |
} |
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/operation_mode/latch.c
0,0 → 1,24
// File Name : latch.c |
// Description : Latch in C |
// Author : Sigit Dewantoro |
// Date : March 27th, 2001 |
|
#include <genlib.h> |
|
main() |
{ |
DEF_LOFIG ("latch"); |
|
LOCON ("a", IN, "a"); |
LOCON ("en", IN, "en"); |
LOCON ("b", INOUT, "b"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("noa22_x1", "notorand1", "en", "a", "b", "q", "vdd", "vss", 0); |
LOINS ("inv_x1", "inv1", "a", "nota", "vdd", "vss", 0); |
LOINS ("noa22_x1", "notorand2", "en", "nota" , "q", "b", "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/operation_mode/blokmode.c
0,0 → 1,44
// File Name : blokmode.c |
// Description : blokmode in C |
// Author : Sigit Dewantoro |
// Date : July 10th, 2001 |
|
#include<genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG("blokmode"); |
LOCON("data_in[0:63]", IN, "data_in[0:63]"); |
LOCON("ideam_out[0:63]", IN, "ideam_out[0:63]"); |
LOCON("rst", IN, "rst"); |
LOCON("clk", IN, "clk"); |
LOCON("en_in", IN, "en_in"); |
LOCON("en_iv", IN, "en_iv"); |
LOCON("en_rcbc", IN, "en_rcbc"); |
LOCON("en_out", IN, "en_out"); |
LOCON("sel1[0:1]", IN, "sel1[0:1]"); |
LOCON("sel2[0:1]", IN, "sel2[0:1]"); |
LOCON("sel3[0:1]", IN, "sel3[0:1]"); |
LOCON("dt_inidea[0:63]", OUT, "dt_inidea[0:63]"); |
LOCON("cp_out[0:63]", OUT, "cp_out[0:63]"); |
LOCON("vdd", IN, "vdd"); |
LOCON("vss", IN, "vss"); |
|
for (i=0;i<64;i++) |
LOINS ("zero_x0", NAME("zero%d",i), NAME("zero64[%d]",i), "vdd", "vss", 0); |
|
LOINS ("register64", "reg_in", "data_in[0:63]", "rst","en_in", "reg_in[0:63]", "vdd", "vss", 0); |
LOINS ("mux64", "mux1", "xor2[63:0]", "reg_in[63:0]", "zero64[63:0]", "sel1[1:0]", "mux1[63:0]", "vdd", "vss", 0); |
LOINS ("register64", "reg_iv","mux1[0:63]", "rst", "en_iv", "reg_iv[0:63]", "vdd", "vss", 0); |
LOINS ("mux64", "mux2", "xor2[63:0]", "reg_iv[63:0]", "zero64[63:0]", "sel2[1:0]", "mux2[63:0]","vdd", "vss", 0); |
LOINS ("xor64", "xor1", "mux1[63:0]", "mux2[63:0]", "dt_inidea[63:0]", "vdd", "vss", 0); |
LOINS ("register64", "reg_cbc", "reg_iv[0:63]", "rst","en_rcbc", "reg_cbc[0:63]", "vdd", "vss", 0); |
LOINS ("mux64", "mux3", "reg_cbc[63:0]", "reg_in[63:0]", "zero64[63:0]", "sel3[1:0]","mux3[63:0]","vdd", "vss", 0); |
LOINS ("xor64", "xor2", "ideam_out[63:0]", "mux3[63:0]", "xor2[63:0]", "vdd", "vss", 0); |
LOINS ("register64", "reg_out","xor2[0:63]", "rst","en_out","cp_out[0:63]", "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/main control/d_latch.c
0,0 → 1,21
/* D latch with an asynchronized clr */ |
#include<genlib.h> |
main() |
{ |
DEF_LOFIG("d_latch"); |
LOCON("d", IN, "d" ); |
LOCON("en", IN, "en" ); |
LOCON("clr", IN, "clr"); |
LOCON("q", INOUT, "q" ); |
LOCON("vdd", IN, "vdd"); |
LOCON("vss", IN, "vss"); |
|
LOINS("inv_x2","inv","d","o_inv","vdd","vss",0); |
LOINS("a2_x2","an1","o_inv","en","o_an1","vdd","vss",0); |
LOINS("a2_x2","an2","d","en","o_an2","vdd","vss",0); |
LOINS("no3_x4","nor1","o_an1","clr","o_nor2","q","vdd","vss",0); |
LOINS("no2_x4","nor2","q","o_an2","o_nor2","vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/main control/reg01.c
0,0 → 1,29
// File Name : reg01.c |
// Description : Register 1 bit in C |
// Author : Sigit Dewantoro |
// Date : July 3rd, 2001 |
|
#include<genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG("reg01"); |
LOCON("a", IN, "a"); |
LOCON("rst", IN, "rst"); |
LOCON("en", IN, "en"); |
LOCON("c", INOUT, "c"); |
LOCON("b", INOUT, "b"); |
LOCON("vdd", IN, "vdd"); |
LOCON("vss", IN, "vss"); |
|
LOINS ("a2_x2", "and1", "en", "a", "a1", "vdd", "vss", 0); |
LOINS ("no2_x1", "nor1", "a1", "b", "c", "vdd", "vss", 0); |
LOINS ("inv_x1", "inv1", "a", "nota", "vdd", "vss", 0); |
LOINS ("a2_x2", "and2", "en", "nota" , "a2", "vdd", "vss", 0); |
LOINS ("no3_x1", "nor2", "a2", "c", "rst", "b", "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/main control/register64.c
0,0 → 1,25
// File Name : register64.c |
// Description : Register 64 bit in C |
// Author : Sigit Dewantoro |
// Date : July 10th, 2001 |
|
#include<genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG("register64"); |
LOCON("a[0:63]", IN, "a[0:63]"); |
LOCON("rst", IN, "rst"); |
LOCON("en", IN, "en"); |
LOCON("b[0:63]", INOUT, "b[0:63]"); |
LOCON("vdd", IN, "vdd"); |
LOCON("vss", IN, "vss"); |
|
for (i=0; i<64; i++) |
LOINS ("reg01", NAME("reg%d", i + 1), NAME("a[%d]", i), "rst", "en", NAME("b[%d]", i), "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/main control/controlmode.c
0,0 → 1,105
// File Name : controlmode.c |
// Version : v1.2 |
// Description : control block for operation mode |
// Purpose : to generate structural description of control mode |
// Author : Sigit Dewantoro |
// Address : IS Laboratory, Labtek VIII, ITB, Jl. Ganesha 10, Bandung, Indonesia |
// Email : sigit@students.ee.itb.ac.id, sigit@ic.vlsi.itb.ac.id |
// Date : August 24th, 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("controlmode"); |
|
LOCON ("clk", IN, "clk"); |
LOCON ("start", IN, "start"); |
LOCON ("mode[0:1]", IN, "mode[0:1]"); |
|
LOCON ("cke", IN, "cke"); |
LOCON ("ikey_ready", IN, "ikey_ready"); |
LOCON ("key_ready", IN, "key_ready"); |
LOCON ("dt_ready", IN, "dt_ready"); |
LOCON ("finish", IN, "finish"); |
LOCON ("req_cp", IN, "req_cp"); |
LOCON ("E", IN, "E"); |
|
LOCON ("first_dt", OUT, "first_dt"); |
LOCON ("E_mesin", OUT, "E_mesin"); |
LOCON ("s_mesin", OUT, "s_mesin"); |
LOCON ("s_gen_key", OUT, "s_gen_key"); |
LOCON ("emp_buf", OUT, "emp_buf"); |
LOCON ("cp_ready", OUT, "cp_ready"); |
LOCON ("cke_b_mode", OUT, "cke_b_mode"); |
LOCON ("en_in", OUT, "en_in"); |
LOCON ("en_iv", OUT, "en_iv"); |
LOCON ("en_rcbc", OUT, "en_rcbc"); |
LOCON ("en_out", OUT, "en_out"); |
LOCON ("sel1[0:1]", OUT, "sel1[0:1]"); |
LOCON ("sel2[0:1]", OUT, "sel2[0:1]"); |
LOCON ("sel3[0:1]", OUT, "sel3[0:1]"); |
|
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("dec_mode", "decmode", "start", "mode[1:0]", "modeecb", "modecbc", "modecfb", |
"modeofb", "vdd", "vss", 0); |
|
LOINS ("ecb", "ecb", "modeecb", "clk", "cke", "key_ready", "finish", "req_cp", |
"E", "E_mesin_ecb", "s_mesin_ecb", "s_gen_key_ecb", "emp_buf_ecb", "cp_ready_ecb", |
"cke_b_mode_ecb", "en_in_ecb", "en_iv_ecb", "en_rcbc_ecb", "en_out_ecb", "sel1_ecb[1:0]", |
"sel2_ecb[1:0]", "sel3_ecb[1:0]", "vdd", "vss", 0); |
|
LOINS ("cbc", "cbc", "modecbc", "clk", "cke", "ikey_ready", "key_ready", "dt_ready", |
"finish", "E", "first_dt_cbc", "E_mesin_cbc", "s_mesin_cbc", "s_gen_key_cbc", "emp_buf_cbc", |
"cp_ready_cbc", "cke_b_mode_cbc", "en_in_cbc", "en_iv_cbc", "en_rcbc_cbc", "en_out_cbc", |
"sel1_cbc[1:0]", "sel2_cbc[1:0]", "sel3_cbc[1:0]", "vdd", "vss", 0); |
|
LOINS ("cfb", "cfb", "modecfb", "clk", "key_ready", "dt_ready", "finish", |
"E", "first_dt_cfb", "E_mesin_cfb", "s_mesin_cfb", "s_gen_key_cfb", "emp_buf_cfb", |
"cp_ready_cfb", "cke_b_mode_cfb", "en_in_cfb", "en_iv_cfb", "en_rcbc_cfb", "en_out_cfb", |
"sel1_cfb[1:0]", "sel2_cfb[1:0]", "sel3_cfb[1:0]", "vdd", "vss", 0); |
|
LOINS ("ofb", "ofb", "modeofb", "clk", "key_ready", "dt_ready", "finish","first_dt_ofb", |
"E_mesin_ofb", "s_mesin_ofb", "emp_buf_ofb", "cp_ready_ofb", |
"cke_b_mode_ofb", "en_in_ofb", "en_iv_ofb", "en_rcbc_ofb", "en_out_ofb", |
"sel1_ofb[1:0]", "sel2_ofb[1:0]", "sel3_ofb[1:0]", "vdd", "vss", 0); |
|
LOINS ("zero_x0", "zero", "nol", "vdd", "vss", 0); |
|
LOINS ("mux01", "mux_first_dt", "nol", "first_dt_cbc", "first_dt_cfb", "first_dt_ofb", |
"mode[1:0]", "first_dt", "vdd", "vss", 0); |
LOINS ("mux01", "mux_E_mesin", "E_mesin_ecb", "E_mesin_cbc", "E_mesin_cfb", "E_mesin_ofb", |
"mode[1:0]", "E_mesin", "vdd", "vss", 0); |
LOINS ("mux01", "mux_s_mesin", "s_mesin_ecb", "s_mesin_cbc", "s_mesin_cfb", "s_mesin_ofb", |
"mode[1:0]", "s_mesin", "vdd", "vss", 0); |
LOINS ("mux01", "mux_s_gen_key", "s_gen_key_ecb", "s_gen_key_cbc", "s_gen_key_cfb", "cke_b_mode_ofb", |
"mode[1:0]", "s_gen_key", "vdd", "vss", 0); |
LOINS ("mux01", "mux_emp_buf", "emp_buf_ecb", "emp_buf_cbc", "emp_buf_cfb", "emp_buf_ofb", |
"mode[1:0]", "emp_buf", "vdd", "vss", 0); |
LOINS ("mux01", "mux_cp_ready", "cp_ready_ecb", "cp_ready_cbc", "cp_ready_cfb", "cp_ready_ofb", |
"mode[1:0]", "cp_ready", "vdd", "vss", 0); |
LOINS ("mux01", "mux_cke_b_mode", "cke_b_mode_ecb", "cke_b_mode_cbc", "cke_b_mode_cfb", "cke_b_mode_ofb", |
"mode[1:0]", "cke_b_mode", "vdd", "vss", 0); |
LOINS ("mux01", "mux_en_in", "en_in_ecb", "en_in_cbc", "en_in_cfb", "en_in_ofb", |
"mode[1:0]", "en_in", "vdd", "vss", 0); |
LOINS ("mux01", "mux_en_iv", "en_iv_ecb", "en_iv_cbc", "en_iv_cfb", "en_iv_ofb", |
"mode[1:0]", "en_iv", "vdd", "vss", 0); |
LOINS ("mux01", "mux_en_rcbc", "en_rcbc_ecb", "en_rcbc_cbc", "en_rcbc_cfb", "en_rcbc_ofb", |
"mode[1:0]", "en_rcbc", "vdd", "vss", 0); |
LOINS ("mux01", "mux_en_out", "en_out_ecb", "en_out_cbc", "en_out_cfb", "en_out_ofb", |
"mode[1:0]", "en_out", "vdd", "vss", 0); |
|
LOINS ("mux02", "mux_sel1", "sel1_ecb[1:0]", "sel1_cbc[1:0]", "sel1_cfb[1:0]", "sel1_ofb[1:0]", |
"mode[1:0]", "sel1[1:0]", "vdd", "vss", 0); |
LOINS ("mux02", "mux_sel2", "sel2_ecb[1:0]", "sel2_cbc[1:0]", "sel2_cfb[1:0]", "sel2_ofb[1:0]", |
"mode[1:0]", "sel2[1:0]", "vdd", "vss", 0); |
LOINS ("mux02", "mux_sel3", "sel3_ecb[1:0]", "sel3_cbc[1:0]", "sel3_cfb[1:0]", "sel3_ofb[1:0]", |
"mode[1:0]", "sel3[1:0]", "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/main control/zero34.c
0,0 → 1,23
// File Name : zero34.c |
// Description : Zero 34 bit |
// Author : Sigit Dewantoro |
// Date : June 21th, 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("zero 34"); |
|
LOCON ("zero[33:0]", OUT, "zero[33:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
for (i = 0; i < 34; i++) |
LOINS ("zero_x0", NAME("zero%d", i + 1), NAME("zero[%d]", i), "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/d_latch.c
0,0 → 1,30
/* File Name : d_latch.c */ |
/* Description : The D latch with an asynchronized clr */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 21, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
DEF_LOFIG("d_latch"); |
LOCON("d", IN, "d" ); |
LOCON("ck", IN, "ck" ); |
LOCON("clr", IN, "clr"); |
LOCON("q", INOUT, "q" ); |
LOCON("vdd", IN, "vdd"); |
LOCON("vss", IN, "vss"); |
|
LOINS("inv_x2","inv","d","o_inv","vdd","vss",0); |
LOINS("a2_x2","an1","o_inv","ck","o_an1","vdd","vss",0); |
LOINS("a2_x2","an2","d","ck","o_an2","vdd","vss",0); |
LOINS("no3_x4","nor1","o_an1","clr","o_nor2","q","vdd","vss",0); |
LOINS("no2_x4","nor2","q","o_an2","o_nor2","vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/subtract16.c
0,0 → 1,37
/* File Name : subtract16.c */ |
/* Description : The 16-bit subtractor */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 22, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
int i; |
DEF_LOFIG("subtract16"); |
LOCON("a[0:15]", IN, "a[0:15]" ); |
LOCON("b[0:15]", IN, "b[0:15]" ); |
LOCON("s[0:15]", OUT, "s[0:15]" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
LOINS("zero_x0","zero","o_zero","vdd","vss",0); |
for(i=0;i<=15;i++) |
if (i==0) |
LOINS("fsub_glopg",NAME("fs%d",i),NAME("a[%d]",i),NAME("b[%d]",i),"o_zero", |
NAME("s[%d]",i),NAME("bo[%d]",i),"vdd","vss",0); |
else if(i==15) { |
LOINS("xr2_x1","xr2",NAME("a[%d]",i),NAME("b[%d]",i),"o_xr2","vdd","vss",0); |
LOINS("xr2_x1","xr3","o_xr2",NAME("bo[%d]",i-1),NAME("s[%d]",i),"vdd","vss",0); |
} |
else |
LOINS("fsub_glopg",NAME("fs%d",i),NAME("a[%d]",i),NAME("b[%d]",i),NAME("bo[%d]",i-1), |
NAME("s[%d]",i),NAME("bo[%d]",i),"vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/idea_encryptor_pat_enc.c
0,0 → 1,194
/* File Name : idea_encryptor_pat_enc.c */ |
/* Description : The encryption test patterns of IDEA encryption block */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 23, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include <stdio.h> |
#include "genpat.h" |
#define interval 30 |
|
char *inttostr(entier) |
int entier; |
{ |
char *str; |
str = (char *) mbkalloc (32 * sizeof (char)); |
sprintf (str, "%d",entier); |
return(str); |
} |
|
main () |
{ |
int round,i; |
int time, max; |
|
DEF_GENPAT("idea_encryptor_encrypt"); |
SETTUNIT ("ns"); |
/* Inputs */ |
/* for power supply */ |
DECLAR ("vdd", ":2", "B", IN, "", ""); |
DECLAR ("vss", ":2", "B", IN, "", ""); |
/* for 64-bit input data */ |
DECLAR ("x1", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("x2", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("x3", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("x4", ":2", "X", IN, "15 downto 0", ""); |
/* for the 6 16-bit subkeys of each round */ |
DECLAR ("z1", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z2", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z3", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z4", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z5", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z6", ":2", "X", IN, "15 downto 0", ""); |
/* for the 4 16-bit subkeys of output transformation state */ |
DECLAR ("z19", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z29", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z39", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z49", ":2", "X", IN, "15 downto 0", ""); |
|
/* for control signals */ |
DECLAR ("clk", ":2", "B", IN, "", ""); |
DECLAR ("rst", ":2", "B", IN, "", ""); |
DECLAR ("start", ":2", "B", IN, "", ""); |
DECLAR ("key_ready", ":2", "B", IN, "", ""); |
|
DECLAR ("round", ":2", "B", OUT, "2 downto 0",""); |
DECLAR ("en_key_out", ":2", "B", OUT, "",""); |
DECLAR ("finish", ":2", "B", OUT, "",""); |
|
/* Outputs */ |
/* for 4 16-bit outpus */ |
DECLAR ("y1", ":2", "X", OUT, "15 downto 0", ""); |
DECLAR ("y2", ":2", "X", OUT, "15 downto 0", ""); |
DECLAR ("y3", ":2", "X", OUT, "15 downto 0", ""); |
DECLAR ("y4", ":2", "X", OUT, "15 downto 0", ""); |
max =21; |
for (round=0; round<8; round++) |
{ |
for (i=0;i<max;i++) |
{ |
if(round == 0) |
time = ((round*max) + i) * interval ; |
else if(round ==1 ) { |
max = 16; |
time = ((round*max) + i + 5) * interval; } |
else { |
max = 16; |
time = ((round*max) + i + 5) * interval; } |
|
AFFECT (inttostr(time), "vdd", "0b1"); |
AFFECT (inttostr(time), "vss", "0b0"); |
|
|
if(((time/interval)+2)% 2 == 0) |
AFFECT (inttostr(time), "clk", "0b0"); |
else |
AFFECT (inttostr(time), "clk", "0b1"); |
|
if((time/interval) < 2) |
AFFECT (inttostr(time), "rst", "0b1"); |
else |
AFFECT (inttostr(time), "rst", "0b0"); |
|
if((time/interval) < 5) |
{ AFFECT (inttostr(time), "start", "0b0"); |
AFFECT (inttostr(time), "key_ready", "0b0"); |
} |
else |
{ AFFECT (inttostr(time), "start", "0b1"); |
AFFECT (inttostr(time), "key_ready", "0b1"); |
} |
|
AFFECT (inttostr(time), "x1", "11"); |
AFFECT (inttostr(time), "x2", "12"); |
AFFECT (inttostr(time), "x3", "13"); |
AFFECT (inttostr(time), "x4", "14"); |
|
if(round == 0) |
{ LABEL ("round_1"); |
AFFECT (inttostr(time), "z1", "3"); |
AFFECT (inttostr(time), "z2", "5"); |
AFFECT (inttostr(time), "z3", "7"); |
AFFECT (inttostr(time), "z4", "9"); |
AFFECT (inttostr(time), "z5", "11"); |
AFFECT (inttostr(time), "z6", "13"); |
} |
else if(round == 1) |
{ LABEL ("round_2"); |
AFFECT (inttostr(time), "z1", "15"); |
AFFECT (inttostr(time), "z2", "17"); |
AFFECT (inttostr(time), "z3", "2560"); |
AFFECT (inttostr(time), "z4", "3584"); |
AFFECT (inttostr(time), "z5", "4608"); |
AFFECT (inttostr(time), "z6", "5632"); |
} |
else if(round == 2) |
{ LABEL ("round_3"); |
AFFECT (inttostr(time), "z1", "6656"); |
AFFECT (inttostr(time), "z2", "7680"); |
AFFECT (inttostr(time), "z3", "8704"); |
AFFECT (inttostr(time), "z4", "1536"); |
AFFECT (inttostr(time), "z5", "36"); |
AFFECT (inttostr(time), "z6", "44"); |
} |
else if(round == 3) |
{ LABEL ("round_4"); |
AFFECT (inttostr(time), "z1", "52"); |
AFFECT (inttostr(time), "z2", "60"); |
AFFECT (inttostr(time), "z3", "68"); |
AFFECT (inttostr(time), "z4", "12"); |
AFFECT (inttostr(time), "z5", "20"); |
AFFECT (inttostr(time), "z6", "28"); |
} |
else if(round == 4) |
{ LABEL ("round_5"); |
AFFECT (inttostr(time), "z1", "22528"); |
AFFECT (inttostr(time), "z2", "26624"); |
AFFECT (inttostr(time), "z3", "30720"); |
AFFECT (inttostr(time), "z4", "34816"); |
AFFECT (inttostr(time), "z5", "6144"); |
AFFECT (inttostr(time), "z6", "10240"); |
} |
else if(round == 5) |
{ LABEL ("round_6"); |
AFFECT (inttostr(time), "z1", "14336"); |
AFFECT (inttostr(time), "z2", "18432"); |
AFFECT (inttostr(time), "z3", "240"); |
AFFECT (inttostr(time), "z4", "272"); |
AFFECT (inttostr(time), "z5", "48"); |
AFFECT (inttostr(time), "z6", "80"); |
} |
else if(round == 6) |
{ LABEL ("round_7"); |
AFFECT (inttostr(time), "z1", "112"); |
AFFECT (inttostr(time), "z2", "144"); |
AFFECT (inttostr(time), "z3", "176"); |
AFFECT (inttostr(time), "z4", "208"); |
AFFECT (inttostr(time), "z5", "8192"); |
AFFECT (inttostr(time), "z6", "24576"); |
} |
else |
{ max=22; |
LABEL ("round_8"); |
AFFECT (inttostr(time), "z1", "40960"); |
AFFECT (inttostr(time), "z2", "57345"); |
AFFECT (inttostr(time), "z3", "8193"); |
AFFECT (inttostr(time), "z4", "24577"); |
AFFECT (inttostr(time), "z5", "40961"); |
AFFECT (inttostr(time), "z6", "57346"); |
} |
|
AFFECT (inttostr(time), "z19", "320"); |
AFFECT (inttostr(time), "z29", "448"); |
AFFECT (inttostr(time), "z39", "576"); |
AFFECT (inttostr(time), "z49", "704"); |
|
} |
} |
SAV_GENPAT (); |
} |
|
/trunk/structural_c/idea_machine/m32adder.c
0,0 → 1,35
/* File Name : m32adder.c */ |
/* Description : The modulo 2^32 adder */ |
/* Date : Aug 22, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Adress : VLSI RG, Dept. Electrical of Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
|
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("m32adder"); |
|
LOCON ("a[31:0]", IN, "a[31:0]"); |
LOCON ("b[31:0]", IN, "b[31:0]"); |
LOCON ("sum[31:0]", OUT, "sum[31:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("halfadder_glopf", "halfadder", "a[0]", "b[0]", "cout0", "sum[0]","vdd", "vss", 0); |
|
for (i = 1; i <= 30; i++) |
LOINS("fulladder_glopg", NAME("fulladder%d", i), NAME("a[%d]", i),NAME("b[%d]", i), |
NAME("cout%d", i-1), NAME("cout%d", i), NAME("sum[%d]", i), "vdd", "vss", 0); |
|
LOINS ("xr2_x1", "xr1", "a[31]", "b[31]", "o_xr1", "vdd", "vss", 0); |
LOINS ("xr2_x1", "xr2", "o_xr1", "cout30", "sum[31]", "vdd", "vss", 0); |
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/s16xor.c
0,0 → 1,28
/* File Name : s16xor.c */ |
/* Description : The synchronized 16-bit xor */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 23, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
DEF_LOFIG("s16xor"); |
LOCON("a[0:15]", IN, "a[0:15]" ); |
LOCON("b[0:15]", IN, "b[0:15]" ); |
LOCON("en", IN, "en" ); |
LOCON("clr", IN, "clr" ); |
LOCON("q[0:15]", INOUT, "q[0:15]" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
LOINS("xor16_glopg","xr16","a[0:15]","b[0:15]","o_xr16[0:15]","vdd","vss",0); |
LOINS("reg16_glopf","rg16","o_xr16[0:15]","en","clr","q[0:15]","vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/m16adder.c
0,0 → 1,37
/* File Name : m16adder.c */ |
/* Description : The modulo 2^16 adder */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 21, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
int i; |
DEF_LOFIG("m16adder"); |
LOCON("a[0:15]", IN, "a[0:15]" ); |
LOCON("b[0:15]", IN, "b[0:15]" ); |
LOCON("s[0:15]", OUT, "s[0:15]" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
for(i=0;i<=15;i++) |
if(i==0) |
LOINS("halfadder_glopf","ha","a[0]","b[0]","c[0]","s[0]","vdd","vss",0); |
|
else if(i==15) { |
LOINS("xr2_x1","xr1",NAME("a[%d]",i),NAME("b[%d]",i),"o_xr1","vdd","vss",0); |
LOINS("xr2_x1","xr2","o_xr1",NAME("c[%d]",i-1),NAME("s[%d]",i),"vdd","vss",0); |
} |
else |
LOINS("fulladder_glopg",NAME("fa%d",i), |
NAME("a[%d]",i),NAME("b[%d]",i),NAME("c[%d]",i-1), |
NAME("c[%d]",i),NAME("s[%d]",i),"vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/mul17.c
0,0 → 1,45
/* File Name : mul17.c */ |
/* Description : The 17x17 bit multiplier */ |
/* Date : Aug 21, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Adress : VLSI RG, Dept. Electrical of Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("mul17"); |
|
LOCON ("a[16:0]", IN, "a[16:0]"); |
LOCON ("b[16:0]", IN, "b[16:0]"); |
LOCON ("sum[31:0]", OUT, "sum[31:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
|
LOINS("leftshifter_glopg","lshifter", "a[16:0]", |
"b[15:0]", "r0[31:0]","r1[31:0]","r2[31:0]","r3[31:0]","r4[31:0]", |
"r5[31:0]","r6[31:0]","r7[31:0]","r8[31:0]","r9[31:0]","r10[31:0]", |
"r11[31:0]","r12[31:0]","r13[31:0]","r14[31:0]","r15[31:0]","r16[31:0]", |
"vdd", "vss", 0); |
|
for(i=0;i<=31;i++) |
LOINS ("zero_x0", NAME("zero%d",i), NAME("o_zero[%d]",i), "vdd", "vss", 0); |
|
LOINS ("m32adder_glopg", "m32add_1", "o_zero[31:0]", "r0[31:0]", "sum1[31:0]", "vdd", "vss", 0); |
|
for (i = 2; i <= 17; i++) |
LOINS("m32adder_glopg", NAME("m32add_%d", i), NAME("sum%d[31:0]", i-1), |
NAME("r%d[31:0]", i-1), NAME("sum%d[31:0]", i), "vdd", "vss", 0); |
|
for (i = 0; i <=31 ;i++) |
LOINS ("o2_x2", NAME("or2_%d",i),"b[16]",NAME("sum17[%d]",i),NAME("sum[%d]",i), |
"vdd", "vss", 0); |
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/idea_encryptor.c
0,0 → 1,54
/* File Name : idea_encryptor.c */ |
/* Description : The enncryption block of IDEA processor */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 22, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
DEF_LOFIG("idea_encryptor"); |
LOCON("clk", IN, "clk" ); |
LOCON("rst", IN, "rst" ); |
LOCON("start", IN, "start" ); |
LOCON("key_ready", IN, "key_ready" ); |
LOCON("x1[15:0]", IN, "x1[15:0]" ); |
LOCON("x2[15:0]", IN, "x2[15:0]" ); |
LOCON("x3[15:0]", IN, "x3[15:0]" ); |
LOCON("x4[15:0]", IN, "x4[15:0]" ); |
|
LOCON("z1[15:0]", IN, "z1[15:0]" ); |
LOCON("z2[15:0]", IN, "z2[15:0]" ); |
LOCON("z3[15:0]", IN, "z3[15:0]" ); |
LOCON("z4[15:0]", IN, "z4[15:0]" ); |
LOCON("z5[15:0]", IN, "z5[15:0]" ); |
LOCON("z6[15:0]", IN, "z6[15:0]" ); |
LOCON("z19[15:0]", IN, "z19[15:0]" ); |
LOCON("z29[15:0]", IN, "z29[15:0]" ); |
LOCON("z39[15:0]", IN, "z39[15:0]" ); |
LOCON("z49[15:0]", IN, "z49[15:0]" ); |
LOCON("y1[15:0]", OUT, "y1[15:0]" ); |
LOCON("y2[15:0]", INOUT, "y2[15:0]" ); |
LOCON("y3[15:0]", INOUT, "y3[15:0]" ); |
LOCON("y4[15:0]", OUT, "y4[15:0]" ); |
LOCON("round[2:0]", OUT, "round[2:0]" ); |
LOCON("en_key_out", OUT, "en_key_out" ); |
LOCON("finish", OUT, "finish" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
LOINS("idea_heart_glopf","heart","en[1:7]","en_out","clk","sel_in","x1[0:15]","x2[0:15]", |
"x3[0:15]","x4[0:15]","z1[0:15]","z2[0:15]","z3[0:15]","z4[0:15]","z5[0:15]", |
"z6[0:15]","z19[0:15]","z29[0:15]","z39[0:15]","z49[0:15]","y1[0:15]","y2[0:15]", |
"y3[0:15]","y4[0:15]","rst","vdd","vss",0); |
|
LOINS("heart_ctrl_glopg","h_ctrl","clk","rst","start","key_ready","round[2:0]","en[1:7]", |
"en_out","en_key_out","sel_in","finish","vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/out_trans.c
0,0 → 1,40
/* File Name : out_trans.c */ |
/* Description : The output transformation */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 23, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
|
#include<genlib.h> |
main() |
{ |
DEF_LOFIG("out_trans"); |
LOCON("en", IN, "en" ); |
LOCON("x1[0:15]", IN, "x1[0:15]" ); |
LOCON("x2[0:15]", IN, "x2[0:15]" ); |
LOCON("x3[0:15]", IN, "x3[0:15]" ); |
LOCON("x4[0:15]", IN, "x4[0:15]" ); |
LOCON("z1[0:15]", IN, "z1[0:15]" ); |
LOCON("z2[0:15]", IN, "z2[0:15]" ); |
LOCON("z3[0:15]", IN, "z3[0:15]" ); |
LOCON("z4[0:15]", IN, "z4[0:15]" ); |
LOCON("y1[0:15]", OUT, "y1[0:15]" ); |
LOCON("y2[0:15]", INOUT, "y2[0:15]" ); |
LOCON("y3[0:15]", INOUT, "y3[0:15]" ); |
LOCON("y4[0:15]", OUT, "y4[0:15]" ); |
LOCON("reset", IN, "reset" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
LOINS("sm16plus1mul_glopf","trans1","x1[0:15]","z1[0:15]","en","reset","y1[0:15]","vdd","vss",0); |
LOINS("sm16adder_glopf","trans2","x3[0:15]","z2[0:15]","en","reset","y2[0:15]","vdd","vss",0); |
LOINS("sm16adder_glopf","trans3","x2[0:15]","z3[0:15]","en","reset","y3[0:15]","vdd","vss",0); |
LOINS("sm16plus1mul_glopf","trans4","x4[0:15]","z4[0:15]","en","reset","y4[0:15]","vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/xor16.c
0,0 → 1,27
/* File Name : xor16.c */ |
/* Description : The 16-bit xor */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 23, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
int i; |
DEF_LOFIG("xor16"); |
LOCON("a[0:15]", IN, "a[0:15]" ); |
LOCON("b[0:15]", IN, "b[0:15]" ); |
LOCON("q[0:15]", OUT, "q[0:15]" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
for(i=0;i<16;i++) |
LOINS("xr2_x4",NAME("xr%d",i),NAME("a[%d]",i),NAME("b[%d]",i),NAME("q[%d]",i),"vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/reg16.c
0,0 → 1,30
/* File Name : reg16.c */ |
/* Description : The 16-bit register */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 22, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
int i; |
DEF_LOFIG("reg16"); |
LOCON("d[0:15]", IN, "d[0:15]" ); |
LOCON("en", IN, "en" ); |
LOCON("clr", IN, "clr" ); |
LOCON("q[0:15]", INOUT, "q[0:15]" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
for(i=0;i<=15;i++) |
{ |
LOINS("d_latch_glopf",NAME("latch%d",i),NAME("d[%d]",i),"en","clr",NAME("q[%d]",i),"vdd","vss",0); |
} |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/idea_heart.c
0,0 → 1,59
/* File Name : idea_heart.c */ |
/* Description : The idea processor heart */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 23, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
DEF_LOFIG("idea_heart"); |
LOCON("en[1:7]", IN, "en[1:7]" ); |
LOCON("en_out", IN, "en_out" ); |
LOCON("sel_in", IN, "sel_in" ); |
LOCON("x1[0:15]", IN, "x1[0:15]" ); |
LOCON("x2[0:15]", IN, "x2[0:15]" ); |
LOCON("x3[0:15]", IN, "x3[0:15]" ); |
LOCON("x4[0:15]", IN, "x4[0:15]" ); |
LOCON("z1[0:15]", IN, "z1[0:15]" ); |
LOCON("z2[0:15]", IN, "z2[0:15]" ); |
LOCON("z3[0:15]", IN, "z3[0:15]" ); |
LOCON("z4[0:15]", IN, "z4[0:15]" ); |
LOCON("z5[0:15]", IN, "z5[0:15]" ); |
LOCON("z6[0:15]", IN, "z6[0:15]" ); |
LOCON("z19[0:15]", IN, "z19[0:15]" ); |
LOCON("z29[0:15]", IN, "z29[0:15]" ); |
LOCON("z39[0:15]", IN, "z39[0:15]" ); |
LOCON("z49[0:15]", IN, "z49[0:15]" ); |
|
|
LOCON("y1[0:15]", OUT, "y1[0:15]" ); |
LOCON("y2[0:15]", INOUT, "y2[0:15]" ); |
LOCON("y3[0:15]", INOUT, "y3[0:15]" ); |
LOCON("y4[0:15]", OUT, "y4[0:15]" ); |
LOCON("reset", IN, "reset" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
LOINS("mux64_glopg","mux1","x1[15:0]","x2[15:0]","x3[15:0]","x4[15:0]", |
"y1x[15:0]","y2x[15:0]","y3x[15:0]","y4x[15:0]", |
"sel_in", |
"o_mux1[15:0]","o_mux2[15:0]","o_mux3[15:0]","o_mux4[15:0]", |
"vdd","vss",0); |
|
LOINS("idea_heart_1r_glopf","idea_h_1r","en[1:7]","o_mux1[0:15]","o_mux2[0:15]","o_mux3[0:15]", |
"o_mux4[0:15]", |
"z1[0:15]","z2[0:15]","z3[0:15]","z4[0:15]","z5[0:15]","z6[0:15]", |
"y1x[0:15]","y2x[0:15]","y3x[0:15]","y4x[0:15]","reset","vdd","vss",0); |
|
LOINS("out_trans_glopf","trans","en_out","y1x[0:15]","y2x[0:15]","y3x[0:15]","y4x[0:15]", |
"z19[0:15]","z29[0:15]","z39[0:15]","z49[0:15]","y1[0:15]","y2[0:15]","y3[0:15]", |
"y4[0:15]","reset","vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/idea_encryptor_pat_dec.c
0,0 → 1,194
/* File Name : idea_encryptor_pat_dec.c */ |
/* Description : The decryption test patterns of IDEA encryption block */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 23, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include <stdio.h> |
#include "genpat.h" |
#define interval 28 |
|
char *inttostr(entier) |
int entier; |
{ |
char *str; |
str = (char *) mbkalloc (32 * sizeof (char)); |
sprintf (str, "%d",entier); |
return(str); |
} |
|
main () |
{ |
int round,i; |
int time, max; |
|
DEF_GENPAT("idea_encryptor_decrypt"); |
SETTUNIT ("ns"); |
/* Inputs */ |
/* for power supply */ |
DECLAR ("vdd", ":2", "B", IN, "", ""); |
DECLAR ("vss", ":2", "B", IN, "", ""); |
/* for 64-bit input data */ |
DECLAR ("x1", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("x2", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("x3", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("x4", ":2", "X", IN, "15 downto 0", ""); |
/* for the 6 16-bit subkeys of each round */ |
DECLAR ("z1", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z2", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z3", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z4", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z5", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z6", ":2", "X", IN, "15 downto 0", ""); |
/* for the 4 16-bit subkeys of output transformation state */ |
DECLAR ("z19", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z29", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z39", ":2", "X", IN, "15 downto 0", ""); |
DECLAR ("z49", ":2", "X", IN, "15 downto 0", ""); |
|
/* for control signals */ |
DECLAR ("clk", ":2", "B", IN, "", ""); |
DECLAR ("rst", ":2", "B", IN, "", ""); |
DECLAR ("start", ":2", "B", IN, "", ""); |
DECLAR ("key_ready", ":2", "B", IN, "", ""); |
|
DECLAR ("round", ":2", "B", OUT, "2 downto 0",""); |
DECLAR ("en_key_out", ":2", "B", OUT, "",""); |
DECLAR ("finish", ":2", "B", OUT, "",""); |
|
/* Outputs */ |
/* for 4 16-bit outpus */ |
DECLAR ("y1", ":2", "X", OUT, "15 downto 0", ""); |
DECLAR ("y2", ":2", "X", OUT, "15 downto 0", ""); |
DECLAR ("y3", ":2", "X", OUT, "15 downto 0", ""); |
DECLAR ("y4", ":2", "X", OUT, "15 downto 0", ""); |
max =21; |
for (round=0; round<8; round++) |
{ |
for (i=0;i<max;i++) |
{ |
if(round == 0) |
time = ((round*max) + i) * interval ; |
else if(round ==1 ) { |
max = 16; |
time = ((round*max) + i + 5) * interval; } |
else { |
max = 16; |
time = ((round*max) + i + 5) * interval; } |
|
AFFECT (inttostr(time), "vdd", "0b1"); |
AFFECT (inttostr(time), "vss", "0b0"); |
|
|
if(((time/interval)+2)% 2 == 0) |
AFFECT (inttostr(time), "clk", "0b0"); |
else |
AFFECT (inttostr(time), "clk", "0b1"); |
|
if((time/interval) < 2) |
AFFECT (inttostr(time), "rst", "0b1"); |
else |
AFFECT (inttostr(time), "rst", "0b0"); |
|
if((time/interval) < 5) |
{ AFFECT (inttostr(time), "start", "0b0"); |
AFFECT (inttostr(time), "key_ready", "0b0"); |
} |
else |
{ AFFECT (inttostr(time), "start", "0b1"); |
AFFECT (inttostr(time), "key_ready", "0b1"); |
} |
|
AFFECT (inttostr(time), "x1", "48226"); |
AFFECT (inttostr(time), "x2", "26081"); |
AFFECT (inttostr(time), "x3", "53476"); |
AFFECT (inttostr(time), "x4", "29722"); |
|
if(round == 0) |
{ LABEL ("round_1"); |
AFFECT (inttostr(time), "z1", "26010"); |
AFFECT (inttostr(time), "z2", "65088"); |
AFFECT (inttostr(time), "z3", "64960"); |
AFFECT (inttostr(time), "z4", "59486"); |
AFFECT (inttostr(time), "z5", "40961"); |
AFFECT (inttostr(time), "z6", "57346"); |
} |
else if(round == 1) |
{ LABEL ("round_2"); |
AFFECT (inttostr(time), "z1", "52428"); |
AFFECT (inttostr(time), "z2", "57343"); |
AFFECT (inttostr(time), "z3", "8191"); |
AFFECT (inttostr(time), "z4", "13109"); |
AFFECT (inttostr(time), "z5", "8192"); |
AFFECT (inttostr(time), "z6", "24576"); |
} |
else if(round == 2) |
{ LABEL ("round_3"); |
AFFECT (inttostr(time), "z1", "46227"); |
AFFECT (inttostr(time), "z2", "65360"); |
AFFECT (inttostr(time), "z3", "65392"); |
AFFECT (inttostr(time), "z4", "50098"); |
AFFECT (inttostr(time), "z5", "48"); |
AFFECT (inttostr(time), "z6", "80"); |
} |
else if(round == 3) |
{ LABEL ("round_4"); |
AFFECT (inttostr(time), "z1", "56170"); |
AFFECT (inttostr(time), "z2", "65296"); |
AFFECT (inttostr(time), "z3", "47104"); |
AFFECT (inttostr(time), "z4", "30600"); |
AFFECT (inttostr(time), "z5", "6144"); |
AFFECT (inttostr(time), "z6", "10240"); |
} |
else if(round == 4) |
{ LABEL ("round_5"); |
AFFECT (inttostr(time), "z1", "5955"); |
AFFECT (inttostr(time), "z2", "34816"); |
AFFECT (inttostr(time), "z3", "38912"); |
AFFECT (inttostr(time), "z4", "61680"); |
AFFECT (inttostr(time), "z5", "20"); |
AFFECT (inttostr(time), "z6", "28"); |
} |
else if(round == 5) |
{ LABEL ("round_6"); |
AFFECT (inttostr(time), "z1", "3781"); |
AFFECT (inttostr(time), "z2", "65468"); |
AFFECT (inttostr(time), "z3", "65476"); |
AFFECT (inttostr(time), "z4", "38230"); |
AFFECT (inttostr(time), "z5", "36"); |
AFFECT (inttostr(time), "z6", "44"); |
} |
else if(round == 6) |
{ LABEL ("round_7"); |
AFFECT (inttostr(time), "z1", "30238"); |
AFFECT (inttostr(time), "z2", "56832"); |
AFFECT (inttostr(time), "z3", "57856"); |
AFFECT (inttostr(time), "z4", "21803"); |
AFFECT (inttostr(time), "z5", "4608"); |
AFFECT (inttostr(time), "z6", "5632"); |
} |
else |
{ max=22; |
LABEL ("round_8"); |
AFFECT (inttostr(time), "z1", "30584"); |
AFFECT (inttostr(time), "z2", "62976"); |
AFFECT (inttostr(time), "z3", "65519"); |
AFFECT (inttostr(time), "z4", "28069"); |
AFFECT (inttostr(time), "z5", "11"); |
AFFECT (inttostr(time), "z6", "13"); |
} |
|
AFFECT (inttostr(time), "z19", "21846"); |
AFFECT (inttostr(time), "z29", "65531"); |
AFFECT (inttostr(time), "z39", "65529"); |
AFFECT (inttostr(time), "z49", "7282"); |
|
} |
} |
SAV_GENPAT (); |
} |
|
/trunk/structural_c/idea_machine/sm16adder.c
0,0 → 1,29
/* File Name : sm16adder.c */ |
/* Description : The synchronized modulo 2^16 adder */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 22, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
int i; |
DEF_LOFIG("sm16adder"); |
LOCON("a[0:15]", IN, "a[0:15]" ); |
LOCON("b[0:15]", IN, "b[0:15]" ); |
LOCON("en", IN, "en" ); |
LOCON("clr", IN, "clr" ); |
LOCON("s[0:15]", INOUT, "s[0:15]" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
LOINS("m16adder_glopg","sm16a","a[0:15]","b[0:15]","ss[0:15]","vdd","vss",0); |
LOINS("reg16_glopf","rg16","ss[0:15]","en","clr","s[0:15]","vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/idea_heart_1r.c
0,0 → 1,53
/* File Name : idea_heart_1r.c */ |
/* Description : The one round idea processor heart */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 21, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
#include<genlib.h> |
main() |
{ |
DEF_LOFIG("idea_heart_1r"); |
LOCON("en[1:7]", IN, "en[1:7]" ); |
LOCON("x1[0:15]", IN, "x1[0:15]" ); |
LOCON("x2[0:15]", IN, "x2[0:15]" ); |
LOCON("x3[0:15]", IN, "x3[0:15]" ); |
LOCON("x4[0:15]", IN, "x4[0:15]" ); |
LOCON("z1[0:15]", IN, "z1[0:15]" ); |
LOCON("z2[0:15]", IN, "z2[0:15]" ); |
LOCON("z3[0:15]", IN, "z3[0:15]" ); |
LOCON("z4[0:15]", IN, "z4[0:15]" ); |
LOCON("z5[0:15]", IN, "z5[0:15]" ); |
LOCON("z6[0:15]", IN, "z6[0:15]" ); |
LOCON("y1[0:15]", INOUT, "y1[0:15]" ); |
LOCON("y2[0:15]", INOUT, "y2[0:15]" ); |
LOCON("y3[0:15]", INOUT, "y3[0:15]" ); |
LOCON("y4[0:15]", INOUT, "y4[0:15]" ); |
LOCON("reset", IN, "reset" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
LOINS("sm16plus1mul_glopf","mul1","x1[0:15]","z1[0:15]","en[1]","reset","o_mul1[0:15]","vdd","vss",0); |
LOINS("sm16adder_glopf","add1","x2[0:15]","z2[0:15]","en[1]","reset","o_add1[0:15]","vdd","vss",0); |
LOINS("sm16adder_glopf","add2","x3[0:15]","z3[0:15]","en[1]","reset","o_add2[0:15]","vdd","vss",0); |
LOINS("sm16plus1mul_glopf","mul2","x4[0:15]","z4[0:15]","en[1]","reset","o_mul2[0:15]","vdd","vss",0); |
|
LOINS("s16xor_glopf","xr1","o_mul1[0:15]","o_add2[0:15]","en[2]","reset","o_xr1[0:15]","vdd","vss",0); |
LOINS("s16xor_glopf","xr2","o_add1[0:15]","o_mul2[0:15]","en[2]","reset","o_xr2[0:15]","vdd","vss",0); |
|
LOINS("sm16plus1mul_glopf","mul3","o_xr1[0:15]","z5[0:15]","en[3]","reset","o_mul3[0:15]","vdd","vss",0); |
LOINS("sm16adder_glopf","add3","o_mul3[0:15]","o_xr2[0:15]","en[4]","reset","o_add3[0:15]","vdd","vss",0); |
LOINS("sm16plus1mul_glopf","mul4","o_add3[0:15]","z6[0:15]","en[5]","reset","o_mul4[0:15]","vdd","vss",0); |
LOINS("sm16adder_glopf","add4","o_mul3[0:15]","o_mul4[0:15]","en[6]","reset","o_add4[0:15]","vdd","vss",0); |
|
LOINS("s16xor_glopf","xr3","o_mul1[0:15]","o_mul4[0:15]","en[7]","reset","y1[0:15]","vdd","vss",0); |
LOINS("s16xor_glopf","xr4","o_add2[0:15]","o_mul4[0:15]","en[7]","reset","y2[0:15]","vdd","vss",0); |
LOINS("s16xor_glopf","xr5","o_add1[0:15]","o_add4[0:15]","en[7]","reset","y3[0:15]","vdd","vss",0); |
LOINS("s16xor_glopf","xr6","o_mul2[0:15]","o_add4[0:15]","en[7]","reset","y4[0:15]","vdd","vss",0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/idea_machine/sm16plus1mul.c
0,0 → 1,33
/* File Name : sm16plus1mul.c */ |
/* Description : The synchronized modulo 2^16+1 multiplier */ |
/* Purpose : To be used by GENLIB */ |
/* Date : Aug 23, 2001 */ |
/* Version : 1.1 */ |
/* Author : Martadinata A. */ |
/* Address : VLSI RG, Dept. of Electrical Engineering ITB, */ |
/* Bandung, Indonesia */ |
/* E-mail : marta@ic.vlsi.itb.ac.id */ |
|
#include<genlib.h> |
main() |
{ |
DEF_LOFIG("sm16plus1mul"); |
LOCON("in1[0:15]", IN, "in1[0:15]" ); |
LOCON("in2[0:15]", IN, "in2[0:15]" ); |
LOCON("en", IN, "en" ); |
LOCON("clr", IN, "clr" ); |
LOCON("mulout[0:15]", OUT, "mulout[0:15]" ); |
LOCON("vdd", IN, "vdd" ); |
LOCON("vss", IN, "vss" ); |
|
LOINS("comp1_glopg","com1a","in1[15:0]","kout1a[16:0]","vdd","vss",0); |
LOINS("comp1_glopg","com1b","in2[15:0]","kout1b[16:0]","vdd","vss",0); |
LOINS("mul17_glopg","mul","kout1a[16:0]","kout1b[16:0]","res[31:0]","vdd","vss",0); |
LOINS("comp2_glopg","com2","vss","vdd","kout2[0:15]","res[16:31]","res[0:15]",0); |
LOINS("subtract16_glopg","sub","res[0:15]","res[16:31]","dif[0:15]","vdd","vss",0); |
LOINS("reg16_glopf","reg1","kout2[0:15]","en","clr","r1[0:15]","vdd","vss",0); |
LOINS("reg16_glopf","reg2","dif[0:15]","en","clr","r2[0:15]","vdd","vss",0); |
LOINS("m16adder_glopg","add","r2[0:15]","r1[0:15]","mulout[0:15]","vdd","vss",0); |
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/key_regulator/multiplier17.c
0,0 → 1,35
// File Name : multiplier17.c |
// Description : Multiplier 17 bit |
// Author : Mas Adit |
// Date : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("multiplier17"); |
|
LOCON ("a[16:0]", IN, "a[16:0]"); |
LOCON ("b[16:0]", IN, "b[16:0]"); |
//LOCON ("o[0:33]", OUT, "o[0:33]"); |
LOCON ("o17[33:0]", OUT, "o17[33:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
|
for (i = 0; i < 17; i++) |
LOINS(NAME("leftshiftregister%d", i), NAME("leftshiftregister%d", i + 1), "a[16:0]", |
NAME("b[%d]", i), NAME("r%d[33:0]", i), "vdd", "vss", 0); |
|
LOINS ("zero34", "zero34", "o0[33:0]", "vdd", "vss", 0); |
LOINS ("fulladder34", "fulladder341", "o0[33:0]", "r0[33:0]", "o1[33:0]", "vdd", "vss", 0); |
|
for (i = 1; i < 17; i++) |
LOINS("fulladder34", NAME("fulladder34%d", i + 1), NAME("o%d[33:0]", i), |
NAME("r%d[33:0]", i), NAME("o%d[33:0]", i + 1), "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/key_regulator/reg16_latch.c
0,0 → 1,29
//Nama file : reg16_latch.c |
//Deskripsi : reg 16 + latch |
//Author : Mas Adit |
//Tanggal : 27 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
DEF_LOFIG ("reg16_latch"); |
|
LOCON ("a[15:0]", IN, "a[15:0]"); |
LOCON ("en", IN, "en"); |
LOCON ("clr", IN, "clr"); |
LOCON ("cke", IN, "cke"); |
LOCON ("b[15:0]", INOUT, "b[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("reg16", "reg1", "a[15:0]", "en", "clr", "x[15:0]", "vdd", "vss", 0); |
for(i=0; i<16; i++) |
{ |
LOINS ("latch", NAME("latch%d", i), NAME("x[%d]", i), "cke", NAME("b[%d]", i), "vdd", "vss", 0); |
} |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/mux288to16_latch.c
0,0 → 1,48
//Nama file : mux288to16_latch.c |
//Deskripsi : mux288to16.vbe + latch.c |
//Author : Mas Adit |
//Tanggal : 25 Agustus 2001 |
|
#include<genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("mux288to16_latch"); |
|
LOCON ("i1[15:0]", IN, "i1[15:0]"); |
LOCON ("i2[15:0]", IN, "i2[15:0]"); |
LOCON ("i3[15:0]", IN, "i3[15:0]"); |
LOCON ("i4[15:0]", IN, "i4[15:0]"); |
LOCON ("i5[15:0]", IN, "i5[15:0]"); |
LOCON ("i6[15:0]", IN, "i6[15:0]"); |
LOCON ("i7[15:0]", IN, "i7[15:0]"); |
LOCON ("i8[15:0]", IN, "i8[15:0]"); |
LOCON ("i9[15:0]", IN, "i9[15:0]"); |
LOCON ("i10[15:0]", IN, "i10[15:0]"); |
LOCON ("i11[15:0]", IN, "i11[15:0]"); |
LOCON ("i12[15:0]", IN, "i12[15:0]"); |
LOCON ("i13[15:0]", IN, "i13[15:0]"); |
LOCON ("i14[15:0]", IN, "i14[15:0]"); |
LOCON ("i15[15:0]", IN, "i15[15:0]"); |
LOCON ("i16[15:0]", IN, "i16[15:0]"); |
LOCON ("i17[15:0]", IN, "i17[15:0]"); |
LOCON ("i18[15:0]", IN, "i18[15:0]"); |
LOCON ("en", IN, "en"); |
LOCON ("clr", IN, "clr"); |
LOCON ("sel[4:0]", IN, "sel[4:0]"); |
LOCON ("cke", IN, "cke"); |
LOCON ("c[15:0]", INOUT, "c[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("mux288to16", "mux1", "i1[15:0]", "i2[15:0]", "i3[15:0]", "i4[15:0]", "i5[15:0]", "i6[15:0]", "i7[15:0]", "i8[15:0]", "i9[15:0]", "i10[15:0]", "i11[15:0]", "i12[15:0]", "i13[15:0]", "i14[15:0]", "i15[15:0]", "i16[15:0]", "i17[15:0]", "i18[15:0]", "en", "clr", "sel[4:0]", "b[15:0]", "vdd", "vss", 0); |
for (i=0; i<16; i++) |
{ |
LOINS ("latch", NAME("latch%d", i), NAME("b[%d]", i), "cke", NAME("c[%d]", i), "vdd", "vss", 0); |
} |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/key_regulator/gen_inv_mul.c
0,0 → 1,68
//Nama file : gen_inv_mul.c |
//Deskripsi : pembangkit inv_mul |
//Author : Mas Adit |
//Tanggal :26 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
|
DEF_LOFIG ("gen_inv_mul"); |
|
LOCON ("i1[15:0]", IN, "i1[15:0]"); |
LOCON ("i2[15:0]", IN, "i2[15:0]"); |
LOCON ("i3[15:0]", IN, "i3[15:0]"); |
LOCON ("i4[15:0]", IN, "i4[15:0]"); |
LOCON ("i5[15:0]", IN, "i5[15:0]"); |
LOCON ("i6[15:0]", IN, "i6[15:0]"); |
LOCON ("i7[15:0]", IN, "i7[15:0]"); |
LOCON ("i8[15:0]", IN, "i8[15:0]"); |
LOCON ("i9[15:0]", IN, "i9[15:0]"); |
LOCON ("i10[15:0]", IN, "i10[15:0]"); |
LOCON ("i11[15:0]", IN, "i11[15:0]"); |
LOCON ("i12[15:0]", IN, "i12[15:0]"); |
LOCON ("i13[15:0]", IN, "i13[15:0]"); |
LOCON ("i14[15:0]", IN, "i14[15:0]"); |
LOCON ("i15[15:0]", IN, "i15[15:0]"); |
LOCON ("i16[15:0]", IN, "i16[15:0]"); |
LOCON ("i17[15:0]", IN, "i17[15:0]"); |
LOCON ("i18[15:0]", IN, "i18[15:0]"); |
LOCON ("clk", IN, "clk"); |
LOCON ("start", IN, "start"); |
LOCON ("rst", IN, "rst"); |
LOCON ("finish", OUT, "finish"); |
LOCON ("o1[15:0]", OUT, "o1[15:0]"); |
LOCON ("o2[15:0]", OUT, "o2[15:0]"); |
LOCON ("o3[15:0]", OUT, "o3[15:0]"); |
LOCON ("o4[15:0]", OUT, "o4[15:0]"); |
LOCON ("o5[15:0]", OUT, "o5[15:0]"); |
LOCON ("o6[15:0]", OUT, "o6[15:0]"); |
LOCON ("o7[15:0]", OUT, "o7[15:0]"); |
LOCON ("o8[15:0]", OUT, "o8[15:0]"); |
LOCON ("o9[15:0]", OUT, "o9[15:0]"); |
LOCON ("o10[15:0]", OUT, "o10[15:0]"); |
LOCON ("o11[15:0]", OUT, "o11[15:0]"); |
LOCON ("o12[15:0]", OUT, "o12[15:0]"); |
LOCON ("o13[15:0]", OUT, "o13[15:0]"); |
LOCON ("o14[15:0]", OUT, "o14[15:0]"); |
LOCON ("o15[15:0]", OUT, "o15[15:0]"); |
LOCON ("o16[15:0]", OUT, "o16[15:0]"); |
LOCON ("o17[15:0]", OUT, "o17[15:0]"); |
LOCON ("o18[15:0]", OUT, "o18[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("mux288to16_latch", "mux1", "i1[15:0]", "i1[15:0]", "i1[15:0]", "i1[15:0]", "i1[15:0]", "i1[15:0]", |
"i1[15:0]", "i1[15:0]", "i1[15:0]", "i1[15:0]", "i1[15:0]", "i1[15:0]", "i1[15:0]", "i1[15:0]", "i1[15:0]", "i1[15:0]", |
"i1[15:0]", "i1[15:0]", "en_in", "rst", "sel_in[4:0]", "start", "zi[15:0]", "vdd", "vss", 0); |
LOINS ("invmuls", "invmuls1", "zi[15:0]", "rst", "en_pipe", "sel", "start", "zo[15:0]", "vdd", "vss", 0); |
LOINS ("kontrol_invmul", "kontrol_invmul1", "start", "clk", "rst", "finish", "en_in", "sel_in[4:0]", "sel", "en_pipe", |
"en_out", "sel_out[4:0]", "vdd", "vss", 0); |
LOINS ("dec16to288_latch", "dec1", "zo[15:0]", "en_out", "rst", "sel_out[4:0]", "start", "o1[15:0]", "o2[15:0]", |
"o3[15:0]", "o4[15:0]", "o5[15:0]", "o6[15:0]", "o7[15:0]", "o8[15:0]", "o9[15:0]", "o10[15:0]", "o11[15:0]", |
"o12[15:0]", "o13[15:0]", "o14[15:0]", "o15[15:0]", "o16[15:0]", "o17[15:0]", "o18[15:0]", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/generate_key.c
0,0 → 1,76
//Nama file : generate_key.c |
//Deskripsi : blok pembangkit kunci enkripsi dan deskripsi |
//Author : Mas Adit |
//Tanggal : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main () |
{ |
DEF_LOFIG ("generate_key"); |
|
LOCON ("dt_key[127:0]", IN, "dt_key[127:0]"); |
LOCON ("clk", IN, "clk"); |
LOCON ("rst", IN, "rst"); |
LOCON ("start", IN, "start"); |
LOCON ("E", IN, "E"); |
LOCON ("en_keyout", IN, "en_keyout"); |
LOCON ("round[2:0]", IN, "round[2:0]"); |
LOCON ("key_ready", INOUT, "key_ready"); |
LOCON ("z1[15:0]", OUT, "z1[15:0]"); |
LOCON ("z2[15:0]", OUT, "z2[15:0]"); |
LOCON ("z3[15:0]", OUT, "z3[15:0]"); |
LOCON ("z4[15:0]", OUT, "z4[15:0]"); |
LOCON ("z5[15:0]", OUT, "z5[15:0]"); |
LOCON ("z6[15:0]", OUT, "z6[15:0]"); |
LOCON ("z91[15:0]", OUT, "z91[15:0]"); |
LOCON ("z92[15:0]", OUT, "z92[15:0]"); |
LOCON ("z93[15:0]", OUT, "z93[15:0]"); |
LOCON ("z94[15:0]", OUT, "z94[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("en_key", "enkey1", "dt_key[127:0]", "clk", "s_enkey", "rst_all", "f_enkey", "oe1_1[15:0]", "oe1_2[15:0]", |
"oe1_3[15:0]", "oe1_4[15:0]", "oe1_5[15:0]", "oe1_6[15:0]", "oe2_1[15:0]", "oe2_2[15:0]", "oe2_3[15:0]", |
"oe2_4[15:0]", "oe2_5[15:0]", "oe2_6[15:0]", "oe3_1[15:0]", "oe3_2[15:0]", "oe3_3[15:0]", "oe3_4[15:0]", |
"oe3_5[15:0]", "oe3_6[15:0]", "oe4_1[15:0]", "oe4_2[15:0]", "oe4_3[15:0]", "oe4_4[15:0]", "oe4_5[15:0]", |
"oe4_6[15:0]", "oe5_1[15:0]", "oe5_2[15:0]", "oe5_3[15:0]", "oe5_4[15:0]", "oe5_5[15:0]", "oe5_6[15:0]", |
"oe6_1[15:0]", "oe6_2[15:0]", "oe6_3[15:0]", "oe6_4[15:0]", "oe6_5[15:0]", "oe6_6[15:0]", "oe7_1[15:0]", |
"oe7_2[15:0]", "oe7_3[15:0]", "oe7_4[15:0]", "oe7_5[15:0]", "oe7_6[15:0]", "oe8_1[15:0]", "oe8_2[15:0]", |
"oe8_3[15:0]", "oe8_4[15:0]", "oe8_5[15:0]", "oe8_6[15:0]", "oe9_1[15:0]", "oe9_2[15:0]", "oe9_3[15:0]", |
"oe9_4[15:0]", "vdd", "vss", 0); |
LOINS ("gen_inv_mul", "gen_inv_mul1", "oe1_1[15:0]", "oe1_4[15:0]", "oe2_1[15:0]", "oe2_4[15:0]", "oe3_1[15:0]", |
"oe3_4[15:0]", "oe4_1[15:0]", "oe4_4[15:0]", "oe5_1[15:0]", "oe5_4[15:0]", "oe6_1[15:0]", "oe6_4[15:0]", |
"oe7_1[15:0]", "oe7_4[15:0]", "oe8_1[15:0]", "oe8_4[15:0]", "oe9_1[15:0]", "oe9_4[15:0]", "clk", "s_invmul", |
"rst_all", "f_invmul", "od9_1[15:0]", "od9_4[15:0]", "od8_1[15:0]", "od8_4[15:0]", "od7_1[15:0]", "od7_4[15:0]", |
"od6_1[15:0]", "od6_4[15:0]", "od5_1[15:0]", "od5_4[15:0]", "od4_1[15:0]", "od4_4[15:0]", "od3_1[15:0]", |
"od3_4[15:0]", "od2_1[15:0]", "od2_4[15:0]", "od1_1[15:0]", "od1_4[15:0]", "vdd", "vss", 0); |
LOINS ("gen_inv_add", "gen_inv_add1", "oe1_2[15:0]", "oe1_3[15:0]", "oe2_2[15:0]", "oe2_3[15:0]", "oe3_2[15:0]", |
"oe3_3[15:0]", "oe4_2[15:0]", "oe4_3[15:0]", "oe5_2[15:0]", "oe5_3[15:0]", "oe6_2[15:0]", "oe6_3[15:0]", |
"oe7_2[15:0]", "oe7_3[15:0]", "oe8_2[15:0]", "oe8_3[15:0]", "oe9_2[15:0]", "oe9_3[15:0]", "clk", "rst_all", |
"s_invadd", "od9_2[15:0]", "od9_3[15:0]", "od8_3[15:0]", "od8_2[15:0]", "od7_3[15:0]", "od7_2[15:0]", |
"od6_3[15:0]", "od6_2[15:0]", "od5_3[15:0]", "od5_2[15:0]", "od4_3[15:0]", "od4_2[15:0]", "od3_3[15:0]", |
"od3_2[15:0]", "od2_3[15:0]", "od2_2[15:0]", "od1_2[15:0]", "od1_3[15:0]", "f_invadd", "vdd", "vss", 0); |
LOINS ("key_select", "key_select1", "oe1_1[15:0]", "oe1_2[15:0]", "oe1_3[15:0]", "oe1_4[15:0]", "oe1_5[15:0]", |
"oe1_6[15:0]", "oe2_1[15:0]", "oe2_2[15:0]", "oe2_3[15:0]", "oe2_4[15:0]", "oe2_5[15:0]", "oe2_6[15:0]", |
"oe3_1[15:0]", "oe3_2[15:0]", "oe3_3[15:0]", "oe3_4[15:0]", "oe3_5[15:0]", "oe3_6[15:0]", "oe4_1[15:0]", |
"oe4_2[15:0]", "oe4_3[15:0]", "oe4_4[15:0]", "oe4_5[15:0]", "oe4_6[15:0]", "oe5_1[15:0]", "oe5_2[15:0]", |
"oe5_3[15:0]", "oe5_4[15:0]", "oe5_5[15:0]", "oe5_6[15:0]", "oe6_1[15:0]", "oe6_2[15:0]", "oe6_3[15:0]", |
"oe6_4[15:0]", "oe6_5[15:0]", "oe6_6[15:0]", "oe7_1[15:0]", "oe7_2[15:0]", "oe7_3[15:0]", "oe7_4[15:0]", |
"oe7_5[15:0]", "oe7_6[15:0]", "oe8_1[15:0]", "oe8_2[15:0]", "oe8_3[15:0]", "oe8_4[15:0]", "oe8_5[15:0]", |
"oe8_6[15:0]", "oe9_1[15:0]", "oe9_2[15:0]", "oe9_3[15:0]", "oe9_4[15:0]", "od1_1[15:0]", "od1_2[15:0]", "od1_3[15:0]", "od1_4[15:0]", "oe8_5[15:0]", |
"oe8_6[15:0]", "od2_1[15:0]", "od2_2[15:0]", "od2_3[15:0]", "od2_4[15:0]", "oe7_5[15:0]", "oe7_6[15:0]", |
"od3_1[15:0]", "od3_2[15:0]", "od3_3[15:0]", "od3_4[15:0]", "oe6_5[15:0]", "oe6_6[15:0]", "od4_1[15:0]", |
"od4_2[15:0]", "od4_3[15:0]", "od4_4[15:0]", "oe5_5[15:0]", "oe5_6[15:0]", "od5_1[15:0]", "od5_2[15:0]", |
"od5_3[15:0]", "od5_4[15:0]", "oe4_5[15:0]", "oe4_6[15:0]", "od6_1[15:0]", "od6_2[15:0]", "od6_3[15:0]", |
"od6_4[15:0]", "oe3_5[15:0]", "oe3_6[15:0]", "od7_1[15:0]", "od7_2[15:0]", "od7_3[15:0]", "od7_4[15:0]", |
"oe2_5[15:0]", "oe2_6[15:0]", "od8_1[15:0]", "od8_2[15:0]", "od8_3[15:0]", "od8_4[15:0]", "oe1_5[15:0]", |
"oe1_6[15:0]", "od9_1[15:0]", "od9_2[15:0]", "od9_3[15:0]", "od9_4[15:0]", "E", "en_keyout", "rst_all", |
"key_ready", "round[2:0]", "z1[15:0]", "z2[15:0]", "z3[15:0]", "z4[15:0]", "z5[15:0]", "z6[15:0]", "z91[15:0]", |
"z92[15:0]", "z93[15:0]", "z94[15:0]", "vdd", "vss", 0); |
LOINS ("kontrol_kunci", "kontrol_kunci1", "clk", "start", "rst", "f_enkey", "f_invmul", "f_invadd", "rst_all", "key_ready", |
"s_enkey", "s_invmul", "s_invadd", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/mux8to4_latch.c
0,0 → 1,43
//Nama file : mux8to4_latch.c |
//Deskripsi : mux 8 to 4 16 bit + latch |
//Author : Mas Adit |
//Tanggal : 27 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
DEF_LOFIG ("mux8to4_latch"); |
LOCON ("i1[15:0]", IN, "i1[15:0]"); |
LOCON ("i2[15:0]", IN, "i2[15:0]"); |
LOCON ("i3[15:0]", IN, "i3[15:0]"); |
LOCON ("i4[15:0]", IN, "i4[15:0]"); |
LOCON ("i5[15:0]", IN, "i5[15:0]"); |
LOCON ("i6[15:0]", IN, "i6[15:0]"); |
LOCON ("i7[15:0]", IN, "i7[15:0]"); |
LOCON ("i8[15:0]", IN, "i8[15:0]"); |
LOCON ("en", IN, "en"); |
LOCON ("clr", IN, "clr"); |
LOCON ("sel", IN, "sel"); |
LOCON ("cke", IN, "cke"); |
LOCON ("o1[15:0]", INOUT, "o1[15:0]"); |
LOCON ("o2[15:0]", INOUT, "o2[15:0]"); |
LOCON ("o3[15:0]", INOUT, "o3[15:0]"); |
LOCON ("o4[15:0]", INOUT, "o4[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss" , IN, "vss"); |
|
LOINS ("mux8to4", "mux1", "i1[15:0]", "i2[15:0]", "i3[15:0]", "i4[15:0]", "i5[15:0]", "i6[15:0]", "i7[15:0]", "i8[15:0]", "en", "clr", "sel", "x1[15:0]", "x2[15:0]", "x3[15:0]", "x4[15:0]", "vdd", "vss", 0); |
for (i=0; i<16; i++) |
{ |
LOINS ("latch", NAME("latch%d", i), NAME("x1[%d]", i), "cke", NAME("o1[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 16), NAME("x2[%d]", i), "cke", NAME("o2[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 32), NAME("x3[%d]", i), "cke", NAME("o3[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 48), NAME("x4[%d]", i), "cke", NAME("o4[%d]", i), "vdd", "vss", 0); |
} |
|
SAVE_LOFIG(); |
exit(0); |
} |
|
/trunk/structural_c/key_regulator/ctr_enkey1.c
0,0 → 1,30
//Nama file : ctr_enkey1.c |
//Deskripsi : kontrol pembangkit kunci enkripsi pada penggabungan |
//Author : Mas Adit |
//Tanggal : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
DEF_LOFIG ("ctr_enkey1"); |
|
LOCON ("clk", IN, "clk"); |
LOCON ("start", IN, "start"); |
LOCON ("rst", IN, "rst"); |
LOCON ("qiu[2:0]", INOUT, "qiu[2:0]"); |
LOCON ("finish", OUT, "finish"); |
LOCON ("en_shft", OUT, "en_shft"); |
LOCON ("sel1", OUT, "sel1"); |
LOCON ("sel2", OUT, "sel2"); |
LOCON ("en_out", OUT, "en_out"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ( "ctr_enkey", "ctr_enkey0", "clk", "rst", "start", "qiu[2:0]", "en_shft", "count_en", "sel1", "sel2", |
"count_ck", "finish", "en_out", "vdd", "vss", 0); |
LOINS ("count3_latch", "count1", "count_clk", "count_en", "rst", "qiu[2:0]", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/mul17.c
0,0 → 1,28
//Nama file : mul17.c |
//Deskripsi : blok multiplier 17 x 17 bit |
//Author : Mas Adit |
//Tanggal : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("mul17"); |
|
LOCON ("p[16:0]", IN, "p[16:0]"); |
LOCON ("q[16:0]", IN, "q[16:0]"); |
LOCON ("has[33:0]", OUT, "has[33:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("multiplier17", "multiplier1", "p[16:0]", "q[16:0]", "r0[33:0]", "r1[33:0]", "r2[33:0]", "r3[33:0]", "r4[33:0]", |
"r5[33:0]", "r6[33:0]", "r7[33:0]", "r8[33:0]", "r9[33:0]", "r10[33:0]", "r11[33:0]", "r12[33:0]", "r13[33:0]", |
"r14[33:0]", "r15[33:0]", "r16[33:0]", "o0[33:0]", "o1[33:0]", "o2[33:0]", "o3[33:0]", "o4[33:0]", "o5[33:0]", |
"o6[33:0]", "o7[33:0]", "o8[33:0]", "o9[33:0]", "o10[33:0]", "o11[33:0]", "o12[33:0]", "o13[33:0]", "o14[33:0]", |
"o15[33:0]", "o16[33:0]", "has[33:0]", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/fullsubstractor16.c
0,0 → 1,30
// File Name : fullsubstractor16.c |
// Description : Full Substractor 16 bit |
// Author : Mas Adit |
// Date : 29 Agustus 2001 |
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("fullsubstractor16"); |
|
LOCON ("a[15:0]", IN, "a[15:0]"); |
LOCON ("b[15:0]", IN, "b[15:0]"); |
LOCON ("diff[15:0]", OUT, "diff[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("zero_x0", "zero1", "nol", "vdd", "vss", 0); |
LOINS ("fullsubstractor", "fullsubstractor1", "a[0]", "b[0]", "nol", "diff[0]", "bout0", "vdd", "vss", 0); |
|
for (i = 1; i < 15; i++) |
LOINS("fullsubstractor", NAME("fullsubstractor%d", i + 1), NAME("a[%d]", i), NAME("b[%d]", i), |
NAME("bout%d", i - 1), NAME("diff[%d]", i), NAME("bout%d", i), "vdd", "vss", 0); |
|
LOINS ("fullsubstractorbout", "fullsubstarctor16", "a[15]", "b[15]", "bout14", "diff[15]", "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/key_regulator/fulladder16.c
0,0 → 1,31
// File Name : fulladder16.c |
// Description : Full Adder 16 bit |
// Author : Mas Adit |
// Date : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("fulladder16"); |
|
LOCON ("a[15:0]", IN, "a[15:0]"); |
LOCON ("b[15:0]", IN, "b[15:0]"); |
LOCON ("sum[15:0]", OUT, "sum[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("zero_x0", "zero1", "nol", "vdd", "vss", 0); |
LOINS ("fulladder", "fulladder1", "a[0]", "b[0]", "nol", "sum[0]", "cout0", "vdd", "vss", 0); |
|
for (i = 1; i < 15; i++) |
LOINS("fulladder", NAME("fulladder%d", i + 1), NAME("a[%d]", i), NAME("b[%d]", i), |
NAME("cout%d", i - 1), NAME("sum[%d]", i), NAME("cout%d", i), "vdd", "vss", 0); |
|
LOINS ("fulladdercout", "fulladder16", "a[15]", "b[15]", "cout14", "sum[15]", "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/key_regulator/fulladder34.c
0,0 → 1,31
// File Name : fulladder34.c |
// Description : Full Adder 34 bit |
// Author : Mas Adit |
// Date : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("fulladder34"); |
|
LOCON ("a[33:0]", IN, "a[33:0]"); |
LOCON ("b[33:0]", IN, "b[33:0]"); |
LOCON ("sum[33:0]", OUT, "sum[33:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("zero_x0", "zero1", "nol", "vdd", "vss", 0); |
LOINS ("fulladder", "fulladder1", "a[0]", "b[0]", "nol", "sum[0]", "cout0", "vdd", "vss", 0); |
|
for (i = 1; i < 33; i++) |
LOINS("fulladder", NAME("fulladder%d", i + 1), NAME("a[%d]", i), NAME("b[%d]", i), |
NAME("cout%d", i - 1), NAME("sum[%d]", i), NAME("cout%d", i), "vdd", "vss", 0); |
|
LOINS ("fulladdercout", "fulladder34", "a[33]", "b[33]", "cout32", "sum[33]", "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/key_regulator/en_key.c
0,0 → 1,87
//Nama file : en_key.c |
//Deskripsi : blok pembangkit kunci enkripsi |
//Author : Mas Adit |
//Tanggal : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
DEF_LOFIG ("en_key"); |
LOCON ("key_in[127:0]", IN, "key_in[127:0]"); |
LOCON ("clk", IN, "clk"); |
LOCON ("start", IN, "start"); |
LOCON ("rst", IN, "rst"); |
LOCON ("finish", OUT, "finish"); |
LOCON ("o1_1[15:0]", OUT, "o1_1[15:0]"); |
LOCON ("o1_2[15:0]", OUT, "o1_2[15:0]"); |
LOCON ("o1_3[15:0]", OUT, "o1_3[15:0]"); |
LOCON ("o1_4[15:0]", OUT, "o1_4[15:0]"); |
LOCON ("o1_5[15:0]", OUT, "o1_5[15:0]"); |
LOCON ("o1_6[15:0]", OUT, "o1_6[15:0]"); |
LOCON ("o2_1[15:0]", OUT, "o2_1[15:0]"); |
LOCON ("o2_2[15:0]", OUT, "o2_2[15:0]"); |
LOCON ("o2_3[15:0]", OUT, "o2_3[15:0]"); |
LOCON ("o2_4[15:0]", OUT, "o2_4[15:0]"); |
LOCON ("o2_5[15:0]", OUT, "o2_5[15:0]"); |
LOCON ("o2_6[15:0]", OUT, "o2_6[15:0]"); |
LOCON ("o3_1[15:0]", OUT, "o3_1[15:0]"); |
LOCON ("o3_2[15:0]", OUT, "o3_2[15:0]"); |
LOCON ("o3_3[15:0]", OUT, "o3_3[15:0]"); |
LOCON ("o3_4[15:0]", OUT, "o3_4[15:0]"); |
LOCON ("o3_5[15:0]", OUT, "o3_5[15:0]"); |
LOCON ("o3_6[15:0]", OUT, "o3_6[15:0]"); |
LOCON ("o4_1[15:0]", OUT, "o4_1[15:0]"); |
LOCON ("o4_2[15:0]", OUT, "o4_2[15:0]"); |
LOCON ("o4_3[15:0]", OUT, "o4_3[15:0]"); |
LOCON ("o4_4[15:0]", OUT, "o4_4[15:0]"); |
LOCON ("o4_5[15:0]", OUT, "o4_5[15:0]"); |
LOCON ("o4_6[15:0]", OUT, "o4_6[15:0]"); |
LOCON ("o5_1[15:0]", OUT, "o5_1[15:0]"); |
LOCON ("o5_2[15:0]", OUT, "o5_2[15:0]"); |
LOCON ("o5_3[15:0]", OUT, "o5_3[15:0]"); |
LOCON ("o5_4[15:0]", OUT, "o5_4[15:0]"); |
LOCON ("o5_5[15:0]", OUT, "o5_5[15:0]"); |
LOCON ("o5_6[15:0]", OUT, "o5_6[15:0]"); |
LOCON ("o6_1[15:0]", OUT, "o6_1[15:0]"); |
LOCON ("o6_2[15:0]", OUT, "o6_2[15:0]"); |
LOCON ("o6_3[15:0]", OUT, "o6_3[15:0]"); |
LOCON ("o6_4[15:0]", OUT, "o6_4[15:0]"); |
LOCON ("o6_5[15:0]", OUT, "o6_5[15:0]"); |
LOCON ("o6_6[15:0]", OUT, "o6_6[15:0]"); |
LOCON ("o7_1[15:0]", OUT, "o7_1[15:0]"); |
LOCON ("o7_2[15:0]", OUT, "o7_2[15:0]"); |
LOCON ("o7_3[15:0]", OUT, "o7_3[15:0]"); |
LOCON ("o7_4[15:0]", OUT, "o7_4[15:0]"); |
LOCON ("o7_5[15:0]", OUT, "o7_5[15:0]"); |
LOCON ("o7_6[15:0]", OUT, "o7_6[15:0]"); |
LOCON ("o8_1[15:0]", OUT, "o8_1[15:0]"); |
LOCON ("o8_2[15:0]", OUT, "o8_2[15:0]"); |
LOCON ("o8_3[15:0]", OUT, "o8_3[15:0]"); |
LOCON ("o8_4[15:0]", OUT, "o8_4[15:0]"); |
LOCON ("o8_5[15:0]", OUT, "o8_5[15:0]"); |
LOCON ("o8_6[15:0]", OUT, "o8_6[15:0]"); |
LOCON ("o9_1[15:0]", OUT, "o9_1[15:0]"); |
LOCON ("o9_2[15:0]", OUT, "o9_2[15:0]"); |
LOCON ("o9_3[15:0]", OUT, "o9_3[15:0]"); |
LOCON ("o9_4[15:0]", OUT, "o9_4[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("shift25", "shift1", "key_in[127:0]", "rst", "shft_en", "sel_1", "sel_2", "out_shift[127:0]", "vdd", "vss", 0); |
LOINS ("ctr_enkey1", "ctr_enkey1", "clk", "start", "rst", "qiu[2:0]", "finish", "shft_en", "sel_1", "sel_2", |
"dec_en", "vdd", "vss", 0); |
LOINS ("dec128to832", "dec1", "out_shift[127:0]", "dec_en", "rst", "qiu[2:0]", "o1_1[15:0]", "o1_2[15:0]", |
"o1_3[15:0]", "o1_4[15:0]", "o1_5[15:0]", "o1_6[15:0]", "o2_1[15:0]", "o2_2[15:0]", |
"o2_3[15:0]", "o2_4[15:0]", "o2_5[15:0]", "o2_6[15:0]", "o3_1[15:0]", "o3_2[15:0]", |
"o3_3[15:0]", "o3_4[15:0]", "o3_5[15:0]", "o3_6[15:0]", "o4_1[15:0]", "o4_2[15:0]", |
"o4_3[15:0]", "o4_4[15:0]", "o4_5[15:0]", "o4_6[15:0]", "o5_1[15:0]", "o5_2[15:0]", |
"o5_3[15:0]", "o5_4[15:0]", "o5_5[15:0]", "o5_6[15:0]", "o6_1[15:0]", "o6_2[15:0]", |
"o6_3[15:0]", "o6_4[15:0]", "o6_5[15:0]", "o6_6[15:0]", "o7_1[15:0]", "o7_2[15:0]", |
"o7_3[15:0]", "o7_4[15:0]", "o7_5[15:0]", "o7_6[15:0]", "o8_1[15:0]", "o8_2[15:0]", |
"o8_3[15:0]", "o8_4[15:0]", "o8_5[15:0]", "o8_6[15:0]", "o9_1[15:0]", "o9_2[15:0]", |
"o9_3[15:0]", "o9_4[15:0]", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/fulladder17.c
0,0 → 1,33
// File Name : fulladder17.c |
// Description : Full Adder 17 bit |
// Author : Mas Adit |
// Date : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("fulladder17"); |
|
LOCON ("a[16:0]", IN, "a[16:0]"); |
LOCON ("b[16:0]", IN, "b[16:0]"); |
LOCON ("sum[17:0]", OUT, "sum[17:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("zero_x0", "zero1", "nol", "vdd", "vss", 0); |
LOINS ("fulladder", "fulladder1", "a[0]", "b[0]", "nol", "sum[0]", "cout0", "vdd", "vss", 0); |
|
for (i = 1; i < 16; i++) |
{ |
LOINS ("fulladder", NAME("fulladder%d", i + 1), NAME("a[%d]", i), NAME("b[%d]", i), |
NAME("cout%d", i - 1), NAME("sum[%d]", i), NAME("cout%d", i), "vdd", "vss", 0); |
} |
|
LOINS ("fulladder", "fulladder17", "a[16]", "b[16]", "cout15", "sum[16]", "sum[17]", "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/key_regulator/kontrol_invadd.c
0,0 → 1,32
//Nama file : kontrol_invadd.c |
//Deskripsi : kontrol inv_add pada penggabungan |
//Author : Mas Adit |
//Tanggal : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("kontrol_invadd"); |
|
LOCON ("start", IN, "start"); |
LOCON ("clk", IN, "clk"); |
LOCON ("rst", IN, "rst"); |
LOCON ("sel_in[4:0]", OUT, "sel_in[4:0]"); |
LOCON ("sel_out[4:0]", OUT, "sel_out[4:0]"); |
LOCON ("en_in", OUT, "en_in"); |
LOCON ("en_out", OUT, "en_out"); |
LOCON ("finish", OUT, "finish"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("kontrol_utama_invadd", "kontrol_utama_invadd1", "clk", "rst", "start", "sel_in[4:0]", "sel_out[4:0]", |
"c_cdtin", "en_cdtin", "c_cdtout", "en_cdtout", "en_out", "en_in", "finish", "vdd", "vss", 0); |
LOINS ("count5_latch", "count1", "c_cdtin", "en_cdtin", "rst", "sel_in[4:0]", "vdd", "vss", 0); |
LOINS ("count5_latch", "count2", "c_cdtout", "en_cdtout", "rst", "sel_out[4:0]", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/mux12to6_latch.c
0,0 → 1,52
//Nama file : mux12to6_latch.c |
//Deskripsi : mux 12 to 6 16 bit + latch |
//Author : Mas Adit |
//Tanggal : 27 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
DEF_LOFIG ("mux12to6_latch"); |
LOCON ("i1[15:0]", IN, "i1[15:0]"); |
LOCON ("i2[15:0]", IN, "i2[15:0]"); |
LOCON ("i3[15:0]", IN, "i3[15:0]"); |
LOCON ("i4[15:0]", IN, "i4[15:0]"); |
LOCON ("i5[15:0]", IN, "i5[15:0]"); |
LOCON ("i6[15:0]", IN, "i6[15:0]"); |
LOCON ("i7[15:0]", IN, "i7[15:0]"); |
LOCON ("i8[15:0]", IN, "i8[15:0]"); |
LOCON ("i9[15:0]", IN, "i9[15:0]"); |
LOCON ("i10[15:0]", IN, "i10[15:0]"); |
LOCON ("i11[15:0]", IN, "i11[15:0]"); |
LOCON ("i12[15:0]", IN, "i12[15:0]"); |
LOCON ("en", IN, "en"); |
LOCON ("clr", IN, "clr"); |
LOCON ("sel", IN, "sel"); |
LOCON ("cke", IN, "cke"); |
LOCON ("o1[15:0]", INOUT, "o1[15:0]"); |
LOCON ("o2[15:0]", INOUT, "o2[15:0]"); |
LOCON ("o3[15:0]", INOUT, "o3[15:0]"); |
LOCON ("o4[15:0]", INOUT, "o4[15:0]"); |
LOCON ("o5[15:0]", INOUT, "o5[15:0]"); |
LOCON ("o6[15:0]", INOUT, "o6[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss" , IN, "vss"); |
|
LOINS ("mux12to6", "mux1", "i1[15:0]", "i2[15:0]", "i3[15:0]", "i4[15:0]", "i5[15:0]", "i6[15:0]", "i7[15:0]", "i8[15:0]", "i9[15:0]", "i10[15:0]", "i11[15:0]", "i12[15:0]", "en", "clr", "sel", "x1[15:0]", "x2[15:0]", "x3[15:0]", "x4[15:0]", "x5[15:0]", "x6[15:0]", "vdd", "vss", 0); |
for (i=0; i<16; i++) |
{ |
LOINS ("latch", NAME("latch%d", i), NAME("x1[%d]", i), "cke", NAME("o1[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 16), NAME("x2[%d]", i), "cke", NAME("o2[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 32), NAME("x3[%d]", i), "cke", NAME("o3[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 48), NAME("x4[%d]", i), "cke", NAME("o4[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 64), NAME("x5[%d]", i), "cke", NAME("o5[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 80), NAME("x6[%d]", i), "cke", NAME("o6[%d]", i), "vdd", "vss", 0); |
|
} |
|
SAVE_LOFIG(); |
exit(0); |
} |
|
/trunk/structural_c/key_regulator/substract16.c
0,0 → 1,31
//Nama file : substract16.c |
//Deskripsi : blok substract 2 input 16 bit |
//Author : Mas Adit |
//Tanggal : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
DEF_LOFIG ("substract16"); |
|
LOCON ("a[15:0]", IN, "a[15:0]"); |
LOCON ("b[15:0]", IN, "b[15:0]"); |
LOCON ("bin", IN, "bin"); |
LOCON ("diff[15:0]", OUT, "diff[15:0]"); |
LOCON ("bout", OUT, "bout"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("substract", "substract0", "a[0]", "b[0]", "bin", "diff[0]", "boutx[0]", "vdd", "vss", 0); |
for (i=1; i<15; i++) |
{ |
LOINS ("substract", NAME("substract%d", i), NAME("a[%d]", i), NAME("b[%d]", i), NAME("boutx[%d]", i - 1), |
NAME("diff[%d]", i), NAME("boutx[%d]", i), "vdd", "vss", 0); |
} |
LOINS ("substract", "substract15", "a[15]", "b[15]", "boutx[14]", "diff[15]", "bout", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/dec16to288_latch.c
0,0 → 1,67
//Nama file : dec16to288_latch.c |
//Deskripsi : dec 16 to 288 16 bit + latch |
//Author : Mas Adit |
//Tanggal : 27 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
DEF_LOFIG ("dec16to288_latch"); |
LOCON ("a[15:0]", IN, "a[15:0]"); |
LOCON ("en", IN, "en"); |
LOCON ("clr", IN, "clr"); |
LOCON ("sel[4:0]", IN, "sel[4:0]"); |
LOCON ("cke", IN, "cke"); |
LOCON ("o1[15:0]", INOUT, "o1[15:0]"); |
LOCON ("o2[15:0]", INOUT, "o2[15:0]"); |
LOCON ("o3[15:0]", INOUT, "o3[15:0]"); |
LOCON ("o4[15:0]", INOUT, "o4[15:0]"); |
LOCON ("o5[15:0]", INOUT, "o5[15:0]"); |
LOCON ("o6[15:0]", INOUT, "o6[15:0]"); |
|
|
LOCON ("o7[15:0]", INOUT, "o7[15:0]"); |
LOCON ("o8[15:0]", INOUT, "o8[15:0]"); |
LOCON ("o9[15:0]", INOUT, "o9[15:0]"); |
LOCON ("o10[15:0]", INOUT, "o10[15:0]"); |
LOCON ("o11[15:0]", INOUT, "o11[15:0]"); |
LOCON ("o12[15:0]", INOUT, "o12[15:0]"); |
LOCON ("o13[15:0]", INOUT, "o13[15:0]"); |
LOCON ("o14[15:0]", INOUT, "o14[15:0]"); |
LOCON ("o15[15:0]", INOUT, "o15[15:0]"); |
LOCON ("o16[15:0]", INOUT, "o16[15:0]"); |
LOCON ("o17[15:0]", INOUT, "o17[15:0]"); |
LOCON ("o18[15:0]", INOUT, "o18[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss" , IN, "vss"); |
|
LOINS ("dec16to288", "dec1", "a[15:0]", "en", "clr", "sel[4:0]", "x1[15:0]", "x2[15:0]", "x3[15:0]", "x[15:0]", "x5[15:0]", "x6[15:0]", "x7[15:0]", "x8[15:0]", "x9[15:0]", "x10[15:0]", "x11[15:0]", "x12[15:0]", "x13[15:0]", "x14[15:0]", "x15[15:0]", "x16[15:0]", "x17[15:0]", "x18[15:0]", "vdd", "vss", 0); |
for (i=0; i<16; i++) |
{ |
LOINS ("latch", NAME("latch%d", i), NAME("x1[%d]", i), "cke", NAME("o1[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 16), NAME("x2[%d]", i), "cke", NAME("o2[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 32), NAME("x3[%d]", i), "cke", NAME("o3[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 48), NAME("x4[%d]", i), "cke", NAME("o4[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 64), NAME("x5[%d]", i), "cke", NAME("o5[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 80), NAME("x6[%d]", i), "cke", NAME("o6[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 96), NAME("x7[%d]", i), "cke", NAME("o1[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 112), NAME("x8[%d]", i), "cke", NAME("o2[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 128), NAME("x9[%d]", i), "cke", NAME("o3[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 144), NAME("x10[%d]", i), "cke", NAME("o4[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 160), NAME("x11[%d]", i), "cke", NAME("o5[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 176), NAME("x12[%d]", i), "cke", NAME("o6[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 192), NAME("x13[%d]", i), "cke", NAME("o1[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 208), NAME("x14[%d]", i), "cke", NAME("o2[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 224), NAME("x15[%d]", i), "cke", NAME("o3[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 240), NAME("x16[%d]", i), "cke", NAME("o4[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 256), NAME("x17[%d]", i), "cke", NAME("o5[%d]", i), "vdd", "vss", 0); |
LOINS ("latch", NAME("latch%d", i + 272), NAME("x18[%d]", i), "cke", NAME("o6[%d]", i), "vdd", "vss", 0); |
|
} |
|
SAVE_LOFIG(); |
exit(0); |
} |
|
/trunk/structural_c/key_regulator/kontrol_invmul.c
0,0 → 1,35
//Nama file : kontrol_invmul.c |
//Deskripsi : kontrol inv_mul mod(2^16 + 1) |
//Author : Mas Adit |
//Tanggal : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
DEF_LOFIG ("kontrol_invmul"); |
|
LOCON ("start", IN, "start"); |
LOCON ("clk", IN, "clk"); |
LOCON ("rst", IN, "rst"); |
LOCON ("finish", OUT, "finish"); |
LOCON ("en_in", OUT, "en_in"); |
LOCON ("sel_in[4:0]", OUT, "sel_in[4:0]"); |
LOCON ("sel", OUT, "sel"); |
LOCON ("en_pipe", OUT, "en_pipe"); |
LOCON ("en_out", OUT, "en_out"); |
LOCON ("sel_out[4:0]", OUT, "sel_out[4:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("kontrol_utama_invmul", "kontrol_utama_invmul1", "start", "clk", "rst", "n_stage[1:0]", "n_iterasi[3:0]", |
"sel_in[4:0]", "sel_out[4:0]", "en_cstage", "c_cstage", "en_cite", "c_cite", "en_cdtin", "c_cdtin", |
"en_cdtout", "c_cdtout", "en_in", "en_out", "en_pipe", "sel", "finish", "vdd", "vss", 0); |
LOINS ("count2_latch", "count1", "c_cstage", "en_cstage", "rst", "n_stage[1:0]", "vdd", "vss", 0); |
LOINS ("count4_latch", "count2", "c_cite", "en_cite", "rst", "n_iterasi[3:0]", "vdd", "vss", 0); |
LOINS ("count5_latch", "count3", "c_cdtin", "en_cdtin", "rst", "sel_in[4:0]", "vdd", "vss", 0); |
LOINS ("count5_latch", "count4", "c_cdtout", "en_cdtout", "rst", "sel_out[4:0]", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/shift25.c
0,0 → 1,28
//Nama file : shift25.c |
//Deskripsi : blok shift register 25 posisi ke kiri |
//Author : Mas Adit |
//Tanggal : 21 Agustus 2001 |
|
#include <genlib.h> |
|
main () |
{ |
int i ; |
DEF_LOFIG ("shift25"); |
|
LOCON ("in_key[127:0]", IN, "in_key[127:0]"); |
LOCON ("clr", IN, "clr"); |
LOCON ("en", IN, "en"); |
LOCON ("sel1", IN, "sel1"); |
LOCON ("sel2", IN, "sel2"); |
LOCON ("out_key[127:0]", OUT, "out_key[127:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("mux128", "mux1", "in_key[127:0]", "kunci_out[127:0]", "sel1", "kunci_in[127:0]", "vdd", "vss", 0); |
LOINS ("shiftreg", "shiftreg1", "kunci_in[127:0]", "clr", "en", "kunci_out[127:0]", "vdd", "vss", 0); |
LOINS ("mux128", "mux2", "in_key[127:0]", "kunci_out[127:0]", "sel2", "out_key[127:0]", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/count2_latch.c
0,0 → 1,27
//Nama file : count2_latch.c |
//Deskripsi : count2.vst + latch.vst |
//Author : Mas Adit |
//Tanggal : 31 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
DEF_LOFIG ("count2_latch"); |
LOCON ("clk", IN, "clk"); |
LOCON ("en", IN, "en"); |
LOCON ("rst", IN, "rst"); |
LOCON ("q[1:0]", OUT, "q[1:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("count2", "count1", "clk", "rst", "p[1:0]", "vd", "vss", 0); |
for (i=0; i<2; i++) |
{ |
LOINS ("latch", NAME("latch%d", i), NAME("p[%d]", i), "en", NAME("q[%d]", i), "vdd", "vss", 0); |
} |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/count3_latch.c
0,0 → 1,27
//Nama file : count3_latch.c |
//Deskripsi : count3.vst + latch.vst |
//Author : Mas Adit |
//Tanggal : 31 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
DEF_LOFIG ("count3_latch"); |
LOCON ("clk", IN, "clk"); |
LOCON ("en", IN, "en"); |
LOCON ("rst", IN, "rst"); |
LOCON ("q[2:0]", OUT, "q[2:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("count3", "count1", "clk", "rst", "p[2:0]", "vd", "vss", 0); |
for (i=0; i<3; i++) |
{ |
LOINS ("latch", NAME("latch%d", i), NAME("p[%d]", i), "en", NAME("q[%d]", i), "vdd", "vss", 0); |
} |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/count4_latch.c
0,0 → 1,27
//Nama file : count4_latch.c |
//Deskripsi : count4.vst + latch.vst |
//Author : Mas Adit |
//Tanggal : 31 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
DEF_LOFIG ("count4_latch"); |
LOCON ("clk", IN, "clk"); |
LOCON ("en", IN, "en"); |
LOCON ("rst", IN, "rst"); |
LOCON ("q[3:0]", OUT, "q[3:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("count4", "count1", "clk", "rst", "p[3:0]", "vd", "vss", 0); |
for (i=0; i<4; i++) |
{ |
LOINS ("latch", NAME("latch%d", i), NAME("p[%d]", i), "en", NAME("q[%d]", i), "vdd", "vss", 0); |
} |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/adder17.c
0,0 → 1,30
//Nama file : adder17.c |
//Deskripsi : blok adder 17 bit 2 input |
//Author : Mas Adit |
//Tanggal : 29 Agustus 2001 |
|
#include <genlib.h> |
main() |
{ |
int i; |
|
DEF_LOFIG ("adder17"); |
|
LOCON ("a[16:0]", IN, "a[16:0]"); |
LOCON ("b[16:0]", IN, "b[16:0]"); |
LOCON ("res[17:0]", OUT, "res[17:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("zero_x0", "zero1", "nol", "vdd", "vss", 0); |
LOINS ("adder01", "adder0", "a[0]", "b[0]", "nol", "res[0]", "cout[0]", "vdd", "vss", 0); |
for (i=1; i<16; i++) |
{ |
LOINS ("adder01", NAME("adder%d", i), NAME("a[%d]", i), NAME("b[%d]", i), NAME("cout[%d]", i - 1), |
NAME("res[%d]", i), NAME("cout[%d]", i), "vdd", "vss", 0); |
} |
LOINS ("adder01", "adder16", "a[16]", "b[16]", "cout[15]", "res[16]", "res[17]", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/key_select.c
0,0 → 1,165
//Nama file : key_select.c |
//Deskripsi : blok pemilih kunci (decoder alamat kunci) |
//Author : Mas Adit |
//Tanggal : 23 Agustus 2001 |
|
#include <genlib.h> |
|
main () |
{ |
int i; |
DEF_LOFIG ("key_select"); |
|
LOCON ("e1[15:0]", IN, "e1[15:0]"); |
LOCON ("e2[15:0]", IN, "e2[15:0]"); |
LOCON ("e3[15:0]", IN, "e3[15:0]"); |
LOCON ("e4[15:0]", IN, "e4[15:0]"); |
LOCON ("e5[15:0]", IN, "e5[15:0]"); |
LOCON ("e6[15:0]", IN, "e6[15:0]"); |
LOCON ("e7[15:0]", IN, "e7[15:0]"); |
LOCON ("e8[15:0]", IN, "e8[15:0]"); |
LOCON ("e9[15:0]", IN, "e9[15:0]"); |
LOCON ("e10[15:0]", IN, "e10[15:0]"); |
LOCON ("e11[15:0]", IN, "e11[15:0]"); |
LOCON ("e12[15:0]", IN, "e12[15:0]"); |
LOCON ("e13[15:0]", IN, "e13[15:0]"); |
LOCON ("e14[15:0]", IN, "e14[15:0]"); |
LOCON ("e15[15:0]", IN, "e15[15:0]"); |
LOCON ("e16[15:0]", IN, "e16[15:0]"); |
LOCON ("e17[15:0]", IN, "e17[15:0]"); |
LOCON ("e18[15:0]", IN, "e18[15:0]"); |
LOCON ("e19[15:0]", IN, "e19[15:0]"); |
LOCON ("e20[15:0]", IN, "e20[15:0]"); |
LOCON ("e21[15:0]", IN, "e21[15:0]"); |
LOCON ("e22[15:0]", IN, "e22[15:0]"); |
LOCON ("e23[15:0]", IN, "e23[15:0]"); |
LOCON ("e24[15:0]", IN, "e24[15:0]"); |
LOCON ("e25[15:0]", IN, "e25[15:0]"); |
LOCON ("e26[15:0]", IN, "e26[15:0]"); |
LOCON ("e27[15:0]", IN, "e27[15:0]"); |
LOCON ("e28[15:0]", IN, "e28[15:0]"); |
LOCON ("e29[15:0]", IN, "e29[15:0]"); |
LOCON ("e30[15:0]", IN, "e30[15:0]"); |
LOCON ("e31[15:0]", IN, "e31[15:0]"); |
LOCON ("e32[15:0]", IN, "e32[15:0]"); |
LOCON ("e33[15:0]", IN, "e33[15:0]"); |
LOCON ("e34[15:0]", IN, "e34[15:0]"); |
LOCON ("e35[15:0]", IN, "e35[15:0]"); |
LOCON ("e36[15:0]", IN, "e36[15:0]"); |
LOCON ("e37[15:0]", IN, "e37[15:0]"); |
LOCON ("e38[15:0]", IN, "e38[15:0]"); |
LOCON ("e39[15:0]", IN, "e39[15:0]"); |
LOCON ("e40[15:0]", IN, "e40[15:0]"); |
LOCON ("e41[15:0]", IN, "e41[15:0]"); |
LOCON ("e42[15:0]", IN, "e42[15:0]"); |
LOCON ("e43[15:0]", IN, "e43[15:0]"); |
LOCON ("e44[15:0]", IN, "e44[15:0]"); |
LOCON ("e45[15:0]", IN, "e45[15:0]"); |
LOCON ("e46[15:0]", IN, "e46[15:0]"); |
LOCON ("e47[15:0]", IN, "e47[15:0]"); |
LOCON ("e48[15:0]", IN, "e48[15:0]"); |
LOCON ("e49[15:0]", IN, "e49[15:0]"); |
LOCON ("e50[15:0]", IN, "e50[15:0]"); |
LOCON ("e51[15:0]", IN, "e51[15:0]"); |
LOCON ("e52[15:0]", IN, "e52[15:0]"); |
LOCON ("d1[15:0]", IN, "d1[15:0]"); |
LOCON ("d2[15:0]", IN, "d2[15:0]"); |
LOCON ("d3[15:0]", IN, "d3[15:0]"); |
LOCON ("d4[15:0]", IN, "d4[15:0]"); |
LOCON ("d5[15:0]", IN, "d5[15:0]"); |
LOCON ("d6[15:0]", IN, "d6[15:0]"); |
LOCON ("d7[15:0]", IN, "d7[15:0]"); |
LOCON ("d8[15:0]", IN, "d8[15:0]"); |
LOCON ("d9[15:0]", IN, "d9[15:0]"); |
LOCON ("d10[15:0]", IN, "d10[15:0]"); |
LOCON ("d11[15:0]", IN, "d11[15:0]"); |
LOCON ("d12[15:0]", IN, "d12[15:0]"); |
LOCON ("d13[15:0]", IN, "d13[15:0]"); |
LOCON ("d14[15:0]", IN, "d14[15:0]"); |
LOCON ("d15[15:0]", IN, "d15[15:0]"); |
LOCON ("d16[15:0]", IN, "d16[15:0]"); |
LOCON ("d17[15:0]", IN, "d17[15:0]"); |
LOCON ("d18[15:0]", IN, "d18[15:0]"); |
LOCON ("d19[15:0]", IN, "d19[15:0]"); |
LOCON ("d20[15:0]", IN, "d20[15:0]"); |
LOCON ("d21[15:0]", IN, "d21[15:0]"); |
LOCON ("d22[15:0]", IN, "d22[15:0]"); |
LOCON ("d23[15:0]", IN, "d23[15:0]"); |
LOCON ("d24[15:0]", IN, "d24[15:0]"); |
LOCON ("d25[15:0]", IN, "d25[15:0]"); |
LOCON ("d26[15:0]", IN, "d26[15:0]"); |
LOCON ("d27[15:0]", IN, "d27[15:0]"); |
LOCON ("d28[15:0]", IN, "d28[15:0]"); |
LOCON ("d29[15:0]", IN, "d29[15:0]"); |
LOCON ("d30[15:0]", IN, "d30[15:0]"); |
LOCON ("d31[15:0]", IN, "d31[15:0]"); |
LOCON ("d32[15:0]", IN, "d32[15:0]"); |
LOCON ("d33[15:0]", IN, "d33[15:0]"); |
LOCON ("d34[15:0]", IN, "d34[15:0]"); |
LOCON ("d35[15:0]", IN, "d35[15:0]"); |
LOCON ("d36[15:0]", IN, "d36[15:0]"); |
LOCON ("d37[15:0]", IN, "d37[15:0]"); |
LOCON ("d38[15:0]", IN, "d38[15:0]"); |
LOCON ("d39[15:0]", IN, "d39[15:0]"); |
LOCON ("d40[15:0]", IN, "d40[15:0]"); |
LOCON ("d41[15:0]", IN, "d41[15:0]"); |
LOCON ("d42[15:0]", IN, "d42[15:0]"); |
LOCON ("d43[15:0]", IN, "d43[15:0]"); |
LOCON ("d44[15:0]", IN, "d44[15:0]"); |
LOCON ("d45[15:0]", IN, "d45[15:0]"); |
LOCON ("d46[15:0]", IN, "d46[15:0]"); |
LOCON ("d47[15:0]", IN, "d47[15:0]"); |
LOCON ("d48[15:0]", IN, "d48[15:0]"); |
LOCON ("d49[15:0]", IN, "d49[15:0]"); |
LOCON ("d50[15:0]", IN, "d50[15:0]"); |
LOCON ("d51[15:0]", IN, "d51[15:0]"); |
LOCON ("d52[15:0]", IN, "d52[15:0]"); |
LOCON ("E", IN, "E"); |
LOCON ("en", IN, "en"); |
LOCON ("clr", IN, "clr"); |
LOCON ("cke", IN, "cke"); |
LOCON ("round[2:0]", IN, "round[2:0]"); |
LOCON ("z1[15:0]", OUT, "z1[15:0]"); |
LOCON ("z2[15:0]", OUT, "z2[15:0]"); |
LOCON ("z3[15:0]", OUT, "z3[15:0]"); |
LOCON ("z4[15:0]", OUT, "z4[15:0]"); |
LOCON ("z5[15:0]", OUT, "z5[15:0]"); |
LOCON ("z6[15:0]", OUT, "z6[15:0]"); |
LOCON ("z91[15:0]", OUT, "z91[15:0]"); |
LOCON ("z92[15:0]", OUT, "z92[15:0]"); |
LOCON ("z93[15:0]", OUT, "z93[15:0]"); |
LOCON ("z94[15:0]", OUT, "z94[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("mux48to6", "mux_en_key", "e1[15:0]", "e2[15:0]", "e3[15:0]", "e4[15:0]", "e5[15:0]", "e6[15:0]", "e7[15:0]", |
"e8[15:0]", "e9[15:0]", "e10[15:0]", "e11[15:0]", "e12[15:0]", "e13[15:0]", "e14[15:0]", "e15[15:0]", |
"e16[15:0]", "e17[15:0]", "e18[15:0]", "e19[15:0]", "e20[15:0]", "e21[15:0]", "e22[15:0]", "e23[15:0]", |
"e24[15:0]", "e25[15:0]", "e26[15:0]", "e27[15:0]", "e28[15:0]", "e29[15:0]", "e30[15:0]", "e31[15:0]", |
"e32[15:0]", "e33[15:0]", "e34[15:0]", "e35[15:0]", "e36[15:0]", "e37[15:0]", "e38[15:0]", "e39[15:0]", |
"e40[15:0]", "e41[15:0]", "e42[15:0]", "e43[15:0]", "e44[15:0]", "e45[15:0]", "e46[15:0]", "e47[15:0]", |
"e48[15:0]", "round[2:0]", "oe1[15:0]", "oe2[15:0]", "oe3[15:0]", "oe4[15:0]", "oe5[15:0]", "oe6[15:0]", |
"vdd", "vss", 0); |
LOINS ("mux48to6", "mux_de_key", "d1[15:0]", "d2[15:0]", "d3[15:0]", "d4[15:0]", "d5[15:0]", "d6[15:0]", "d7[15:0]", |
"d8[15:0]", "d9[15:0]", "d10[15:0]", "d11[15:0]", "d12[15:0]", "d13[15:0]", "d14[15:0]", "d15[15:0]", |
"d16[15:0]", "d17[15:0]", "d18[15:0]", "d19[15:0]", "d20[15:0]", "d21[15:0]", "d22[15:0]", "d23[15:0]", |
"d24[15:0]", "d25[15:0]", "d26[15:0]", "d27[15:0]", "d28[15:0]", "d29[15:0]", "d30[15:0]", "d31[15:0]", |
"d32[15:0]", "d33[15:0]", "d34[15:0]", "d35[15:0]", "d36[15:0]", "d37[15:0]", "d38[15:0]", "d39[15:0]", |
"d40[15:0]", "d41[15:0]", "d42[15:0]", "d43[15:0]", "d44[15:0]", "d45[15:0]", "d46[15:0]", "d47[15:0]", |
"d48[15:0]", "round[2:0]", "od1[15:0]", "od2[15:0]", "od3[15:0]", "od4[15:0]", "od5[15:0]", "od6[15:0]", |
"vdd", "vss", 0); |
LOINS ("mux12to6_latch", "mux_E_D1", "oe1[15:0]", "oe2[15:0]", "oe3[15:0]", "oe4[15:0]", "oe5[15:0]", "oe6[15:0]", |
"od1[15:0]", "od2[15:0]", "od3[15:0]", "od4[15:0]", "od5[15:0]", "od6[15:0]", "en", "clr", "E", "cke", |
"z1[15:0]", "z2[15:0]", "z3[15:0]", "z4[15:0]", "z5[15:0]", "z6[15:0]", "vdd", "vss", 0); |
LOINS ("mux8to4_latch", "mux_E_D2", "e49[15:0]", "e50[15:0]", "e51[15:0]", "e52[15:0]", "d49[15:0]", "d50[15:0]", |
"d51[15:0]", "d52[15:0]", "en", "clr", "E", "cke", "z91[15:0]", "z92[15:0]", "z93[15:0]", "z94[15:0]","vdd", |
"vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
|
|
|
|
|
/trunk/structural_c/key_regulator/count5_latch.c
0,0 → 1,27
//Nama file : count5_latch.c |
//Deskripsi : count5.vst + latch.vst |
//Author : Mas Adit |
//Tanggal : 31 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
int i; |
DEF_LOFIG ("count5_latch"); |
LOCON ("clk", IN, "clk"); |
LOCON ("en", IN, "en"); |
LOCON ("rst", IN, "rst"); |
LOCON ("q[4:0]", OUT, "q[4:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("count5", "count1", "clk", "rst", "p[4:0]", "vd", "vss", 0); |
for (i=0; i<5; i++) |
{ |
LOINS ("latch", NAME("latch%d", i), NAME("p[%d]", i), "en", NAME("q[%d]", i), "vdd", "vss", 0); |
} |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/latch.c
0,0 → 1,24
// File Name : latch.c |
// Description : Latch in C |
// Author : Sigit Dewantoro |
// Date : March 27th, 2001 |
|
#include <genlib.h> |
|
main() |
{ |
DEF_LOFIG ("latch"); |
|
LOCON ("a", IN, "a"); |
LOCON ("en", IN, "en"); |
LOCON ("b", INOUT, "b"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("noa22_x1", "notorand1", "en", "a", "b", "q", "vdd", "vss", 0); |
LOINS ("inv_x1", "inv1", "a", "nota", "vdd", "vss", 0); |
LOINS ("noa22_x1", "notorand2", "en", "nota" , "q", "b", "vdd", "vss", 0); |
|
SAVE_LOFIG(); |
exit(0); |
} |
/trunk/structural_c/key_regulator/invmuls.c
0,0 → 1,33
//Nama file : invmuls.c |
//Deskripsi : invers multiplication modulo (2^16 + 1) |
//Author : Mas Adit |
//Tanggal : 26 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
|
DEF_LOFIG ("invmuls"); |
|
LOCON ("zi[15:0]", IN, "zi[15:0]"); |
LOCON ("rst", IN, "rst"); |
LOCON ("en_pipe", IN, "en_pipe"); |
LOCON ("sel", IN, "sel"); |
LOCON ("cke", IN, "cke"); |
LOCON ("zo[15:0]", OUT, "zo[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("mux16", "mux_L", "zo[15:0]", "zi[15:0]", "sel", "o_mux_L[15:0]", "vdd", "vss", 0); |
LOINS ("mux16", "mux_R", "ost3_R[15:0]", "zi[15:0]", "sel", "o_mux_R[15:0]", "vdd", "vss", 0); |
LOINS ("reg16_latch", "reg1_L", "o_mux_L[15:0]", "en", "clr", "cke", "ost1_L[15:0]", "vdd", "vss", 0); |
LOINS ("reg16_latch", "reg1_R", "o_mux_R[15:0]", "en", "clr", "cke", "ost1_R[15:0]", "vdd", "vss", 0); |
LOINS ("reg16_latch", "reg2_L", "ost1_L[15:0]", "en", "clr", "cke", "ost2_L[15:0]", "vdd", "vss", 0); |
LOINS ("mulmod", "mulmod_R", "ost1_R[15:0]", "ost1_R[15:0]", "en", "clr", "cke", "ost2_R[15:0]", "vdd", "vss", 0); |
LOINS ("mulmod", "mulmod_L", "ost2_L[15:0]", "ost2_R[15:0]", "en", "clr", "cke", "zo[15:0]", "vdd", "vss", 0); |
LOINS ("reg16_latch", "reg2_R", "ost2_R[15:0]", "en", "clr", "cke", "ost3_R[15:0]", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
/trunk/structural_c/key_regulator/gen_inv_add.c
0,0 → 1,76
//Nama file : gen_inv_add.c |
//Deskripsi : blok pembangkit invers penjumlahan modulo (2^16 + 1) |
//Author : Mas Adit |
//Tanggal : 28 Agustus 2001 |
|
#include<genlib.h> |
|
main() |
{ |
int i; |
|
DEF_LOFIG ("gen_inv_add"); |
|
LOCON (" i1[15:0]", IN, "i1[15:0]"); |
LOCON (" i2[15:0]", IN, "i2[15:0]"); |
LOCON (" i3[15:0]", IN, "i3[15:0]"); |
LOCON (" i4[15:0]", IN, "i4[15:0]"); |
LOCON (" i5[15:0]", IN, "i5[15:0]"); |
LOCON (" i6[15:0]", IN, "i6[15:0]"); |
LOCON (" i7[15:0]", IN, "i7[15:0]"); |
LOCON (" i8[15:0]", IN, "i8[15:0]"); |
LOCON (" i9[15:0]", IN, "i9[15:0]"); |
LOCON (" i10[15:0]", IN, "i10[15:0]"); |
LOCON (" i11[15:0]", IN, "i11[15:0]"); |
LOCON (" i12[15:0]", IN, "i12[15:0]"); |
LOCON (" i13[15:0]", IN, "i13[15:0]"); |
LOCON (" i14[15:0]", IN, "i14[15:0]"); |
LOCON (" i15[15:0]", IN, "i15[15:0]"); |
LOCON (" i16[15:0]", IN, "i16[15:0]"); |
LOCON (" i17[15:0]", IN, "i17[15:0]"); |
LOCON (" i18[15:0]", IN, "i18[15:0]"); |
LOCON ("clk", IN, "clk"); |
LOCON ("rst", IN, "rst"); |
LOCON ("start", IN, "start"); |
LOCON (" o1[15:0]", OUT, "o1[15:0]"); |
LOCON (" o2[15:0]", OUT, "o2[15:0]"); |
LOCON (" o3[15:0]", OUT, "o3[15:0]"); |
LOCON (" o4[15:0]", OUT, "o4[15:0]"); |
LOCON (" o5[15:0]", OUT, "o5[15:0]"); |
LOCON (" o6[15:0]", OUT, "o6[15:0]"); |
LOCON (" o7[15:0]", OUT, "o7[15:0]"); |
LOCON (" o8[15:0]", OUT, "o8[15:0]"); |
LOCON (" o9[15:0]", OUT, "o9[15:0]"); |
LOCON (" o10[15:0]", OUT, "o10[15:0]"); |
LOCON (" o11[15:0]", OUT, "o11[15:0]"); |
LOCON (" o12[15:0]", OUT, "o12[15:0]"); |
LOCON (" o13[15:0]", OUT, "o13[15:0]"); |
LOCON (" o14[15:0]", OUT, "o14[15:0]"); |
LOCON (" o15[15:0]", OUT, "o15[15:0]"); |
LOCON (" o16[15:0]", OUT, "o16[15:0]"); |
LOCON (" o17[15:0]", OUT, "o17[15:0]"); |
LOCON (" o18[15:0]", OUT, "o18[15:0]"); |
LOCON ("finish", OUT, "finish"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("mux288to16_latch", "mux1", "i1[15:0]", "i2[15:0]", "i3[15:0]", "i4[15:0]", "i5[15:0]", "i6[15:0]", |
"i7[15:0]", "i8[15:0]", "i9[15:0]", "i10[15:0]", "i11[15:0]", "i12[15:0]", "i13[15:0]", "i14[15:0]", "i15[15:0]", |
"i16[15:0]", "i17[15:0]", "i18[15:0]", "en_in", "rst", "sel_in[4:0]", "start", "zi[15:0]", "vdd", "vss", 0); |
LOINS ("zero16", "zero1", "nol[15:0]", "vdd", "vss", 0); |
LOINS ("fullsubstractor16", "fullsubstractor1", "nol[15:0]", "zi[15:0]", "zo[15:0]", "vdd", "vss", 0); |
LOINS ("dec16to288_latch", "dec1", "zo[15:0]", "en_out", "rst", "sel_out[4:0]", "start", "o1[15:0]", "o2[15:0]", |
"o3[15:0]", "o4[15:0]", "o5[15:0]", "o6[15:0]", "o7[15:0]", "o8[15:0]", "o9[15:0]", "o10[15:0]", "o11[15:0]", |
"o12[15:0]", "o13[15:0]", "o14[15:0]", "o15[15:0]", "o16[15:0]", "o17[15:0]", "o18[15:0]", "vdd", "vss", 0); |
LOINS ("kontrol_invadd", "kontrol_invadd1", "start", "clk", "rst","sel_in[4:0]", "sel_out[4:0]", "en_in", "en_out", |
"finish", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |
|
|
|
|
|
|
/trunk/structural_c/key_regulator/mulmod.c
0,0 → 1,31
//Nama file : mulmod.c |
//Deskripsi : blok multiplier modulo (2^16 + 1) |
//Author : Mas Adit |
//Tanggal : 29 Agustus 2001 |
|
#include <genlib.h> |
|
main() |
{ |
DEF_LOFIG ("mulmod"); |
LOCON ("in1[15:0]", IN, "in1[15:0]"); |
LOCON ("in2[15:0]", IN, "in2[15:0]"); |
LOCON ("en", IN, "en"); |
LOCON ("rst", IN, "rst"); |
LOCON ("cke", IN, "cke"); |
LOCON ("mulout[15:0]", OUT, "mulout[15:0]"); |
LOCON ("vdd", IN, "vdd"); |
LOCON ("vss", IN, "vss"); |
|
LOINS ("comparator", "comparator1", "in1[15:0]", "kout1[16:0]", "vdd", "vss", 0); |
LOINS ("comparator", "comparator2", "in2[15:0]", "kout2[16:0]", "vdd", "vss", 0); |
LOINS ("multiplier17", "mul17", "kout1[16:0]", "kout2[16:0]", "has[33:0]", "vdd", "vss", 0); |
LOINS ("comparator2", "comparator3", "has[15:0]", "has[31:16]", "kout3[15:0]", "vdd", "vss", 0); |
LOINS ("fullsubstractor16", "fullsubstractor1", "has[15:0]", "has[31:16]", "diff[15:0]", "vdd", "vss", 0); |
LOINS ("reg16_latch", "reg1", "kout3[15:0]", "en", "rst", "cke", "b1[15:0]", "vdd", "vss", 0); |
LOINS ("reg16_latch", "reg2", "diff[15:0]", "en", "rst", "cke", "b2[15:0]", "vdd", "vss", 0); |
LOINS ("fulladder16", "fulladder1", "b1[15:0]", "b2[15:0]", "mulout[15:0]", "vdd", "vss", 0); |
|
SAVE_LOFIG (); |
exit (0); |
} |