AmeyaVS

Members
  • Content count

    13
  • Joined

  • Last visited

About AmeyaVS

  • Rank
    Member
  • Birthday 02/28/1989

Profile Information

  • Gender
    Not Telling
  • Location
    Bangalore

Contact Methods

  • Skype
    ameya.v.singh

Recent Profile Visitors

86 profile views
  1. Hi, You can look into the previous discussion on the same. http://forums.accellera.org/topic/1603-simple-sockets-and-tlm-sockets/ You can also refer the Doulos TLM tutorial here about the tlm_utils. Regards, Ameya Vikram Singh
  2. Hi, Yes the TLM phase has to be in specific order. You can look into the examples folder for the "$SYSTEMC_HOME" installation folder, specifically at_1_phase, at_2_phase and at_4_phase sub-folder. $SYSTEMC_HOME/examples/tlm/ You can also look into a good documentation available in the "$SYSTEMC_HOME" install folder under doc folder, specifically slides: 36, 37, 38 about 1-Phase, 2-Phase, and 4-Phase transactions: $SYSTEMC_HOME/docs/tlm/release/TLM_2_0_presentation.pdf Hope this helps. Regards, Ameya Vikram Singh
  3. Hello, In SystemC you can use SC_THREAD's to model delays by using wait statements but you will incur performance penalty. Instead you can use event's and event queues to model delays using in SystemC as mentioned here: http://workspace.accellera.org/Discussion_Forums/helpforum/archive/msg/msg?list_name=help_forum&monthdir=200803&msg=msg00061.html You can replace the SC_THREAD example given in the above mentioned link with SC_METHOD removing the infinite while loop. Here's the modified example listed from the above mentioned link: template<typename T> class delay_transport : public sc_module { public: sc_in<T> in; sc_out<T> out; SC_HAS_PROCESS(delay_transport); delay_transport(sc_module_name name_, sc_time tdelay_) : sc_module(name_), tdelay(tdelay_), in("in"), out("out") { SC_METHOD(mi); sensitive << in.default_event(); SC_METHOD(mo); sensitive << eq; } sc_time tdelay; void mi() { val = in.read(); vq.push(val); eq.notify(tdelay); } void mo() { val = vq.front(); out.write(val); vq.pop(); } sc_event_queue eq; std::queue<T> vq; T val; }; Regards, Ameya Vikram Singh
  4. Can you please share some details about your build environment such as compiler version you are using, etc.? Also kindly share the compilation option used the command that you have shared is showing only the use of object files for input and final executable "a.x" to be compiled and linked. Currently I am able to build the using this command on my system: g++ -g -Wall -std=c++11 -I $SYSTEMC_HOME/include -L $SYSTEMC_HOME/lib-linux64 -o test.run test.cpp -lsystemc where g++ -v: g++ 5.4.0 Regards, Ameya Vikram Singh
  5. Currently I am working on G++ 5.4.0 and have tried setting the -std=c++98 and -std=c++03 and have observed no observable changes in the build library. But changing from one system to other resulted in SystemC library failing to build in one of the environments. I would recommend building the SystemC library without the "-std=c++03" compiler flag as you might get into some issues later when mixing other C++ libraries together while building System models. The make check is currently failing due to usage of shell script variables starting with numbers in the SystemC library which has been fixed in newer releases of the bash shell. Regards, Ameya Vikram Singh
  6. Are you using the same compiler with which you have built the SystemC library? If yes, then probably the compiler is currently non-functional or you'll need some dependency packages which is currently missing from your system. Can you do a search for the file on your system for the mentioned shared library: liblto_plugin.so, probably under the path: /usr/lib/gcc/ or something similar? Currently on my system I am able to build the example code without any issues. Regards, Ameya Vikram Singh
  7. Hello, Sorry for misunderstanding the problem. But your problem seems to be too similar to the topic discussed here. Specifically the comments: Regards, Ameya Vikram Singh
  8. It seems you are using the sc_vector<>.init method incorrectly. As per the source from sc_vector.h you are trying to pass _size as a function pointer (Creator function). Can you make modifications from: explicit my_chnl(sc_module_name nm, unsigned _size = 4) : sc_channel(nm), fifos("FIFO") to: explicit my_chnl(sc_module_name nm, unsigned _size = 4) : sc_channel(nm), fifos("FIFO", _size) Also sc_fifo is template class what type are you specializing it to? If you are creating to a vector of sc_fifo of int datatype your declaration should be: sc_vector<sc_fifo<unsigned int> > fifos; //vectors of fifos Regards, Ameya Vikram Singh
  9. It would be better that you go ahead with your assignments. Try some simple examples see if they are building and the simulation is progressing. In case you hit any other issue you can post the details here. Regards, Ameya Vikram Singh
  10. It seems the problem lies in the test.sh script which prematurely stops execution due to setting up of Shell Script variable names starting with numbers. @donpalavi can you try to make following changes to the following file in the systemc-2.3.1a source code: File: config/test.sh.in Change the following line (line: 49) from: TESTNAME=`dirname "${TEST}" | sed "s:[^A-Za-z0-9_\@]:_:g" ` to: TESTNAME=`dirname "${TEST}" | sed "s:[^A-Za-z_\@]:_:g" ` This should temporarily resolves the SystemC unit test cases failures. As for the C++'03 you can try setting the CXX environment variable like this: export CXX="g++ -std=c++03" Regards, Ameya Vikram
  11. Strangely enough I am also facing make check issues under Cygwin (64-Bit) but earlier I didn't face any issues, will need to narrow down recent package updates. With g++ -v: Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/5.4.0/lto-wrapper.exe Target: x86_64-pc-cygwin Configured with: /cygdrive/i/szsz/tmpp/gcc/gcc-5.4.0-1.x86_64/src/gcc-5.4.0/configure --srcdir=/cygdrive/i/szsz/tmpp/gcc/gcc-5.4.0-1.x86_64/src/gcc-5.4.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libcilkrts --enable-libgomp --enable-libitm --enable-libquadmath --enable-libquadmath-support --enable-libssp --enable-libada --enable-libgcj-sublibs --disable-java-awt --disable-symvers --with-ecj-jar=/usr/share/java/ecj.jar --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible Thread model: posix gcc version 5.4.0 (GCC) @donpalavi you can download the systemc-regressions test suite from: http://accellera.org/downloads/standards/systemc or directly download from: http://accellera.org/images/downloads/standards/systemc/systemc-regressions-2.3.1a.tar.gz Then follow these steps to run the systemc-regressions test suite: export SYSTEMC_HOME="<path_to_your_SystemC_installation>" tar xf systemc-regressions-2.3.1a.tar.gz cd systemc-regressions-2.3.1a/ cd scripts/ # Run the verify.pl script with -arch configuration: # This command will run the entire test suite with SystemC and TLM test cases. # e.g.: ./verify.pl -arch linux64 systemc tlm # linux64: For 64-bit linux systems. # linux: For 32-bit linux systems. # cygwin: For 32-bit Cygwin Environment. # cygwin64: For 64-Bit Cygwin Environment. ./verify.pl -arch linux64 systemc tlm Wait for the test cases to build and verify the results(It will take some time as there are close to 858 test cases.) Currently in my environment 15 Test Cases under SystemC are failing and under TLM none of the test cases fail. Regards, Ameya Vikram Singh
  12. Hello isbelen, Kindly look into the post I made earlier of enabling "--enable-pthreads" while configuring the SystemC library. Currently the Cygwin 64-bit SystemC library build is non-functional with Quick Threads Library for user space threading. Also, kindly refer the post discussing the same from Mr. @Philipp A Hartmann and Mr. @ralph.goergen. Regards, Ameya Vikram Singh
  13. Hello Everyone, I am able to build the SystemC library on cygwin(64-bit) with gcc 5.4.0. I am currently using this command to configure the library for building: ../configure --prefix=$HOME/apps/sysc231a --enable-pthreads --enable-debug Note: Kindly note that the --enable-pthreads option while configuration. It seems the configure script by default uses the QuickThreads user space library for thread support in SystemC library. With QuickThreads the SystemC library is not able to execute SC_THREAD's and quite a few of the regression tests also fails. Currently the systemc library is statically built, and I am able to develop models in Cygwin environment. Regards, Ameya Vikram Singh