Download System Generator for DSP User Guide
Transcript
R
Designing with Embedded Processors and Microcontrollers
The full code of MyProject.c is shown below:
#include "xparameters.h"
#include "stdio.h"
#include "xutil.h"
// header file of System Generator Pcore
#include "sg_plbiface.h"
int main (void) {
uint32_t result, overflow;
char c;
xc_iface_t *iface;
xc_from_reg_t *fromreg_result, *fromreg_overflow;
xc_to_reg_t *toreg_a, *toreg_b, *toreg_c, *toreg_instr;
// initialize the software driver
xc_create(&iface, &SG_PLBIFACE_ConfigTable[0]);
print("Performing p=2*4\r\n");
xc_get_shmem(iface, "result", (void **) &fromreg_result);
xc_get_shmem(iface, "overflow", (void **) &fromreg_overflow);
xc_get_shmem(iface, "a", (void **) &toreg_a);
xc_get_shmem(iface, "b", (void **) &toreg_b);
xc_get_shmem(iface, "c", (void **) &toreg_c);
xc_get_shmem(iface, "instr", (void **) &toreg_instr);
// -- Set the a port register to 2
xc_write(iface, toreg_a->din, 2);
// -- Set the b port register to 4
xc_write(iface, toreg_b->din, 4);
// -- Set the instr register to 2: p=a*b
xc_write(iface, toreg_instr->din, 2);
print("Press a key to read back result\n\r");
c = inbyte();
// -- Read back the result register
xc_read(iface, fromreg_result->dout, &result);
// -- Read back the overflow register
xc_read(iface, fromreg_overflow->dout, &overflow);
xil_printf("Read back: result=%d, overflow=%d\n\r",
result, overflow);
print("Performing p=c+(a:b)\r\n");
// -- Set the a port register to 262140
xc_write(iface, toreg_a->din, 262140);
// -- Set the b port register to 262140
xc_write(iface, toreg_b->din, 262140);
// -- Set the cport register to 1
xc_write(iface, toreg_c->din, 1);
// -- Set the instr register to 3: p=c+(a:b)
xc_write(iface, toreg_instr->din, 3);
print("Press a key to read back result\n\r");
c = inbyte();
// -- Read back the result register
xc_read(iface, fromreg_result->dout, &result);
// -- Read back the overflow register
xc_read(iface, fromreg_overflow->dout, &overflow);
xil_printf("Read back: result=%d, overflow=%d\n\r",
result, overflow);
return 0;
}
Copy and paste the above code into MyProject.c.
System Generator for DSP
Release 10.1.3 September, 2008
www.xilinx.com
163