URL
https://opencores.org/ocsvn/apbtoaes128/apbtoaes128/trunk
Subversion Repositories apbtoaes128
[/] [apbtoaes128/] [trunk/] [pli/] [aes_init.h] - Rev 11
Go to most recent revision | Compare with Previous | Blame | View Log
////////////////////////////////////////////////////////////////// //// //// //// AES CORE BLOCK //// //// //// //// This file is part of the APB to AES128 project //// //// http://www.opencores.org/cores/apbtoaes128/ //// //// //// //// Description //// //// Implementation of APB IP core according to //// //// aes128_spec IP core specification document. //// //// //// //// To Do: Things are right here but always all block can suffer changes //// //// //// //// //// //// Author(s): - Felipe Fernandes Da Costa, fefe2560@gmail.com //// ///////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2009 Authors and OPENCORES.ORG //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// the original copyright notice and the associated disclaimer. //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// /////////////////////////////////////////////////////////////////// static int init_calltf(char*user_data) { 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); vpiHandle PREADY = vpi_handle_by_name("AES_GLADIC_tb.PREADY", NULL); vpiHandle PSLVERR = vpi_handle_by_name("AES_GLADIC_tb.PSLVERR", NULL); vpiHandle int_ccf = vpi_handle_by_name("AES_GLADIC_tb.int_ccf", NULL); 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); //type_bfm = AES_WR_ONLY; STATE = IDLE; counter_write = 0; counter_read = 0; PACKETS_GENERATED = 0; counter = 0; reset_counter = 0; flag = 0; a = 0; b = 0; 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; vector_address[2]= ADDR_AES_DINR; vector_address[3]= ADDR_AES_DOUTR; vector_address[4]= ADDR_AES_KEYR3; vector_address[5]= ADDR_AES_KEYR2; vector_address[6]= ADDR_AES_KEYR1; vector_address[7]= ADDR_AES_KEYR0; vector_address[8]= ADDR_AES_IVR3; vector_address[9]= ADDR_AES_IVR2; vector_address[10]=ADDR_AES_IVR1; vector_address[11]=ADDR_AES_IVR0; */ vector_address[0]= ADDR_AES_CR; 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; vector_address[8]= ADDR_AES_IVR0; vector_address[9]= ADDR_AES_CR; /* vector_address[0]= ADDR_AES_CR; vector_address[1]= ADDR_AES_SR; vector_address[2]= ADDR_AES_DINR; vector_address[3]= ADDR_AES_DOUTR; vector_address[4]= ADDR_AES_KEYR3; vector_address[5]= ADDR_AES_KEYR2; vector_address[6]= ADDR_AES_KEYR1; vector_address[7]= ADDR_AES_KEYR0; vector_address[8]= ADDR_AES_IVR3; vector_address[9]= ADDR_AES_IVR2; vector_address[10]=ADDR_AES_IVR1; vector_address[11]=ADDR_AES_IVR0; */ v_initial.format=vpiIntVal; v_initial.value.integer = 0; vpi_put_value(PENABLE, &v_initial, NULL, vpiNoDelay); vpi_put_value(PSEL , &v_initial, NULL, vpiNoDelay); vpi_put_value(PADDR, &v_initial, NULL, vpiNoDelay); vpi_put_value(i, &v_initial, NULL, vpiNoDelay); vpi_put_value(PWRITE, &v_initial, NULL, vpiNoDelay); vpi_put_value(PWDATA, &v_initial, NULL, vpiNoDelay); return 0; }
Go to most recent revision | Compare with Previous | Blame | View Log