AXI4 Lite Slave
#include <stdio.h> #include <string.h> #include <ap_int.h> void multi_apuint(ap_uint<8> in0, ap_uint<8> in1, ap_uint<16> *out){ #pragma HLS INTERFACE s_axilite port=out bundle=AXI4LS #pragma HLS INTERFACE s_axilite port=in1 bundle=AXI4LS #pragma HLS INTERFACE s_axilite port=in0 bundle=AXI4LS #pragma HLS INTERFACE s_axilite port=return bundle=AXI4LS #pragma HLS PIPELINE *out = in0*in1; }
#include <stdio.h> #include "xil_printf.h" #include "xmulti_apuint.h" #include "xparameters.h" int main() { XMulti_apuint XMulti_ap; XMulti_apuint_Config *XMulti_apPtr; int val; XMulti_apPtr = XMulti_apuint_LookupConfig(0); if(!XMulti_apPtr){ fprintf(stderr, "XMulti config failed.\r\n"); return XST_FAILURE; } int Xlap_status = XMulti_apuint_CfgInitialize(&XMulti_ap, XMulti_apPtr); if(Xlap_status!=XST_SUCCESS){ fprintf(stderr, "XMulti config failed.\r\n"); return XST_FAILURE; } printf("\r\start\r\n",&val); while(1){ printf("\r\nin0="); scanf("%d",&val); printf("%d",val); if(val==999){ break; } XMulti_apuint_Set_in0_V(&XMulti_ap,val); printf("\r\nin1="); scanf("%d",&val); printf("%d",val); XMulti_apuint_Set_in1_V(&XMulti_ap,val); while(!XMulti_apuint_IsIdle(&XMulti_ap)); XMulti_apuint_Start(&XMulti_ap); while(!XMulti_apuint_IsDone(&XMulti_ap)); printf("\r\nout=%d\r\n",(int)XMulti_apuint_Get_out_V(&XMulti_ap)); } return 0; }