Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /******************************************************************************
- *
- * Copyright (C) 2009 - 2014 Xilinx, Inc. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * Use of the Software is limited solely to applications:
- * (a) running on a Xilinx device, or
- * (b) that interact with a Xilinx device through a bus or interconnect.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Except as contained in this notice, the name of the Xilinx shall not be used
- * in advertising or otherwise to promote the sale, use or other dealings in
- * this Software without prior written authorization from Xilinx.
- *
- ******************************************************************************/
- /*
- * helloworld.c: simple test application
- *
- * This application configures UART 16550 to baud rate 9600.
- * PS7 UART (Zynq) is not initialized by this application, since
- * bootrom/bsp configures it to baud rate 115200
- *
- * ------------------------------------------------
- * | UART TYPE BAUD RATE |
- * ------------------------------------------------
- * uartns550 9600
- * uartlite Configurable only in HW design
- * ps7_uart 115200 (configured by bootrom/bsp)
- */
- #include <stdio.h>
- #include <string.h>
- #include "platform.h"
- #include "xil_printf.h"
- char digits[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
- int sbox1[] = {3,8,15,1,10,6,5,11,14,13,4,2,7,0,9,12};
- int sbox2[] = {15,12,2,7,9,0,5,10,1,11,14,8,6,13,3,4};
- int sbox3[] = {8, 6, 7, 9, 3, 12, 10, 15, 13, 1, 14, 4, 0, 11, 5, 2};
- int sbox4[] = {0, 15, 11, 8, 12, 9, 6, 3, 13, 1, 2, 4, 10, 7, 5, 14};
- int sbox5[] = {1, 15, 8, 3, 12, 0, 11, 6, 2, 5, 4, 10, 9, 14, 7, 13};
- int sbox6[] = {15, 5, 2, 11, 4, 10, 9, 12, 0, 3, 14, 8, 13, 6, 7, 1};
- int sbox7[] = {7, 2, 12, 5, 8, 4, 6, 11, 14, 9, 1, 15, 13, 3, 10, 0};
- int sbox8[] = {1, 13, 15, 0, 14, 8, 2, 11, 7, 4, 12, 10, 9, 3, 5, 6};
- char command[174];//Can be any size
- int i,count=0, result;
- int j=0,k;
- int matric_no;
- int id;
- void lab2(k)
- {
- switch(k)
- {
- case 1:
- for(i=0;i < 174; i++)
- {
- command[i] = getchar();
- while(j<16)
- {
- if(digits[j]==command[i])
- {
- //printf("%c",digits[j]);
- break;
- }
- else
- {
- j++;
- }
- count=count+1;
- }
- printf("%d", sbox1[count]);
- j=0;
- count=0;
- }
- break;
- case 2:
- for(i=0;i < 174; i++)
- {
- command[i] = getchar();
- while(j<16)
- {
- if(digits[j]==command[i])
- {
- //printf("%c",digits[j]);
- break;
- }
- else
- {
- j++;
- }
- count=count+1;
- }
- printf("%d", sbox2[count]);
- j=0;
- count=0;
- }
- break;
- case 3:
- for(i=0;i < 174; i++)
- {
- command[i] = getchar();
- while(j<16)
- {
- if(digits[j]==command[i])
- {
- //printf("%c",digits[j]);
- break;
- }
- else
- {
- j++;
- }
- count=count+1;
- }
- printf("%d", sbox1[count]);
- j=0;
- count=0;
- }
- break;
- case 4:
- for(i=0;i < 174; i++)
- {
- command[i] = getchar();
- while(j<16)
- {
- if(digits[j]==command[i])
- {
- //printf("%c",digits[j]);
- break;
- }
- else
- {
- j++;
- }
- count=count+1;
- }
- printf("%d", sbox1[count]);
- j=0;
- count=0;
- }
- break;
- case 5:
- for(i=0;i < 174; i++)
- {
- command[i] = getchar();
- while(j<16)
- {
- if(digits[j]==command[i])
- {
- //printf("%c",digits[j]);
- break;
- }
- else
- {
- j++;
- }
- count=count+1;
- }
- printf("%d", sbox1[count]);
- j=0;
- count=0;
- }
- break;
- case 6:
- for(i=0;i < 174; i++)
- {
- command[i] = getchar();
- while(j<16)
- {
- if(digits[j]==command[i])
- {
- //printf("%c",digits[j]);
- break;
- }
- else
- {
- j++;
- }
- count=count+1;
- }
- printf("%d", sbox1[count]);
- j=0;
- count=0;
- }
- break;
- case 7:
- for(i=0;i < 174; i++)
- {
- command[i] = getchar();
- while(j<16)
- {
- if(digits[j]==command[i])
- {
- //printf("%c",digits[j]);
- break;
- }
- else
- {
- j++;
- }
- count=count+1;
- }
- printf("%d", sbox1[count]);
- j=0;
- count=0;
- }
- break;
- case 8:
- for(i=0;i < 174; i++)
- {
- command[i] = getchar();
- while(j<16)
- {
- if(digits[j]==command[i])
- {
- //printf("%c",digits[j]);
- break;
- }
- else
- {
- j++;
- }
- count=count+1;
- }
- printf("%d", sbox1[count]);
- j=0;
- count=0;
- }
- break;
- }
- default:
- printf("invalid\n");
- printf("\n");
- }
- int main()
- {
- init_platform();
- matric_no = getchar();
- id=matric_no%8;
- lab2(id);
- cleanup_platform();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement