OpenCores
URL https://opencores.org/ocsvn/apbtoaes128/apbtoaes128/trunk

Subversion Repositories apbtoaes128

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /apbtoaes128/trunk/pli
    from Rev 5 to Rev 9
    Reverse comparison

Rev 5 → Rev 9

/aes_init.h
110,6 → 110,25
c = 0;
d = 0;
 
v_monitor.value.integer=0;
v_monitor_catch.value.integer=0;
A=B=C=D=E=F=G=H=I=J=L=M=N=0;
 
for(counter_monitor=0;counter_monitor < 16;counter_monitor++)
{
INPUT_KEYR[counter_monitor] =0x00;
OUTPUT_KEYR[counter_monitor]=0x00;
 
INPUT_IVR[counter_monitor] =0x00;
OUTPUT_IVR[counter_monitor] =0x00;
 
INPUT_TEXT[counter_monitor]=0x00;
OUTPUT_TEXT[counter_monitor]=0x00;
}
 
counter_monitor=0;
cycle_counter =0;
 
/* WRITE READ
vector_address[0]= ADDR_AES_CR;
vector_address[1]= ADDR_AES_SR;
127,10 → 146,10
 
 
vector_address[0]= ADDR_AES_CR;
vector_address[1]= ADDR_AES_KEYR0;
vector_address[2]= ADDR_AES_KEYR1;
vector_address[3]= ADDR_AES_KEYR2;
vector_address[4]= ADDR_AES_KEYR3;
vector_address[1]= ADDR_AES_KEYR3;
vector_address[2]= ADDR_AES_KEYR2;
vector_address[3]= ADDR_AES_KEYR1;
vector_address[4]= ADDR_AES_KEYR0;
vector_address[5]= ADDR_AES_IVR3;
vector_address[6]= ADDR_AES_IVR2;
vector_address[7]= ADDR_AES_IVR1;
/env_aes.c
77,6 → 77,7
//#include <vpi_user.h>
#include <iostream>
#include <random>
#include<string.h>
 
 
s_vpi_value v_generate;
84,6 → 85,11
s_vpi_value v_ecb;
s_vpi_time t_ecb;
 
s_vpi_value v_monitor;
s_vpi_value v_monitor_catch;
 
s_vpi_time t_monitor;
 
s_vpi_value v_wr;
s_vpi_time t_wr;
 
94,12 → 100,32
s_vpi_value v_initial;
s_vpi_time t_initial;
 
 
//USED BY BFM ONLY
unsigned long int a;
unsigned long int b;
unsigned long int c;
unsigned long int d;
 
 
//USED BY MONITOR ONLY
unsigned long int A;
unsigned long int B;
unsigned long int C;
unsigned long int D;
 
 
unsigned long int E;
unsigned long int F;
unsigned long int G;
unsigned long int H;
 
unsigned long int I;
 
unsigned long int J;
unsigned long int L;
unsigned long int M;
unsigned long int N;
 
int type_bfm;
 
int STATE;
106,7 → 132,10
int STATE_RESET;
 
int counter;
int counter_monitor;
int cycle_counter;
 
 
int flag;
 
int reset_counter;
217,22 → 246,36
 
 
/*MAX PACKETS GENERATION*/
#define MAX_ITERATIONS 17
#define MAX_ITERATIONS 5
 
/*MAX RESET GENERATION */
#define MAX_RESET_TIMES 4
 
/*THIS IS USED BY MONITOR TO CATCH INPUTS AND OUTPUTS*/
unsigned char INPUT_KEYR[16];
unsigned char OUTPUT_KEYR[16];
 
unsigned char INPUT_IVR[16];
unsigned char OUTPUT_IVR[16];
 
unsigned char INPUT_TEXT[16];
unsigned char OUTPUT_TEXT[16];
 
 
/*THIS INCLUDE IS USED TO GENERATE DATA DO BE INSERTED ON DUT*/
unsigned char TEXT_FIPS_NOT_DERIVATED[] = {0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF};
unsigned char KEY_FIPS_NOT_DERIVATED[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};
unsigned char TEXT_FIPS_NOT_DERIVATED[] = {0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF};
unsigned char KEY_FIPS_NOT_DERIVATED[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};
 
unsigned char TEXT_FIPS_DERIVATED[] = {0x69,0xC4,0xE0,0xD8,0x6A,0x7B,0x04,0x30,0xD8,0xCD,0xB7,0x80,0x70,0xB4,0xC5,0x5A};
unsigned char KEY_FIPS_DERIVATED[] = {0x13,0x11,0x1D,0x7F,0xE3,0x94,0x4A,0x17,0xF3,0x07,0xA7,0x8B,0x4D,0x2B,0x30,0xC5};
unsigned char TEXT_FIPS_DERIVATED[] = {0x69,0xC4,0xE0,0xD8,0x6A,0x7B,0x04,0x30,0xD8,0xCD,0xB7,0x80,0x70,0xB4,0xC5,0x5A};
unsigned char KEY_FIPS_DERIVATED[] = {0x13,0x11,0x1D,0x7F,0xE3,0x94,0x4A,0x17,0xF3,0x07,0xA7,0x8B,0x4D,0x2B,0x30,0xC5};
 
 
unsigned char KEY_FIPS_CBC_NOT_DERIVATED[] = {0x2B,0x7E,0x15,0x16,0x28,0xAE,0xD2,0xA6,0xAB,0xF7,0x15,0x88,0x09,0xCF,0x4F,0x3C};
unsigned char IV_FIPS_CBC_NOT_DERIVATED[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};
 
 
unsigned char TEXT_FIPS_CBC_NOT_DERIVATED[] = {0x6B,0xC1,0xBE,0xE2,0x2E,0x40,0x9F,0x96,0xE9,0x3D,0x7E,0x11,0x73,0x93,0x17,0x2A};
unsigned char KEY_FIPS_CBC_DERIVATED[] = {0xD0,0x14,0xF9,0xA8,0xC9,0xEE,0x25,0x89,0xE1,0x3F,0x0C,0xC8,0xB6,0x63,0x0C,0xA6};
 
 
unsigned char TEXT_CBC_FIPS_DERIVATED[] = {0x76,0x49,0xAB,0xAC,0x81,0x19,0xB2,0x46,0xCE,0xE9,0x8E,0x9B,0x12,0xE9,0x19,0x7D};
243,7 → 286,10
unsigned char TEXT_FIPS_CTR_NOT_DERIVATED[] = {0x6B,0xC1,0xBE,0xE2,0x2E,0x40,0x9F,0x96,0xE9,0x3D,0x7E,0x11,0x73,0x93,0x17,0x2A};
 
unsigned char TEXT_CTR_FIPS_DERIVATED[] = {0x87,0x4D,0x61,0x91,0xB6,0x20,0xE3,0x26,0x1B,0xEF,0x68,0x64,0x99,0x0D,0xB6,0xCE};
unsigned char KEY_FIPS_CTR_DERIVATED[] = {0xD0,0x14,0xF9,0xA8,0xC9,0xEE,0x25,0x89,0xE1,0x3F,0x0C,0xC8,0xB6,0x63,0x0C,0xA6};
 
unsigned char TEXT_NULL[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
 
/*BFM CONTROL FLOW*/
#include "aes_bfm_generate.h"
 
/aes_monitor.h
78,6 → 78,7
vpiHandle PRESETn = vpi_handle_by_name("AES_GLADIC_tb.PRESETn", NULL);
vpiHandle PWDATA = vpi_handle_by_name("AES_GLADIC_tb.PWDATA", NULL);
vpiHandle PENABLE = vpi_handle_by_name("AES_GLADIC_tb.PENABLE", NULL);
vpiHandle PSEL = vpi_handle_by_name("AES_GLADIC_tb.PSEL", NULL);
vpiHandle PWRITE = vpi_handle_by_name("AES_GLADIC_tb.PWRITE", NULL);
vpiHandle PADDR = vpi_handle_by_name("AES_GLADIC_tb.PADDR", NULL);
vpiHandle PRDATA = vpi_handle_by_name("AES_GLADIC_tb.PRDATA", NULL);
87,12 → 88,1520
vpiHandle int_err = vpi_handle_by_name("AES_GLADIC_tb.int_err", NULL);
vpiHandle dma_req_wr = vpi_handle_by_name("AES_GLADIC_tb.dma_req_wr", NULL);
vpiHandle dma_req_rd = vpi_handle_by_name("AES_GLADIC_tb.dma_req_rd", NULL);
vpiHandle i = vpi_handle_by_name("AES_GLADIC_tb.i", NULL);
 
if(type_bfm == 2)
std::random_device rd;
std::uniform_int_distribution<long int> data_in(0,4294967295);
 
 
 
v_monitor.format=vpiIntVal;
v_monitor_catch.format=vpiIntVal;
 
 
vpi_get_value(PRESETn, &v_monitor);
 
t_monitor.type = vpiScaledRealTime;
t_monitor.real = 10;
 
if(v_monitor.value.integer == 1)
{
vpi_get_value(PENABLE, &v_monitor);
 
if(v_monitor.value.integer == 1)
{
 
vpi_get_value(PWRITE, &v_monitor);
 
 
if(v_monitor.value.integer == 1)
{
vpi_get_value(PADDR, &v_monitor);
 
 
if(v_monitor.value.integer == ADDR_AES_KEYR3)
{
vpi_get_value(PWDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
A=v_monitor_catch.value.integer;
 
INPUT_KEYR[0]=A>>24;
INPUT_KEYR[1]=A>>16;
INPUT_KEYR[2]=A>>8;
INPUT_KEYR[3]=A;
}
 
if(v_monitor.value.integer == ADDR_AES_KEYR2)
{
vpi_get_value(PWDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
B=v_monitor_catch.value.integer;
 
INPUT_KEYR[4]=B>>24;
INPUT_KEYR[5]=B>>16;
INPUT_KEYR[6]=B>>8;
INPUT_KEYR[7]=B;
}
 
if(v_monitor.value.integer == ADDR_AES_KEYR1)
{
vpi_get_value(PWDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
C=v_monitor_catch.value.integer;
 
INPUT_KEYR[8]=C>>24;
INPUT_KEYR[9]=C>>16;
INPUT_KEYR[10]=C>>8;
INPUT_KEYR[11]=C;
}
 
if(v_monitor.value.integer == ADDR_AES_KEYR0)
{
vpi_get_value(PWDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
D=v_monitor_catch.value.integer;
INPUT_KEYR[12]=D>>24;
INPUT_KEYR[13]=D>>16;
INPUT_KEYR[14]=D>>8;
INPUT_KEYR[15]=D;
 
//printf("%x%x%x%x\n",INPUT_KEYR[0],INPUT_KEYR[1],INPUT_KEYR[2],INPUT_KEYR[3]);
 
//printf("%x%x%x%x\n",KEYR[0],KEYR[1],KEYR[2],KEYR[3]);
}
 
 
if(v_monitor.value.integer == ADDR_AES_IVR3)
{
vpi_get_value(PWDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
E=v_monitor_catch.value.integer;
 
INPUT_IVR[0]=E>>24;
INPUT_IVR[1]=E>>16;
INPUT_IVR[2]=E>>8;
INPUT_IVR[3]=E;
}
 
if(v_monitor.value.integer == ADDR_AES_IVR2)
{
vpi_get_value(PWDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
F=v_monitor_catch.value.integer;
 
INPUT_IVR[4]=F>>24;
INPUT_IVR[5]=F>>16;
INPUT_IVR[6]=F>>8;
INPUT_IVR[7]=F;
}
 
if(v_monitor.value.integer == ADDR_AES_IVR1)
{
vpi_get_value(PWDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
G=v_monitor_catch.value.integer;
 
INPUT_IVR[8]=G>>24;
INPUT_IVR[9]=G>>16;
INPUT_IVR[10]=G>>8;
INPUT_IVR[11]=G;
}
 
if(v_monitor.value.integer == ADDR_AES_IVR0)
{
vpi_get_value(PWDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
H=v_monitor_catch.value.integer;
 
INPUT_IVR[12]=H>>24;
INPUT_IVR[13]=H>>16;
INPUT_IVR[14]=H>>8;
INPUT_IVR[15]=H;
 
}
 
if(v_monitor.value.integer == ADDR_AES_CR)
{
vpi_get_value(PWDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
I=v_monitor_catch.value.integer;
}
 
if(v_monitor.value.integer == ADDR_AES_DINR)
{
vpi_get_value(PWDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
 
if(counter_monitor == 0)
{
 
J=v_monitor_catch.value.integer;
INPUT_TEXT[0]=J>>24;
INPUT_TEXT[1]=J>>16;
INPUT_TEXT[2]=J>>8;
INPUT_TEXT[3]=J;
counter_monitor++;
 
}else if(counter_monitor == 1)
{
 
L=v_monitor_catch.value.integer;
INPUT_TEXT[4]=L>>24;
INPUT_TEXT[5]=L>>16;
INPUT_TEXT[6]=L>>8;
INPUT_TEXT[7]=L;
 
counter_monitor++;
 
 
}else if(counter_monitor == 2)
{
 
M=v_monitor_catch.value.integer;
INPUT_TEXT[8]=M>>24;
INPUT_TEXT[9]=M>>16;
INPUT_TEXT[10]=M>>8;
INPUT_TEXT[11]=M;
 
counter_monitor++;
 
 
}else if(counter_monitor == 3)
{
 
N=v_monitor_catch.value.integer;
INPUT_TEXT[12]=N>>24;
INPUT_TEXT[13]=N>>16;
INPUT_TEXT[14]=N>>8;
INPUT_TEXT[15]=N;
 
counter_monitor=0;
}
 
 
}
 
}else if(v_monitor.value.integer == 0){
 
vpi_get_value(PADDR, &v_monitor);
 
if(v_monitor.value.integer == ADDR_AES_KEYR3)
{
vpi_get_value(PRDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
A=v_monitor_catch.value.integer;
 
OUTPUT_KEYR[0]=A>>24;
OUTPUT_KEYR[1]=A>>16;
OUTPUT_KEYR[2]=A>>8;
OUTPUT_KEYR[3]=A;
 
counter_monitor++;
 
//printf("%x%x%x%x\n",KEYR[0],KEYR[1],KEYR[2],KEYR[3]);
}
 
if(v_monitor.value.integer == ADDR_AES_KEYR2)
{
vpi_get_value(PRDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
B=v_monitor_catch.value.integer;
 
OUTPUT_KEYR[4]=B>>24;
OUTPUT_KEYR[5]=B>>16;
OUTPUT_KEYR[6]=B>>8;
OUTPUT_KEYR[7]=B;
 
counter_monitor++;
 
}
 
if(v_monitor.value.integer == ADDR_AES_KEYR1)
{
vpi_get_value(PRDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
C=v_monitor_catch.value.integer;
 
OUTPUT_KEYR[8]=C>>24;
OUTPUT_KEYR[9]=C>>16;
OUTPUT_KEYR[10]=C>>8;
OUTPUT_KEYR[11]=C;
counter_monitor++;
 
 
}
 
if(v_monitor.value.integer == ADDR_AES_KEYR0)
{
vpi_get_value(PRDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
D=v_monitor_catch.value.integer;
OUTPUT_KEYR[12]=D>>24;
OUTPUT_KEYR[13]=D>>16;
OUTPUT_KEYR[14]=D>>8;
OUTPUT_KEYR[15]=D;
 
counter_monitor++;
 
//printf("%x%x%x%x\n",KEYR[0],KEYR[1],KEYR[2],KEYR[3]);
}
 
if(v_monitor.value.integer == ADDR_AES_IVR3)
{
vpi_get_value(PRDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
E=v_monitor_catch.value.integer;
 
OUTPUT_IVR[0]=E>>24;
OUTPUT_IVR[1]=E>>16;
OUTPUT_IVR[2]=E>>8;
OUTPUT_IVR[3]=E;
counter_monitor++;
 
}
 
if(v_monitor.value.integer == ADDR_AES_IVR2)
{
vpi_get_value(PRDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
F=v_monitor_catch.value.integer;
 
OUTPUT_IVR[4]=F>>24;
OUTPUT_IVR[5]=F>>16;
OUTPUT_IVR[6]=F>>8;
OUTPUT_IVR[7]=F;
 
counter_monitor++;
 
 
}
 
if(v_monitor.value.integer == ADDR_AES_IVR1)
{
vpi_get_value(PRDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
G=v_monitor_catch.value.integer;
 
OUTPUT_IVR[8]=G>>24;
OUTPUT_IVR[9]=G>>16;
OUTPUT_IVR[10]=G>>8;
OUTPUT_IVR[11]=G;
 
counter_monitor++;
 
}
 
if(v_monitor.value.integer == ADDR_AES_IVR0)
{
vpi_get_value(PRDATA, &v_monitor_catch);
//printf("%X\n",v_monitor_catch.value.integer);
H=v_monitor_catch.value.integer;
 
OUTPUT_IVR[12]=H>>24;
OUTPUT_IVR[13]=H>>16;
OUTPUT_IVR[14]=H>>8;
OUTPUT_IVR[15]=H;
 
counter_monitor++;
}
 
 
if(v_monitor.value.integer == ADDR_AES_DOUTR)
{
vpi_get_value(PRDATA, &v_monitor_catch);
//vpi_put_value(PRDATA, &v_monitor_catch, &t_monitor, vpiTransportDelay);
//printf("%X\n",v_monitor_catch.value.integer);
 
if(counter_monitor == 0)
{
 
J=v_monitor_catch.value.integer;
OUTPUT_TEXT[0]=J>>24;
OUTPUT_TEXT[1]=J>>16;
OUTPUT_TEXT[2]=J>>8;
OUTPUT_TEXT[3]=J;
counter_monitor++;
 
}else if(counter_monitor == 1)
{
L=v_monitor_catch.value.integer;
OUTPUT_TEXT[4]=L>>24;
OUTPUT_TEXT[5]=L>>16;
OUTPUT_TEXT[6]=L>>8;
OUTPUT_TEXT[7]=L;
 
counter_monitor++;
 
 
 
}else if(counter_monitor == 2)
{
 
M=v_monitor_catch.value.integer;
OUTPUT_TEXT[8]=M>>24;
OUTPUT_TEXT[9]=M>>16;
OUTPUT_TEXT[10]=M>>8;
OUTPUT_TEXT[11]=M;
 
counter_monitor++;
 
 
}else if(counter_monitor == 3)
{
 
N=v_monitor_catch.value.integer;
OUTPUT_TEXT[12]=N>>24;
OUTPUT_TEXT[13]=N>>16;
OUTPUT_TEXT[14]=N>>8;
OUTPUT_TEXT[15]=N;
 
counter_monitor++;
}
 
}
 
// vpi_mcd_printf(1,"%d\n",counter_monitor);
 
 
if(counter_monitor == 12 && FIPS_ENABLE == FIPS)
{
printf("Checking results\n\n");
counter_monitor = 0;
if(I == 4094)// WR
{
if(memcmp(TEXT_NULL,OUTPUT_TEXT,16) == 0)
{
printf("WRITE READ: TEXT CR DISABLED PASSED.\n");
}else
{
printf("WRITE READ: TEXT CR DISABLED FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,INPUT_KEYR,16) == 0)
{
printf("WRITE READ: KEYR WHEN CR DISABLED PASSED.\n");
}else
{
printf("WRITE READ: KEYR WHEN CR DISABLED FAIL.\n");
}
 
if(memcmp(OUTPUT_IVR,INPUT_IVR,16) == 0)
{
printf("WRITE READ: IVR WHEN CR DISABLED PASSED.\n");
}else
{
printf("WRITE READ: IVR WHEN CR DISABLED FAIL.\n");
}
 
}else if(I == 1)//ECB ENCRYPTION
{
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_DERIVATED,16) == 0)
{
printf("ECB ENCRYPTION: TEXT CYPHER PASSED.\n");
}else
{
printf("ECB ENCRYPTION: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("ECB ENCRYPTION: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB ENCRYPTION: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("ECB ENCRYPTION: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB ENCRYPTION: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 6145 ) //ECB ENCRYPTION DMA
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_DERIVATED,16) == 0)
{
printf("ECB ENCRYPTION DMA: TEXT CYPHER WHEN CR ENABLE PASSED.\n");
 
}else
{
printf("ECB ENCRYPTION DMA: TEXT CYPHER WHEN CR ENABLE FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("ECB ENCRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB ENCRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("ECB ENCRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB ENCRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if (I == 513) // ECB ENCRYPTION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_DERIVATED,16) == 0)
{
printf("ECB ENCRYPTION CCFIE: TEXT CYPHER PASSED.\n");
 
}else
{
printf("ECB ENCRYPTION CCFIE: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("ECB ENCRYPTION CCFIE: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB ENCRYPTION CCFIE: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("ECB ENCRYPTION CCFIE: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB ENCRYPTION CCFIE: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 25)// ECB DERIVATION DECRYPTION
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0)
{
printf("ECB DERIVATION DECRYPTION: TEXT CYPHER PASSED.\n");
 
}else
{
printf("ECB DERIVATION DECRYPTION: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("ECB DERIVATION DECRYPTION: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DERIVATION DECRYPTION: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("ECB DERIVATION DECRYPTION: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DERIVATION DECRYPTION: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 6169)// ECB DERIVATION DECRYPTION DMA
{
 
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0)
{
printf("ECB DERIVATION DECRYPTION DMA: TEXT CYPHER PASSED.\n");
 
}else
{
printf("ECB DERIVATION DECRYPTION DMA: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("ECB DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("ECB DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 537)// ECB DERIVATION DECRYPTION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0)
{
printf("ECB DERIVATION DECRYPTION DMA: TEXT CYPHER PASSED.\n");
 
}else
{
printf("ECB DERIVATION DECRYPTION DMA: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("ECB DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("ECB DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 17)//ECB DECRYPTION
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0)
{
printf("ECB DECRYPTION: TEXT CYPHER PASSED.\n");
 
}else
{
printf("ECB DECRYPTION: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("ECB DECRYPTION: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DECRYPTION: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("ECB DECRYPTION: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DECRYPTION: IVR WHEN CR ENABLE FAIL.\n");
}
 
 
}else if(I == 6161)//ECB DECRYPTION DMA
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0)
{
printf("ECB DECRYPTION DMA: TEXT CYPHER PASSED.\n");
 
}else
{
printf("ECB DECRYPTION DMA: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("ECB DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("ECB DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n");
}
}else if(I == 529)//ECB DECRYPTION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0)
{
printf("ECB DECRYPTION CCFIE: TEXT CYPHER PASSED.\n");
 
}else
{
printf("ECB DECRYPTION CCFIE: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("ECB DECRYPTION CCFIE: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DECRYPTION CCFIE: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("ECB DECRYPTION CCFIE: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB DECRYPTION CCFIE: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 9) //ECB KEY GENARATION
{
 
 
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0)
{
printf("ECB KEY GEN : TEXT CYPHER PASSED.\n");
 
}else
{
printf("ECB KEY GEN : TEXT CYPHER FAIL.\n");
}
 
 
if(memcmp(OUTPUT_KEYR,KEY_FIPS_DERIVATED,16) == 0)
{
printf("ECB KEY GEN: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB KEY GEN: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,KEY_FIPS_NOT_DERIVATED,16) == 0)
{
printf("ECB KEY GEN: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB KEY GEN: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 6153)// ECB KEY GENARATION DMA
{
 
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0)
{
printf("ECB KEY GEN DMA: TEXT CYPHER PASSED.\n");
 
}else
{
printf("ECB KEY GEN DMA: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,KEY_FIPS_DERIVATED,16) == 0)
{
printf("ECB KEY GEN DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB KEY GEN DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
if(memcmp(OUTPUT_IVR,KEY_FIPS_NOT_DERIVATED,16) == 0)
{
printf("ECB KEY GEN DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB KEY GEN DMA: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 521)// ECB KEY GENARATION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0)
{
printf("ECB KEY GEN CCFIE: TEXT CYPHER PASSED.\n");
 
}else
{
printf("ECB KEY GEN CCFIE: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,KEY_FIPS_DERIVATED,16) == 0)
{
printf("ECB KEY GEN CCFIE: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB KEY GEN CCFIE: KEYR WHEN CR ENABLE FAIL.\n");
}
 
if(memcmp(OUTPUT_IVR,KEY_FIPS_NOT_DERIVATED,16) == 0)
{
printf("ECB KEY GEN CCFIE: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("ECB KEY GEN CCFIE: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 33) // ENCRYPTION CBC
{
 
if(memcmp(OUTPUT_TEXT,TEXT_CBC_FIPS_DERIVATED,16) == 0)
{
printf("CBC ENCRYPTION: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC ENCRYPTION: TEXT CYPHER FAIL.\n");
}
 
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CBC ENCRYPTION: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC ENCRYPTION: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CBC ENCRYPTION: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC ENCRYPTION: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 6177)//CBC ENCRYPTION DMA
{
 
if(memcmp(OUTPUT_TEXT,TEXT_CBC_FIPS_DERIVATED,16) == 0)
{
printf("CBC ENCRYPTION DMA: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC ENCRYPTION DMA: TEXT CYPHER FAIL.\n");
}
 
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CBC ENCRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC ENCRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CBC ENCRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC ENCRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 545)//CBC ENCRYPTION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_CBC_FIPS_DERIVATED,16) == 0)
{
printf("CBC ENCRYPTION CCFIE: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC ENCRYPTION CCFIE: TEXT CYPHER FAIL.\n");
}
 
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CBC ENCRYPTION CCFIE: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC ENCRYPTION CCFIE: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CBC ENCRYPTION CCFIE: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC ENCRYPTION CCFIE: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 49)// CBC DECRYPTION
{
 
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0)
{
printf("CBC DECRYPTION : TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC DECRYPTION : TEXT CYPHER FAIL.\n");
 
}
 
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CBC DECRYPTION : KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DECRYPTION : KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CBC DECRYPTION : IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DECRYPTION : IVR WHEN CR ENABLE FAIL.\n");
}
 
 
 
}else if(I == 3121)//CBC DECRYPTION DMA
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0)
{
printf("CBC DECRYPTION DMA : TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC DECRYPTION DMA : TEXT CYPHER FAIL.\n");
 
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CBC DECRYPTION DMA : KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DECRYPTION DMA : KEYR WHEN CR ENABLE FAIL.\n");
}
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CBC DECRYPTION DMA : IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DECRYPTION DMA : IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 561)// CBC DECRYPTION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0)
{
printf("CBC DECRYPTION : TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC DECRYPTION : TEXT CYPHER FAIL.\n");
 
}
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CBC DECRYPTION : KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DECRYPTION : KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CBC DECRYPTION : IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DECRYPTION : IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 41) //CBC KEY GENERATION
{
 
 
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0)
{
printf("CBC KEY GEN : TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC KEY GEN : TEXT CYPHER FAIL.\n");
 
}
 
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CBC_DERIVATED,16) == 0)
{
printf("CBC KEY GEN : KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC KEY GEN : KEYR WHEN CR ENABLE FAIL.\n");
}
 
if(memcmp(OUTPUT_IVR,IV_FIPS_CBC_NOT_DERIVATED,16) == 0)
{
printf("CBC KEY GEN : IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC KEY GEN : IVR WHEN CR ENABLE FAIL.\n");
}
 
 
 
}else if(I == 6185) //CBC KEY GENERATION DMA
{
 
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0)
{
printf("CBC KEY GEN DMA : TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC KEY GEN DMA : TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CBC_DERIVATED,16) == 0)
{
printf("CBC KEY GEN DMA : KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC KEY GEN DMA : KEYR WHEN CR ENABLE FAIL.\n");
}
 
if(memcmp(OUTPUT_IVR,IV_FIPS_CBC_NOT_DERIVATED,16) == 0)
{
printf("CBC KEY GEN DMA : IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC KEY GEN DMA : IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 297 ) //CBC KEY GENERATION CCFIE
{
 
 
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0)
{
printf("CBC KEY GEN CCFIE : TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC KEY GEN CCFIE : TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CBC_DERIVATED,16) == 0)
{
printf("CBC KEY GEN CCFIE : KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC KEY GEN CCFIE : KEYR WHEN CR ENABLE FAIL.\n");
}
 
if(memcmp(OUTPUT_IVR,IV_FIPS_CBC_NOT_DERIVATED,16) == 0)
{
printf("CBC KEY GEN CCFIE : IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC KEY GEN CCFIE : IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 57)// CBC DERIVATION DECRYPTION
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0)
{
printf("CBC DERIVATION DECRYPTION : TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC DERIVATION DECRYPTION : TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CBC DERIVATION DECRYPTION : KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DERIVATION DECRYPTION : KEYR WHEN CR ENABLE FAIL.\n");
}
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CBC DERIVATION DECRYPTION : IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DERIVATION DECRYPTION : IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 6201) // CBC DERIVATION DECRYPTION DMA
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0)
{
printf("CBC DERIVATION DECRYPTION DMA : TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC DERIVATION DECRYPTION DMA : TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CBC DERIVATION DECRYPTION DMA : KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DERIVATION DECRYPTION DMA : KEYR WHEN CR ENABLE FAIL.\n");
}
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CBC DERIVATION DECRYPTION DMA : IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DERIVATION DECRYPTION DMA : IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 569) // CBC DERIVATION DECRYPTION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0)
{
printf("CBC DERIVATION DECRYPTION CCFIE : TEXT CYPHER PASSED.\n");
 
}else
{
printf("CBC DERIVATION DECRYPTION CCFIE : TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CBC DERIVATION DECRYPTION CCFIE : KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DERIVATION DECRYPTION CCFIE : KEYR WHEN CR ENABLE FAIL.\n");
}
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CBC DERIVATION DECRYPTION CCFIE : IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CBC DERIVATION DECRYPTION CCFIE : IVR WHEN CR ENABLE FAIL.\n");
}
 
 
}else if(I == 65)// CTR ENCFRYPTION
{
 
 
if(memcmp(OUTPUT_TEXT,TEXT_CTR_FIPS_DERIVATED,16) == 0)
{
printf("CTR ENCRYPTION: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR ENCRYPTION: TEXT CYPHER FAIL.\n");
}
 
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CTR ENCRYPTION: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR ENCRYPTION: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CTR ENCRYPTION: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR ENCRYPTION: IVR WHEN CR ENABLE FAIL.\n");
}
 
 
 
}else if(I == 6209)// CTR ENCRYPTION DMA
{
 
 
if(memcmp(OUTPUT_TEXT,TEXT_CTR_FIPS_DERIVATED,16) == 0)
{
printf("CTR ENCRYPTION DMA: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR ENCRYPTION DMA: TEXT CYPHER FAIL.\n");
}
 
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CTR ENCRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR ENCRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CTR ENCRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR ENCRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n");
}
 
 
}else if(I == 577)// CTR ENCRYPTION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_CTR_FIPS_DERIVATED,16) == 0)
{
printf("CTR ENCRYPTION CCFIE: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR ENCRYPTION CCFIE: TEXT CYPHER FAIL.\n");
}
 
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CTR ENCRYPTION CCFIE: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR ENCRYPTION CCFIE: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CTR ENCRYPTION CCFIE: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR ENCRYPTION CCFIE: IVR WHEN CR ENABLE FAIL.\n");
}
 
 
}else if(I == 81) //CTR DECRYPTION
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0)
{
printf("CTR DECRYPTION : TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR DECRYPTION : TEXT CYPHER FAIL.\n");
}
 
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CTR DECRYPTION : KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DECRYPTION : KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CTR DECRYPTION : IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DECRYPTION : IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 6225) //CTR DECRYPTION DMA
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0)
{
printf("CTR DECRYPTION DMA: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR DECRYPTION DMA: TEXT CYPHER FAIL.\n");
}
 
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CTR DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CTR DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n");
}
 
 
}else if(I == 593) //CTR DECRYPTION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0)
{
printf("CTR DECRYPTION CCFIE: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR DECRYPTION CCFIE: TEXT CYPHER FAIL.\n");
}
 
 
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CTR DECRYPTION CCFIE: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DECRYPTION CCFIE: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CTR DECRYPTION CCFIE: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DECRYPTION CCFIE: IVR WHEN CR ENABLE FAIL.\n");
}
 
 
}else if(I == 89) //CTR DERIVATION DECRYPTION
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0)
{
printf("CTR DERIVATION DECRYPTION: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR DERIVATION DECRYPTION: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CTR DERIVATION DECRYPTION: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DERIVATION DECRYPTION: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CTR DERIVATION DECRYPTION: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DERIVATION DECRYPTION: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 6233) //CTR DERIVATION DECRYPTION DMA
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0)
{
printf("CTR DERIVATION DECRYPTION DMA: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR DERIVATION DECRYPTION DMA: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CTR DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CTR DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 601) //CTR DERIVATION DECRYPTION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0)
{
printf("CTR DERIVATION DECRYPTION DMA: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR DERIVATION DECRYPTION DMA: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0)
{
printf("CTR DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0)
{
printf("CTR DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 73)// CTR KEY GENERATION
{
 
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0)
{
printf("CTR KEY GEN: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR KEY GEN: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CTR_DERIVATED,16) == 0)
{
printf("CTR KEY GEN: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR KEY GEN: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,IV_FIPS_CTR_NOT_DERIVATED,16) == 0)
{
printf("CTR KEY GEN: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR KEY GEN: IVR WHEN CR ENABLE FAIL.\n");
}
 
 
}else if(I == 6217) // CTR KEY GENERATION DMA
{
 
 
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0)
{
printf("CTR KEY GEN DMA: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR KEY GEN DMA: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CTR_DERIVATED,16) == 0)
{
printf("CTR KEY GEN DMA: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR KEY GEN DMA: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,IV_FIPS_CTR_NOT_DERIVATED,16) == 0)
{
printf("CTR KEY GEN DMA: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR KEY GEN DMA: IVR WHEN CR ENABLE FAIL.\n");
}
 
}else if(I == 585) // CTR KEY GENERATION CCFIE
{
 
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0)
{
printf("CTR KEY GEN CCFIE: TEXT CYPHER PASSED.\n");
 
}else
{
printf("CTR KEY GEN CCFIE: TEXT CYPHER FAIL.\n");
}
 
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CTR_DERIVATED,16) == 0)
{
printf("CTR KEY GEN CCFIE: KEYR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR KEY GEN CCFIE: KEYR WHEN CR ENABLE FAIL.\n");
}
 
 
if(memcmp(OUTPUT_IVR,IV_FIPS_CTR_NOT_DERIVATED,16) == 0)
{
printf("CTR KEY GEN CCFIE: IVR WHEN CR ENABLE PASSED.\n");
}else
{
printf("CTR KEY GEN CCFIE: IVR WHEN CR ENABLE FAIL.\n");
}
 
}
 
 
 
 
}//counter == 12
 
}
 
 
 
 
}
 
 
 
}
 
return 0;
/aes_bfm_wr.h
120,13 → 120,13
{
STATE = WRITE;
counter = 0;
counter = 1;
 
v_wr.value.integer = vector_address[0];
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
//v_wr.value.integer = vector_address[0];
//vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
v_wr.value.integer = 4094;
vpi_put_value(PWDATA, &v_wr, NULL, vpiNoDelay);
//v_wr.value.integer = 4094;
//vpi_put_value(PWDATA, &v_wr, NULL, vpiNoDelay);
 
v_wr.value.integer = 1;
vpi_put_value(PWRITE, &v_wr, NULL, vpiNoDelay);
141,29 → 141,39
 
case WRITE:
 
if(counter == 0)
{
 
counter_write++;
counter++;
 
v_wr.value.integer = 1;
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay);
v_wr.value.integer = 1;
vpi_put_value(PSEL, &v_wr, NULL, vpiNoDelay);
 
if(counter == 0)
{
counter_write++;
counter++;
 
}else if(counter == 1)
{
v_wr.value.integer = 1;
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay);
 
v_wr.value.integer = vector_address[counter_write];
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
v_wr.value.integer = 0;
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay);
}else if(counter == 1)
{
 
t_wr.type = vpiScaledRealTime;
t_wr.real = 0;
v_wr.format=vpiIntVal;
 
 
t_wr.type = vpiScaledRealTime;
t_wr.real = 0;
v_wr.format=vpiIntVal;
 
v_wr.value.integer = 0;
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay);
if(counter_write < 9)
{
 
v_wr.value.integer = vector_address[counter_write];
vpi_put_value(PADDR, &v_wr, &t_wr, vpiTransportDelay);
 
if(FIPS_ENABLE == FIPS)
{
 
193,7 → 203,7
}
 
if(vector_address[counter_write] == ADDR_AES_KEYR1 || vector_address[counter_write] == ADDR_AES_IVR1)
{
{
 
c = c | KEY_FIPS_NOT_DERIVATED[8];
c = c << 8;
223,28 → 233,113
}else if(FIPS_ENABLE == RANDOM_DATA)
{
v_wr.value.integer = data_in(rd);
}
}
vpi_put_value(PWDATA, &v_wr, &t_wr, vpiTransportDelay);
a = 0;
b = 0;
c = 0;
d = 0;
 
v_wr.value.integer = 1;
vpi_put_value(PSEL, &v_wr, NULL, vpiNoDelay);
}else if(counter_write == 9)//ENABLE CR
{
 
v_wr.value.integer = vector_address[counter_write];
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
v_wr.value.integer = 4094;
vpi_put_value(PWDATA, &v_wr, &t_wr, vpiTransportDelay);
}else if(counter_write > 9 && counter_write < 14) //WRITE DINR
{
 
v_wr.value.integer = ADDR_AES_DINR;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
 
if(FIPS_ENABLE == FIPS)
{
 
if(counter_write == 10)
{
a = a | TEXT_FIPS_NOT_DERIVATED[0];
a = a << 8;
a = a | TEXT_FIPS_NOT_DERIVATED[1];
a = a << 8;
a = a | TEXT_FIPS_NOT_DERIVATED[2];
a = a << 8;
a = a | TEXT_FIPS_NOT_DERIVATED[3];
v_wr.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_FIPS_NOT_DERIVATED[4];
b = b << 8;
b = b | TEXT_FIPS_NOT_DERIVATED[5];
b = b << 8;
b = b | TEXT_FIPS_NOT_DERIVATED[6];
b = b << 8;
b = b | TEXT_FIPS_NOT_DERIVATED[7];
v_wr.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_FIPS_NOT_DERIVATED[8];
c = c << 8;
c = c | TEXT_FIPS_NOT_DERIVATED[9];
c = c << 8;
c = c | TEXT_FIPS_NOT_DERIVATED[10];
c = c << 8;
c = c | TEXT_FIPS_NOT_DERIVATED[11];
v_wr.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_FIPS_NOT_DERIVATED[12];
d = d << 8;
d = d | TEXT_FIPS_NOT_DERIVATED[13];
d = d << 8;
d = d | TEXT_FIPS_NOT_DERIVATED[14];
d = d << 8;
d = d | TEXT_FIPS_NOT_DERIVATED[15];
v_wr.value.integer = d;
 
}
 
 
}else if(FIPS_ENABLE == RANDOM_DATA)
{
v_wr.value.integer = data_in(rd);
}
vpi_put_value(PWDATA, &v_wr, &t_wr, vpiTransportDelay);
a = 0;
b = 0;
c = 0;
d = 0;
 
 
}
counter=0;
}
 
if(counter_write == 12)
}
 
 
 
if(counter_write == 14)
{
STATE =WAIT;
counter_write = 0;
 
STATE = WAIT;
}
 
 
 
break;
 
case WAIT:
254,8 → 349,6
 
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
vpi_put_value(PWDATA, &v_wr, &t_wr, vpiTransportDelay);
 
if(counter_wait == 5)
263,13 → 356,24
 
STATE = READ_RESULTS;
counter_wait=0;
v_wr.value.integer = vector_address[0];
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
counter_read = 0;
//v_wr.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
t_wr.type = vpiScaledRealTime;
t_wr.real = 0;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_wr, &t_wr, vpiTransportDelay);
 
//v_wr.value.integer = 1;
//vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay);
 
 
}else
{
 
v_wr.value.integer = 0;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
counter_wait++;
 
}
290,36 → 394,119
 
}else if(counter == 1)
{
counter++;
 
 
v_wr.value.integer = 0;
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay);
 
v_wr.value.integer = vector_address[counter_read];
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
//v_wr.value.integer = 0;
//vpi_put_value(PWDATA, &v_wr, NULL, vpiNoDelay);
 
v_wr.value.integer = 0;
vpi_put_value(PWDATA, &v_wr, NULL, vpiNoDelay);
//v_wr.value.integer = 1;
//vpi_put_value(PSEL, &v_wr, NULL, vpiNoDelay);
 
v_wr.value.integer = 1;
vpi_put_value(PSEL, &v_wr, NULL, vpiNoDelay);
 
if(counter_read < 4)
{
 
v_wr.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
}
 
 
if(counter_read == 4)
{
 
v_wr.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
}
 
 
if(counter_read == 5)
{
 
v_wr.value.integer = ADDR_AES_KEYR2;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
}
 
 
 
if(counter_read == 6)
{
 
v_wr.value.integer = ADDR_AES_KEYR1;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
}
 
 
if(counter_read == 7)
{
 
v_wr.value.integer = ADDR_AES_KEYR0;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
}
 
 
if(counter_read == 8)
{
 
v_wr.value.integer = ADDR_AES_IVR3;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
}
 
 
if(counter_read == 9)
{
 
v_wr.value.integer = ADDR_AES_IVR2;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
}
 
 
 
if(counter_read == 10)
{
 
v_wr.value.integer = ADDR_AES_IVR1;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
}
 
 
if(counter_read == 11)
{
 
v_wr.value.integer = ADDR_AES_IVR0;
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay);
 
}
 
 
 
counter=0;
 
}
if(counter_read == 12)
{
STATE = IDLE;
counter_read = 0;
PACKETS_GENERATED = PACKETS_GENERATED + 1;
 
if(counter_read == 12)
{
STATE = IDLE;
counter_read = 0;
PACKETS_GENERATED = PACKETS_GENERATED + 1;
//v_wr.value.integer = 0;
//vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay);
 
v_wr.value.integer = 0;
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay);
}
 
}
 
 
 
 
break;
}
 
/bfm_cbc/aes_bfm_decryption_ccfie_cbc.h
173,13 → 173,13
 
if(vector_address[counter_write] == ADDR_AES_KEYR3)
{
a = a | KEY_FIPS_CBC_NOT_DERIVATED[0];
a = a | KEY_FIPS_CBC_DERIVATED[0];
a = a << 8;
a = a | KEY_FIPS_CBC_NOT_DERIVATED[1];
a = a | KEY_FIPS_CBC_DERIVATED[1];
a = a << 8;
a = a | KEY_FIPS_CBC_NOT_DERIVATED[2];
a = a | KEY_FIPS_CBC_DERIVATED[2];
a = a << 8;
a = a | KEY_FIPS_CBC_NOT_DERIVATED[3];
a = a | KEY_FIPS_CBC_DERIVATED[3];
v_ecb.value.integer = a;
}
 
186,13 → 186,13
 
if(vector_address[counter_write] == ADDR_AES_KEYR2)
{
b = b | KEY_FIPS_CBC_NOT_DERIVATED[4];
b = b | KEY_FIPS_CBC_DERIVATED[4];
b = b << 8;
b = b | KEY_FIPS_CBC_NOT_DERIVATED[5];
b = b | KEY_FIPS_CBC_DERIVATED[5];
b = b << 8;
b = b | KEY_FIPS_CBC_NOT_DERIVATED[6];
b = b | KEY_FIPS_CBC_DERIVATED[6];
b = b << 8;
b = b | KEY_FIPS_CBC_NOT_DERIVATED[7];
b = b | KEY_FIPS_CBC_DERIVATED[7];
v_ecb.value.integer = b;
}
 
199,13 → 199,13
if(vector_address[counter_write] == ADDR_AES_KEYR1)
{
 
c = c | KEY_FIPS_CBC_NOT_DERIVATED[8];
c = c | KEY_FIPS_CBC_DERIVATED[8];
c = c << 8;
c = c | KEY_FIPS_CBC_NOT_DERIVATED[9];
c = c | KEY_FIPS_CBC_DERIVATED[9];
c = c << 8;
c = c | KEY_FIPS_CBC_NOT_DERIVATED[10];
c = c | KEY_FIPS_CBC_DERIVATED[10];
c = c << 8;
c = c | KEY_FIPS_CBC_NOT_DERIVATED[11];
c = c | KEY_FIPS_CBC_DERIVATED[11];
v_ecb.value.integer = c;
 
}
212,13 → 212,13
 
if(vector_address[counter_write] == ADDR_AES_KEYR0)
{
d = d | KEY_FIPS_CBC_NOT_DERIVATED[12];
d = d | KEY_FIPS_CBC_DERIVATED[12];
d = d << 8;
d = d | KEY_FIPS_CBC_NOT_DERIVATED[13];
d = d | KEY_FIPS_CBC_DERIVATED[13];
d = d << 8;
d = d | KEY_FIPS_CBC_NOT_DERIVATED[14];
d = d | KEY_FIPS_CBC_DERIVATED[14];
d = d << 8;
d = d | KEY_FIPS_CBC_NOT_DERIVATED[15];
d = d | KEY_FIPS_CBC_DERIVATED[15];
v_ecb.value.integer = d;
}
 
408,7 → 408,11
 
v_ecb.value.integer = 0;
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
/*
if(counter == 0)
{
 
425,19 → 429,19
 
counter=0;
}
 
*/
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
/bfm_cbc/aes_bfm_encryption_cbc.h
409,7 → 409,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
418,19 → 432,7
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_cbc/aes_bfm_encryption_dma_cbc.h
417,6 → 417,22
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
425,19 → 441,6
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_cbc/aes_bfm_key_generation_ccfie_cbc.h
296,7 → 296,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
358,11 → 358,11
{
STATE = READ_KEY_GEN;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_KEYR3;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
387,79 → 387,68
}else if(counter == 1)
{
 
if(counter_read == 0)
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
if(counter_read < 4)
{
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 4)
{
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 1)
if(counter_read == 5)
{
v_ecb.value.integer = ADDR_AES_KEYR2;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 2)
if(counter_read == 6)
{
v_ecb.value.integer = ADDR_AES_KEYR1;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 3)
if(counter_read == 7)
{
v_ecb.value.integer = ADDR_AES_KEYR0;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 4)
if(counter_read == 8)
{
 
v_ecb.value.integer = ADDR_AES_IVR3;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 5)
if(counter_read == 9)
{
 
v_ecb.value.integer = ADDR_AES_IVR2;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
 
if(counter_read == 6)
if(counter_read == 10)
{
 
v_ecb.value.integer = ADDR_AES_IVR1;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 7)
if(counter_read == 11)
{
 
v_ecb.value.integer = ADDR_AES_IVR0;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
counter = 0;
}
 
if(counter_read == 8)
if(counter_read == 12)
{
STATE = RESET_SR;
counter_write = 0;
/bfm_cbc/aes_bfm_derivation_decryption_ccfie_cbc.h
403,6 → 403,10
v_ecb.value.integer = 0;
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
/*
if(counter == 0)
{
 
419,19 → 423,19
 
counter=0;
}
 
*/
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
counter=1;
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
/bfm_cbc/aes_bfm_decryption_cbc.h
173,13 → 173,13
 
if(vector_address[counter_write] == ADDR_AES_KEYR3)
{
a = a | KEY_FIPS_CBC_NOT_DERIVATED[0];
a = a | KEY_FIPS_CBC_DERIVATED[0];
a = a << 8;
a = a | KEY_FIPS_CBC_NOT_DERIVATED[1];
a = a | KEY_FIPS_CBC_DERIVATED[1];
a = a << 8;
a = a | KEY_FIPS_CBC_NOT_DERIVATED[2];
a = a | KEY_FIPS_CBC_DERIVATED[2];
a = a << 8;
a = a | KEY_FIPS_CBC_NOT_DERIVATED[3];
a = a | KEY_FIPS_CBC_DERIVATED[3];
v_ecb.value.integer = a;
}
 
186,13 → 186,13
 
if(vector_address[counter_write] == ADDR_AES_KEYR2)
{
b = b | KEY_FIPS_CBC_NOT_DERIVATED[4];
b = b | KEY_FIPS_CBC_DERIVATED[4];
b = b << 8;
b = b | KEY_FIPS_CBC_NOT_DERIVATED[5];
b = b | KEY_FIPS_CBC_DERIVATED[5];
b = b << 8;
b = b | KEY_FIPS_CBC_NOT_DERIVATED[6];
b = b | KEY_FIPS_CBC_DERIVATED[6];
b = b << 8;
b = b | KEY_FIPS_CBC_NOT_DERIVATED[7];
b = b | KEY_FIPS_CBC_DERIVATED[7];
v_ecb.value.integer = b;
}
 
199,13 → 199,13
if(vector_address[counter_write] == ADDR_AES_KEYR1)
{
 
c = c | KEY_FIPS_CBC_NOT_DERIVATED[8];
c = c | KEY_FIPS_CBC_DERIVATED[8];
c = c << 8;
c = c | KEY_FIPS_CBC_NOT_DERIVATED[9];
c = c | KEY_FIPS_CBC_DERIVATED[9];
c = c << 8;
c = c | KEY_FIPS_CBC_NOT_DERIVATED[10];
c = c | KEY_FIPS_CBC_DERIVATED[10];
c = c << 8;
c = c | KEY_FIPS_CBC_NOT_DERIVATED[11];
c = c | KEY_FIPS_CBC_DERIVATED[11];
v_ecb.value.integer = c;
 
}
212,13 → 212,13
 
if(vector_address[counter_write] == ADDR_AES_KEYR0)
{
d = d | KEY_FIPS_CBC_NOT_DERIVATED[12];
d = d | KEY_FIPS_CBC_DERIVATED[12];
d = d << 8;
d = d | KEY_FIPS_CBC_NOT_DERIVATED[13];
d = d | KEY_FIPS_CBC_DERIVATED[13];
d = d << 8;
d = d | KEY_FIPS_CBC_NOT_DERIVATED[14];
d = d | KEY_FIPS_CBC_DERIVATED[14];
d = d << 8;
d = d | KEY_FIPS_CBC_NOT_DERIVATED[15];
d = d | KEY_FIPS_CBC_DERIVATED[15];
v_ecb.value.integer = d;
}
 
295,7 → 295,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
411,7 → 411,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
420,21 → 434,8
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
 
 
/bfm_cbc/aes_bfm_decryption_dma_cbc.h
172,111 → 172,110
{
 
if(vector_address[counter_write] == ADDR_AES_KEYR3)
{
a = a | KEY_FIPS_CBC_NOT_DERIVATED[0];
a = a << 8;
a = a | KEY_FIPS_CBC_NOT_DERIVATED[1];
a = a << 8;
a = a | KEY_FIPS_CBC_NOT_DERIVATED[2];
a = a << 8;
a = a | KEY_FIPS_CBC_NOT_DERIVATED[3];
v_ecb.value.integer = a;
}
{
a = a | KEY_FIPS_CBC_DERIVATED[0];
a = a << 8;
a = a | KEY_FIPS_CBC_DERIVATED[1];
a = a << 8;
a = a | KEY_FIPS_CBC_DERIVATED[2];
a = a << 8;
a = a | KEY_FIPS_CBC_DERIVATED[3];
v_ecb.value.integer = a;
}
 
 
if(vector_address[counter_write] == ADDR_AES_KEYR2)
{
b = b | KEY_FIPS_CBC_NOT_DERIVATED[4];
b = b << 8;
b = b | KEY_FIPS_CBC_NOT_DERIVATED[5];
b = b << 8;
b = b | KEY_FIPS_CBC_NOT_DERIVATED[6];
b = b << 8;
b = b | KEY_FIPS_CBC_NOT_DERIVATED[7];
v_ecb.value.integer = b;
}
if(vector_address[counter_write] == ADDR_AES_KEYR2)
{
b = b | KEY_FIPS_CBC_DERIVATED[4];
b = b << 8;
b = b | KEY_FIPS_CBC_DERIVATED[5];
b = b << 8;
b = b | KEY_FIPS_CBC_DERIVATED[6];
b = b << 8;
b = b | KEY_FIPS_CBC_DERIVATED[7];
v_ecb.value.integer = b;
}
 
if(vector_address[counter_write] == ADDR_AES_KEYR1)
{
if(vector_address[counter_write] == ADDR_AES_KEYR1)
{
 
c = c | KEY_FIPS_CBC_NOT_DERIVATED[8];
c = c << 8;
c = c | KEY_FIPS_CBC_NOT_DERIVATED[9];
c = c << 8;
c = c | KEY_FIPS_CBC_NOT_DERIVATED[10];
c = c << 8;
c = c | KEY_FIPS_CBC_NOT_DERIVATED[11];
v_ecb.value.integer = c;
c = c | KEY_FIPS_CBC_DERIVATED[8];
c = c << 8;
c = c | KEY_FIPS_CBC_DERIVATED[9];
c = c << 8;
c = c | KEY_FIPS_CBC_DERIVATED[10];
c = c << 8;
c = c | KEY_FIPS_CBC_DERIVATED[11];
v_ecb.value.integer = c;
 
}
}
 
if(vector_address[counter_write] == ADDR_AES_KEYR0)
{
d = d | KEY_FIPS_CBC_NOT_DERIVATED[12];
d = d << 8;
d = d | KEY_FIPS_CBC_NOT_DERIVATED[13];
d = d << 8;
d = d | KEY_FIPS_CBC_NOT_DERIVATED[14];
d = d << 8;
d = d | KEY_FIPS_CBC_NOT_DERIVATED[15];
v_ecb.value.integer = d;
}
if(vector_address[counter_write] == ADDR_AES_KEYR0)
{
d = d | KEY_FIPS_CBC_DERIVATED[12];
d = d << 8;
d = d | KEY_FIPS_CBC_DERIVATED[13];
d = d << 8;
d = d | KEY_FIPS_CBC_DERIVATED[14];
d = d << 8;
d = d | KEY_FIPS_CBC_DERIVATED[15];
v_ecb.value.integer = d;
}
 
 
if(vector_address[counter_write] == ADDR_AES_IVR3)
{
a = a | IV_FIPS_CBC_NOT_DERIVATED[0];
a = a << 8;
a = a | IV_FIPS_CBC_NOT_DERIVATED[1];
a = a << 8;
a = a | IV_FIPS_CBC_NOT_DERIVATED[2];
a = a << 8;
a = a | IV_FIPS_CBC_NOT_DERIVATED[3];
v_ecb.value.integer = a;
}
if(vector_address[counter_write] == ADDR_AES_IVR3)
{
a = a | IV_FIPS_CBC_NOT_DERIVATED[0];
a = a << 8;
a = a | IV_FIPS_CBC_NOT_DERIVATED[1];
a = a << 8;
a = a | IV_FIPS_CBC_NOT_DERIVATED[2];
a = a << 8;
a = a | IV_FIPS_CBC_NOT_DERIVATED[3];
v_ecb.value.integer = a;
}
 
 
if(vector_address[counter_write] == ADDR_AES_IVR2)
{
b = b | IV_FIPS_CBC_NOT_DERIVATED[4];
b = b << 8;
b = b | IV_FIPS_CBC_NOT_DERIVATED[5];
b = b << 8;
b = b | IV_FIPS_CBC_NOT_DERIVATED[6];
b = b << 8;
b = b | IV_FIPS_CBC_NOT_DERIVATED[7];
v_ecb.value.integer = b;
}
if(vector_address[counter_write] == ADDR_AES_IVR2)
{
b = b | IV_FIPS_CBC_NOT_DERIVATED[4];
b = b << 8;
b = b | IV_FIPS_CBC_NOT_DERIVATED[5];
b = b << 8;
b = b | IV_FIPS_CBC_NOT_DERIVATED[6];
b = b << 8;
b = b | IV_FIPS_CBC_NOT_DERIVATED[7];
v_ecb.value.integer = b;
}
 
if(vector_address[counter_write] == ADDR_AES_IVR1)
{
if(vector_address[counter_write] == ADDR_AES_IVR1)
{
 
c = c | IV_FIPS_CBC_NOT_DERIVATED[8];
c = c << 8;
c = c | IV_FIPS_CBC_NOT_DERIVATED[9];
c = c << 8;
c = c | IV_FIPS_CBC_NOT_DERIVATED[10];
c = c << 8;
c = c | IV_FIPS_CBC_NOT_DERIVATED[11];
v_ecb.value.integer = c;
c = c | IV_FIPS_CBC_NOT_DERIVATED[8];
c = c << 8;
c = c | IV_FIPS_CBC_NOT_DERIVATED[9];
c = c << 8;
c = c | IV_FIPS_CBC_NOT_DERIVATED[10];
c = c << 8;
c = c | IV_FIPS_CBC_NOT_DERIVATED[11];
v_ecb.value.integer = c;
}
 
}
if(vector_address[counter_write] == ADDR_AES_IVR0)
{
d = d | IV_FIPS_CBC_NOT_DERIVATED[12];
d = d << 8;
d = d | IV_FIPS_CBC_NOT_DERIVATED[13];
d = d << 8;
d = d | IV_FIPS_CBC_NOT_DERIVATED[14];
d = d << 8;
d = d | IV_FIPS_CBC_NOT_DERIVATED[15];
v_ecb.value.integer = d;
}
 
if(vector_address[counter_write] == ADDR_AES_IVR0)
{
d = d | IV_FIPS_CBC_NOT_DERIVATED[12];
d = d << 8;
d = d | IV_FIPS_CBC_NOT_DERIVATED[13];
d = d << 8;
d = d | IV_FIPS_CBC_NOT_DERIVATED[14];
d = d << 8;
d = d | IV_FIPS_CBC_NOT_DERIVATED[15];
v_ecb.value.integer = d;
}
 
 
 
 
}else if(FIPS_ENABLE == RANDOM_DATA)
{
v_ecb.value.integer = data_in(rd);
418,7 → 417,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
427,19 → 440,7
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_cbc/aes_bfm_encryption_ccfie_cbc.h
399,6 → 399,10
v_ecb.value.integer = 0;
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
/*
if(counter == 0)
{
 
415,19 → 419,20
 
counter=0;
}
*/
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
/bfm_cbc/aes_bfm_key_generation_cbc.h
341,7 → 341,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_KEYR3;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
349,20 → 363,6
 
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_cbc/aes_bfm_derivation_decryption_cbc.h
295,13 → 295,13
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = 25;//data_in(rd);
v_ecb.value.integer = 57;//data_in(rd);
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}
412,7 → 412,22
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
421,21 → 436,8
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
 
 
/bfm_cbc/aes_bfm_key_generation_dma_cbc.h
343,6 → 343,21
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_KEYR3;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
351,19 → 366,6
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
387,79 → 389,68
}else if(counter == 1)
{
 
if(counter_read == 0)
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
if(counter_read < 4)
{
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 4)
{
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 1)
if(counter_read == 5)
{
v_ecb.value.integer = ADDR_AES_KEYR2;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 2)
if(counter_read == 6)
{
v_ecb.value.integer = ADDR_AES_KEYR1;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 3)
if(counter_read == 7)
{
v_ecb.value.integer = ADDR_AES_KEYR0;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 4)
if(counter_read == 8)
{
 
v_ecb.value.integer = ADDR_AES_IVR3;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 5)
if(counter_read == 9)
{
 
v_ecb.value.integer = ADDR_AES_IVR2;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
 
if(counter_read == 6)
if(counter_read == 10)
{
 
v_ecb.value.integer = ADDR_AES_IVR1;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 7)
if(counter_read == 11)
{
 
v_ecb.value.integer = ADDR_AES_IVR0;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
counter = 0;
}
 
if(counter_read == 8)
if(counter_read == 12)
{
STATE = RESET_SR;
counter_write = 0;
/bfm_cbc/aes_bfm_derivation_decryption_dma_cbc.h
295,7 → 295,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
412,6 → 412,21
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
419,20 → 434,6
 
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/aes_bfm_generate.h
102,9 → 102,10
 
// type_bfm = ECB_ENCRYPTION_CCFIE;
// type_bfm = ECB_DECRYPTION_CCFIE;
// type_bfm = ECB_KEY_GEN_CCFIE;
// type_bfm = ECB_DERIVATION_DECRYPTION_CCFIE;
// type_bfm = ECB_KEY_GEN_CCFIE;
 
 
// type_bfm = CBC_ENCRYPTION;
// type_bfm = CBC_DECRYPTION;
// type_bfm = CBC_DERIVATION_DECRYPTION;
/bfm_ctr/aes_bfm_derivation_decryption_dma_ctr.h
295,7 → 295,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
411,7 → 411,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
420,19 → 434,7
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_ctr/aes_bfm_decryption_ccfie_ctr.h
295,7 → 295,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
405,6 → 405,10
v_ecb.value.integer = 0;
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
/*
if(counter == 0)
{
 
421,19 → 425,20
 
counter=0;
}
*/
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
/bfm_ctr/aes_bfm_encryption_ctr.h
410,6 → 410,22
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
418,19 → 434,6
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_ctr/aes_bfm_encryption_dma_ctr.h
416,7 → 416,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
424,20 → 438,6
 
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_ctr/aes_bfm_key_generation_ccfie_ctr.h
296,7 → 296,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
334,6 → 334,10
v_ecb.value.integer = 0;
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
/*
if(counter == 0)
{
 
350,19 → 354,20
 
counter=0;
}
*/
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
counter=1;
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
387,6 → 392,10
}else if(counter == 1)
{
 
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
if(counter_read < 4)
{
v_ecb.value.integer = ADDR_AES_DOUTR;
442,12 → 451,6
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
counter = 0;
}
 
457,7 → 460,6
counter_write = 0;
counter_read = 0;
}
 
break;
 
case RESET_SR:
/bfm_ctr/aes_bfm_derivation_decryption_ccfie_ctr.h
295,7 → 295,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
421,17 → 421,18
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
counter=1;
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
/bfm_ctr/aes_bfm_decryption_ctr.h
295,7 → 295,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
411,7 → 411,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
420,19 → 434,7
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_ctr/aes_bfm_decryption_dma_ctr.h
296,7 → 296,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
418,7 → 418,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
427,19 → 441,7
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_ctr/aes_bfm_encryption_ccfie_ctr.h
397,6 → 397,10
v_ecb.value.integer = 0;
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
/*
if(counter == 0)
{
 
413,19 → 417,20
 
counter=0;
}
 
*/
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
counter=1;
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
/bfm_ctr/aes_bfm_key_generation_ctr.h
342,6 → 342,21
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
350,19 → 365,7
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_ctr/aes_bfm_derivation_decryption_ctr.h
295,7 → 295,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
412,7 → 412,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 10;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
421,19 → 435,7
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_ctr/aes_bfm_key_generation_dma_ctr.h
296,7 → 296,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
342,7 → 342,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
351,19 → 365,7
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
387,6 → 389,10
}else if(counter == 1)
{
 
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
if(counter_read < 4)
{
v_ecb.value.integer = ADDR_AES_DOUTR;
442,9 → 448,6
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
counter = 0;
}
 
/bfm_ecb/aes_bfm_derivation_decryption_ecb.h
361,6 → 361,18
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//printf("CYCLES TAKEN:%d\n", cycle_counter);
cycle_counter=0;
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
369,21 → 381,9
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
//cycle_counter++;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
 
 
/bfm_ecb/aes_bfm_key_generation_dma_ecb.h
291,6 → 291,15
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
298,20 → 307,6
 
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
335,79 → 330,68
}else if(counter == 1)
{
 
if(counter_read == 0)
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
if(counter_read < 4)
{
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 4)
{
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 1)
if(counter_read == 5)
{
v_ecb.value.integer = ADDR_AES_KEYR2;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 2)
if(counter_read == 6)
{
v_ecb.value.integer = ADDR_AES_KEYR1;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 3)
if(counter_read == 7)
{
v_ecb.value.integer = ADDR_AES_KEYR0;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 4)
if(counter_read == 8)
{
 
v_ecb.value.integer = ADDR_AES_IVR3;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 5)
if(counter_read == 9)
{
 
v_ecb.value.integer = ADDR_AES_IVR2;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
 
if(counter_read == 6)
if(counter_read == 10)
{
 
v_ecb.value.integer = ADDR_AES_IVR1;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 7)
if(counter_read == 11)
{
 
v_ecb.value.integer = ADDR_AES_IVR0;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
counter = 0;
}
 
if(counter_read == 8)
if(counter_read == 12)
{
STATE = RESET_SR;
counter_write = 0;
/bfm_ecb/aes_bfm_derivation_decryption_dma_ecb.h
361,6 → 361,16
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
369,19 → 379,6
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_ecb/aes_bfm_decryption_ccfie_ecb.h
340,11 → 340,6
counter_write = 0;
 
STATE =WAIT_SR;
 
 
 
 
 
}
 
break;
357,6 → 352,10
v_ecb.value.integer = 0;
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
/*
if(counter == 0)
{
 
373,19 → 372,14
 
counter=0;
}
 
*/
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
counter=1;
}
 
/bfm_ecb/aes_bfm_encryption_ecb.h
248,7 → 248,7
}else if(counter_write == 9)//ENABLE CR
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 1;
357,6 → 357,24
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//printf("CYCLES TAKEN:%d\n", cycle_counter);
cycle_counter=0;
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
365,21 → 383,9
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
//cycle_counter++;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
 
 
/bfm_ecb/aes_bfm_encryption_dma_ecb.h
365,7 → 365,21
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
//t_ecb.type = vpiScaledRealTime;
//t_ecb.real = 0;
//v_ecb.format=vpiIntVal;
//v_ecb.value.integer = ADDR_AES_DOUTR;
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
372,20 → 386,7
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
/bfm_ecb/aes_bfm_key_generation_ccfie_ecb.h
282,6 → 282,10
v_ecb.value.integer = 0;
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
/*
if(counter == 0)
{
 
299,18 → 303,16
counter=0;
}
 
*/
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
counter=1;
}
 
335,79 → 337,68
}else if(counter == 1)
{
 
if(counter_read == 0)
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
if(counter_read < 4)
{
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 4)
{
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 1)
if(counter_read == 5)
{
v_ecb.value.integer = ADDR_AES_KEYR2;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 2)
if(counter_read == 6)
{
v_ecb.value.integer = ADDR_AES_KEYR1;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 3)
if(counter_read == 7)
{
v_ecb.value.integer = ADDR_AES_KEYR0;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 4)
if(counter_read == 8)
{
 
v_ecb.value.integer = ADDR_AES_IVR3;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 5)
if(counter_read == 9)
{
 
v_ecb.value.integer = ADDR_AES_IVR2;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
 
if(counter_read == 6)
if(counter_read == 10)
{
 
v_ecb.value.integer = ADDR_AES_IVR1;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 7)
if(counter_read == 11)
{
 
v_ecb.value.integer = ADDR_AES_IVR0;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
counter = 0;
}
 
if(counter_read == 8)
if(counter_read == 12)
{
STATE = RESET_SR;
counter_write = 0;
/bfm_ecb/aes_bfm_derivation_decryption_ccfie_ecb.h
352,6 → 352,10
v_ecb.value.integer = 0;
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
/*
if(counter == 0)
{
 
368,19 → 372,16
 
counter=0;
}
*/
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
counter=1;
}
 
/bfm_ecb/aes_bfm_decryption_ecb.h
243,7 → 243,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
366,6 → 366,16
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
counter=1;
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
374,19 → 384,7
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_ecb/aes_bfm_decryption_dma_ecb.h
140,17 → 140,40
break;
case WRITE:
 
 
if(counter == 0)
{
 
 
counter_write++;
counter++;
 
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
if(counter_write == 10 || counter_write == 11 || counter_write == 12 || counter_write == 13 )
{
 
v_ecb.value.integer = 0;
vpi_get_value(dma_req_wr,&v_ecb);
 
 
if(v_ecb.value.integer == 1)
{
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
counter_write++;
counter++;
}
 
}
 
if(counter_write < 10)
{
counter_write++;
counter++;
 
v_ecb.value.integer = 1;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
}
 
}else if(counter == 1)
{
 
341,10 → 364,6
 
STATE =WAIT_SR;
 
 
 
 
 
}
 
break;
366,6 → 385,16
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
counter=1;
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
373,20 → 402,6
 
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 0;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
/bfm_ecb/aes_bfm_encryption_ccfie_ecb.h
248,7 → 248,7
}else if(counter_write == 9)//ENABLE CR
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 513;
342,6 → 342,7
 
case WAIT_SR:
 
 
v_ecb.value.integer = ADDR_AES_SR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
348,9 → 349,12
v_ecb.value.integer = 0;
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
/*
if(counter == 0)
{
 
counter++;
 
v_ecb.value.integer = 1;
363,20 → 367,18
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
counter=0;
 
}
 
*/
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
vpi_get_value(int_ccf,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_DOUTR;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
counter=1;
 
}
 
/bfm_ecb/aes_bfm_key_generation_ecb.h
243,7 → 243,7
if(counter_write == 9)
{
 
v_ecb.value.integer = vector_address[counter_write];
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
t_ecb.type = vpiScaledRealTime;
267,8 → 267,6
counter_read = 0;
 
STATE =WAIT_SR;
 
 
}
 
break;
290,6 → 288,18
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
counter=1;
}
 
 
}else if(counter == 1)
{
v_ecb.value.integer = 0;
298,19 → 308,6
counter=0;
}
 
v_ecb.value.integer = 0;
vpi_get_value(PRDATA,&v_ecb);
 
if(v_ecb.value.integer == 1)
{
STATE = READ_KEY_GEN;
 
t_ecb.type = vpiScaledRealTime;
t_ecb.real = 10;
v_ecb.format=vpiIntVal;
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay);
}
 
break;
334,79 → 331,68
}else if(counter == 1)
{
 
if(counter_read == 0)
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
if(counter_read < 4)
{
v_ecb.value.integer = ADDR_AES_DOUTR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 4)
{
v_ecb.value.integer = ADDR_AES_KEYR3;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 1)
if(counter_read == 5)
{
v_ecb.value.integer = ADDR_AES_KEYR2;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 2)
if(counter_read == 6)
{
v_ecb.value.integer = ADDR_AES_KEYR1;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 3)
if(counter_read == 7)
{
v_ecb.value.integer = ADDR_AES_KEYR0;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
if(counter_read == 4)
if(counter_read == 8)
{
 
v_ecb.value.integer = ADDR_AES_IVR3;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 5)
if(counter_read == 9)
{
 
v_ecb.value.integer = ADDR_AES_IVR2;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
 
if(counter_read == 6)
if(counter_read == 10)
{
 
v_ecb.value.integer = ADDR_AES_IVR1;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
 
if(counter_read == 7)
if(counter_read == 11)
{
 
v_ecb.value.integer = ADDR_AES_IVR0;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
}
 
v_ecb.value.integer = 0;
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay);
 
counter = 0;
}
 
if(counter_read == 8)
if(counter_read == 12)
{
STATE = RESET_SR;
counter_write = 0;

powered by: WebSVN 2.1.0

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