When tri-state ports are used in EDK (e.g. GPIO), and IOB will be automatically instantiated. This is because the FPGA has no internal bi-directional paths.
To avoid automatic insertation of the IOBs, GPIO should not be bi-directional.
Do not connect the GPIO_IO port, and instead, only connect the _I or _O ports
BEGIN axi_gpio
PARAMETER INSTANCE = leds
PARAMETER HW_VER = 1.01.b
PARAMETER C_INTERRUPT_PRESENT = 1
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_BASEADDR = 0x41200000
PARAMETER C_HIGHADDR = 0x4120ffff
BUS_INTERFACE S_AXI = axi_interconnect_1
PORT S_AXI_ACLK = processing_system7_0_FCLK_CLK0
PORT GPIO_IO_O = leds_GPIO_IO_O
END
Wednesday, 12 September 2012
Monday, 10 September 2012
Xilinx SDK 14.2 xvtc.h:622:1: error: expected identifier or '(' before '}' token
Xilinx SDK 14.2, when trying to use Xilinx xvtc.h the Video Timing COntroller
"Compiling uartps"
"Compiling video timing controller"
In file included from xvtc.c:73:0:
xvtc.h:622:1: error: expected identifier or '(' before '}' token
In file included from xvtc_g.c:16:0:
xvtc.h:622:1: error: expected identifier or '(' before '}' token
In file included from xvtc_intr.c:70:0:
xvtc.h:622:1: error: expected identifier or '(' before '}' token
In file included from xvtc_sinit.c:72:0:
xvtc.h:622:1: error: expected identifier or '(' before '}' token
make[1]: *** [libs] Error 1
"Compiling cpu_cortexa9"
ERROR:EDK:369 - make failed for target "libs"
ERROR:EDK:3418 - Error(s) while running make.
make: *** [ps7_cortexa9_0/lib/libxil.a] Error 2
make: Target `all' not remade because of errors.
Line 662 in xvtc.h is here:
#define XVtc_IntrSetLockPolarity(InstancePtr, LockPolarity) \
{ \
// THIS FUNCTION IS NOT NEEDED.
// THERE IS NO LOCK POLARITY.
// INCLUDED TO ALLOW OLDER SW TO COMPILE.
}
The comment lines to not have a trailing \, so the macro stops.
Solution should be to add the trailing '\'
This needs to be done in the "master" file, rather than the file in the project directory, which is auto-generated and deleted on a project clean.
C:\Xilinx\14.2\ISE_DS\EDK\sw\XilinxProcessorIPLib\drivers\vtc_v2_00_a\src
#define XVtc_IntrSetLockPolarity(InstancePtr, LockPolarity) \
{ \
// THIS FUNCTION IS NOT NEEDED. \
// THERE IS NO LOCK POLARITY.\
// INCLUDED TO ALLOW OLDER SW TO COMPILE.\
}
Friday, 10 August 2012
New? school systemc system-c sensitive << clk.pos() clock.pos()
Ubuntu 10.04 (CAD VP) 11.01
switches(sc_module_name name)
:sc_module(name)
{
SC_THREAD(run);
sensitive << clk.pos();
}
switches.h: In constructor 'switches::switches(sc_core::sc_module_name)':
switches.h:56: error: 'class sc_core::sc_clock' has no member named 'pos'
switches(sc_module_name name)
:sc_module(name)
{
SC_THREAD(run);
sensitive_pos << clk;
}
Thursday, 9 August 2012
undefined reference to `outbyte'
undefined reference to `outbyte'
his error occurs when the C-code contains "printf-" statements and a peripheral has not been defined as "std_out" and "std_in". To work around this problem, use one of the following solutions:
Remove the "printf-" statement.
or
Define peripheral as Standard-out and Standard-in.
This can be done by using the Software Platform Settings dialog box.
Wednesday, 8 August 2012
Compile SystemC in modelsim
Version
6.2 a or later supports System C
Download
GCC from ModelSim ftp site (registration is required)
For
6.2g modelsim-gcc-3.3.1-mingw32.zip
Extract
and copy the gcc folder to the ModelSim install directory
To
compile, do not use the “standard “ ModelSim compile buttons.
From
the command line: sccom –work systemc *.cpp
Sccom
–work systemc -link
Error: suffix or operands invalid for `push' Error: suffix or operands invalid for `pop'
When trying to compile a 32 bit app on 64 bit system
/tmp/ccYmzX7h.s: Assembler messages:
/tmp/ccYmzX7h.s:20: Error: suffix or operands invalid for
`push'
/tmp/ccYmzX7h.s:28: Error: suffix or operands invalid for
`pop'
This is the Assembler, not the compiler misinterpreting the
32bit instructions
Use gcc option –Wa,--32 to tell assembler to use 32bit
Friday, 20 April 2012
gcc specs
The gcc compiler is a driver program. It invokes a
sequence of other programs to compile, assemble and
link. GCC interprets its command-line parameters and uses these to
deduce which programs it should invoke, and which command-line options
it ought to place on their command lines. This behavior is controlled
by spec strings. In most cases there is one spec string for each
program that GCC can invoke, but a few programs have multiple spec
strings to control their behavior.
The spec strings built into GCC can
be overridden by using the
-specs= command-line switch to specify
a spec file. Spec files are plaintext files that are used to construct spec strings. They consist of a sequence of directives separated by blank lines. The type of directive is determined by the first non-whitespace character on the line and it can be one of the following:
%command e.g. %rename link old_link
*[spec_name]: create, override or delete the named spec string
e.g. Modify link*link:
-T redboot.ld%s -Ttext 0x20000 %(old_link)
[suffix]:when this suffix is encountered, the defined spec will be usede.g..cgcc -input %i
.cpp g++ -input %iGCC has the following spec strings built into it. Spec files can override these strings or create their own. Note that individual targets can also add their own spec strings to this list.
asm Options to pass to the assembler
asm_final Options to pass to the assembler post-processor
cpp Options to pass to the C preprocessor
cc1 Options to pass to the C compiler
cc1plus Options to pass to the C++ compiler
endfile Object files to include at the end of the link
link Options to pass to the linker
lib Libraries to include on the command line to the linker
libgcc Decides which GCC support library to pass to the linker
linker Sets the name of the linker
predefines Defines to be passed to the C preprocessor
signed_char Defines to pass to CPP to say whether char is signed
by default
startfile Object files to include at the start of the link
- REF: http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Spec-Files.html
Subscribe to:
Posts (Atom)