Tuesday, June 23, 2009

Synopsys DWSLL still won't compile even with gcc-3.3.6 [FIXED]

[see above post, must have had a broken systemc install left lying about]

Having built a version of gcc-3.3.6 that compiles correctly and passes the tests I now get a new (and unpleasant) build error:


/usr/local/gcc/3.3.6/bin/gcc  -o .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/vptest .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/CoreManager.ctor.o .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/IntCtrl.ctor.o .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/MuxRoutingView.ctor.o .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/Tester.ctor.o .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/UART.ctor.o .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/powerDashboard.ctor.o .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/registerView.ctor.o .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/vptest.o .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/vptest_sc_main.o .vptest//linux/dwsll/gcc-3.3.6/osci-2.2.0/VT100.ctor.o -L/opt/fastcad/software/synopsys/linux/dw_sys-l-lib_2008.12/linux/dwsll/gcc-3.3.6/osci-2.2.0/lib -llt-O -g -fPIC -Wl,-Bsymbolic   /opt/fastcad/software/synopsys/linux/dw_sys-l-lib_2008.12/linux/dwsll/gcc-3.3.6/osci-2.2.0/lib/snps_tlm.a -L/opt/fastcad/software/synopsys/linux/dw_sys-l-lib_2008.12/linux/dwsll/gcc-3.3.6/osci-2.2.0/lib -L/opt/fastcad/software/systemc/systemc-2.2.0/lib-linux -L/opt/fastcad/software/synopsys/linux/dw_sys-l-lib_2008.12/linux/dwsll/gcc-3.3.6/osci-2.2.0/../runtime/Shared/Debuggers -lpthread -lsystemc -lqt-mt -lvdidll -ldl -rdynamic /opt/fastcad/software/synopsys/linux/dw_sys-l-lib_2008.12/linux/dwsll/gcc-3.3.6/osci-2.2.0/lib/libsimdll.a 2>&1 | c++filt
/opt/fastcad/software/synopsys/linux/dw_sys-l-lib_2008.12/linux/dwsll/gcc-3.3.6/osci-2.2.0/lib/snps_tlm.a(simlog.o)(.text+0xc88): In function `Simlog::Abort(IUnit*, char const*, ...)':
: undefined reference to `typeinfo for unsigned'
/opt/fastcad/software/synopsys/linux/dw_sys-l-lib_2008.12/linux/dwsll/gcc-3.3.6/osci-2.2.0/lib/snps_tlm.a(snps_tlm_imemory_tlm2.o)(.gnu.linkonce.r._ZTIPN8snps_tlm20vre_config_extensionE+0x0): undefined reference to `vtable for __cxxabiv1::__pointer_type_info'
/opt/fastcad/software/synopsys/linux/dw_sys-l-lib_2008.12/linux/dwsll/gcc-3.3.6/osci-2.2.0/lib/snps_tlm.a(snps_tlm_manager.o)(.text+0x3aa5): In function `snps_tlm::manager::SimMain()':
: undefined reference to `typeinfo for int'
/opt/fastcad/software/synopsys/linux/dw_sys-l-lib_2008.12/linux/dwsll/gcc-3.3.6/osci-2.2.0/lib/snps_tlm.a(snps_tlm_manager.o)(.gcc_except_table+0x48c): undefined reference to `typeinfo for int'
/opt/fastcad/software/synopsys/linux/dw_sys-l-lib_2008.12/linux/dwsll/gcc-3.3.6/osci-2.2.0/lib/snps_tlm.a(snps_tlm_manager.o)(.gnu.linkonce.r._ZTIP15ManagerListener+0x0): undefined reference to `vtable for __cxxabiv1::__pointer_type_info'
/opt/fastcad/software/systemc/systemc-2.2.0/lib-linux/libsystemc.a(sc_main_main.o)(.gcc_except_table+0x38): undefined reference to `typeinfo for char const*'
collect2: ld returned 1 exit status

Synopsys Innovator and Designware System Level Library II

More things to do with Synopsys Designware System Level Library.

Just so you know:

When they say use gcc-3.3.6, they mean gcc-3.3.6. RHEL3 shipped with gcc-3.2.X and RHEL4 with gcc-3.4.X. Both build models without errors but when executed segfault.

I am building a copy of gcc-3.3.6 now following this excellent guide by Tellurian.

More to follow.

Friday, June 19, 2009

MSc Dissertation Titles for 2009

1. An OpenSPARC with Hypertransport
Add a memory mapped Hypertransport port to an OpenSPARC processor.

2. SystemC to Reality
Take the Synopsys innovator SystemC based example of an MP3 player and
convert as much as possible to real hardware to assess the accuracy of
the Virtual Platform Model using the EVE accelerator.

3. Accelerating Geometric Mathematics
Taking the departments Geometric Maths co processor design and attaching
it to an IBM PowerPC 405 processor (either memory mapped or via the
coprocessor port) as efficiently as possible.

4. Hardening Soft Cores, the advantages and problems
Take the LEON3 opensource Sparc v8 processor and the IBM PowerPC 405
processor softcores (one is VHDL, one Verilog) and study them for speed
and size optimisations using blocks inside an FPGA like embedded
ram/multipliers. The LEON3 is already optimised and will serve as an
example.

5. Bi-width Processing for Sensor Applications
Research and design a processor with 2 data word widths - 8bits for low
power mode and an additional 32 bits when turned into high power mode.

Research the LEAP architecture first and try to improve it.

Sunday, April 26, 2009

Synopsys Innovator and Designware System Level Library

THESE PROGRAMS ARE DEFINITELY 32 BIT

SystemC is perfectly happy on x86_64 however the pre-compiled libraries shipped inside the Designware System Library are not. Ah-ha, you say, "I shall compile them in 32 bit mode". However there is a problem: they depend on qt-devel.i386 which can't be installed on the same system as qt-devel.x86_64. So there.

Another word of warning for the clever:

THE BUILD SCRIPTS WILL WORK, BUT GENERATE EXECUTABLES THAT SEGFAULT.

Make/g++ don't quit on the qt linking error. Several hours of condensed hacking wasted as I didn't spot it. Another reason to use virtual machines to avoid these kinds of problems when using CAD tools. [see above for more details on the segfault issues]

DATE2009

What a great conference. I attended the workshop on Embedded Multicore computing as well as a similar tutorial.

Lots of very good people here with good ideas. Got the chance to get some real IC architecting off the ground and acquired a lot of good material for the SystemC based architecture course.

Wednesday, April 8, 2009

Installing Synopsys Synthesis and IC Compiler in the same directory

These are also known as syn and icc and include the all important executables and libraries to run dc_shell and icc_shell. These are part of the Galaxy platform. Synthesis provides tools for turning HDL into PDK specific netlists and IC Compiler for place and routing.

You can install Synthesis and IC Compiler for different operating systems into the same directory
  • As they are part of the same system (Galaxy) they can be installed into the same directory to save space and simplify installations scripts.
  • Be sure to get the same release and service pack from EST into the same directory.
  • Retrieve the common files and all the OS/Architecture specific parts you want (for example linux and amd64)
  • Run the installer on the directory and you will be able to select syn and icc and subsequently the architecture specific versions.
Hope this helps keep things simple.

Saturday, February 7, 2009

The Buffalo Linkstation Live (v2) - Unbricking

I just managed to get my Buffalo Linkstation (running Debian based Freelink) to brick in a new way: it would pull the kernel and initrd by tftp over and over again or it would appear to have loaded them but simply stop.

After trawling the forums I have salvaged the situation by mounting the HDD on a linux system and erasing and rebuilding the default /dev/sda1 partition.

I have also recorded how to do it in the relevant wiki article like a good boy:

http://buffalo.nas-central.org/wiki/Revive_your_arm9_box_from_scratch#Troubleshooting

Linkstations and similar Linux based NAS devices make fantastic home servers - mine draws ~13W under load providing daap, DHCP, NTP, apache, NFS, samba and AFS. Beats the hell out of an always on home Intel server.

Laird Tpcm 7250 is as good as Honeywell PTM7950 as thermal paste / interface for PC

[This is not very scientific, however it is notable. At 7.5W/m-K vs the installed SYY-157 at 15.7 W/m-K it performed better in real world lo...