- A Logic Circuit Simulation Library in C++





News


18th December 2006

libLCS-0.0.49 has been released. You can download it either by going through the download page, or directly from the libLCS project page on sourceforge.net. With this release, assignment delays can be incorporated in a much more intuitive way. The complete changelog is as follows.

Changelog

  1. New classes: lcs::DelayExprPair, lcs::DelayStatePair. These classes facilitate incorporation of assignment delays in an intuitive way. However, a user of libLCS will never need to use these classes explicitly.
  2. lcs::Bus::setAssDelay has been removed.
  3. lcs::Line::setAssDelay has been made private.
  4. New overloaded assignment operators, two each for the classes lcs::Bus and lcs::Expression<1, LINE_EXPR, void, void>, have been provided. They facilitate incorporation of assignment delays in an intuitive way.
  5. An unreported bug with the JK flipflop module (lcs::JKFlipFlop) has been fixed.


5th December 2006

libLCS-0.0.47 has been released. You can download it either by going through the download page, or directly from the libLCS project page on sourceforge.net. With this release, the LineAccessor class and the bus locking mechanism to set bus lines has been eliminated. One can now set bus lines in the natural way using assignment operators. See the user guide and examples to learn more about setting bus lines. The complete changelog is as follows.

Changelog

  1. The class lcs::Bus::LineAccessor and all the member functions associated with bus and line locking have been removed.
  2. The function lcs::InputBus::operator>>(int &) has been removed.
  3. Various assignment operators have been provided for the class lcs::Bus.
  4. New functions: lcs::Bus::setAssDelay, lcs::Line::setAssDelay, lcs::BitBuff::toInt, lcs::BitBuff::toStr, lcs::InputBus::toInt, lcs::InputBus::toStr
  5. An additional enumeration lcs::LINE_EXPR has been added into the enumerated type lcs::ExprType.
  6. New Classes: lcs::Expression<1, LINE_EXPR, void, void>


1st December 2006

libLCS-0.0.45 has been released. With this release you can dump simulation results into VCD files. These VCD files can then be viewed using a suitable viewer. The complete changelog for libLCS-0.0.45 is as follows.

Changelog

  1. lcs::BitBuff and lcs::InputBus are derived from lcs::Array1D through protected inheritance instead of public inheritance.
  2. Few memory leaks in the class lcs::Line have been fixed.
  3. New classes and enumerations: lcs::VCDManager, lcs::TimeUnit, lcs::DumpOption
  4. New functions: lcs::Simulation::setDumpFileName, lcs::Simulation::setTimeUnit


27th November 2006

libLCS-0.0.43 has been released. With this release you can use lcs::BitBuff objects and their bit selects in continuous assignment expressions. Apart from that, there have been few other re-orderings in the code. The complete changelog is as follows.

Changelog

  1. lcs::BitBuff objects and their bits selects can now be used in expressions consisting of bitwise operations. This is facilitated through the following functions: lcs::Bit::notify, lcs::Bit::stopNotification, lcs::BitBuff::notify, lcs::BitBuff::stopNotification.
  2. lcs::InputBus is now inherited from lcs::Array1D.
  3. The constructors and destructors of lcs::Line have been made public.


20th November 2006

libLCS-0.0.41 has been released. You can download it either by going through the download page, or directly from the libLCS project page on sourceforge.net. With this release libLCS facilitates bit-selects in continuous assignment expressions. A new class lcs::BitBuff, which can be used as a temporary/intermediate storage data type, has been added. The complete changelog is as follows.

Changelog

  1. Bit-selects can now be incorporated into expressions.
  2. A new lcs::ExprType enumeration lcs::BITBUFF_EXPR has been added.
  3. New classes: lcs::BitBuff, lcs::Expression<bits, lcs::BITBUFF_EXPR, void, void>, lcs::Bit, lcs::Array1D
  4. lcs::InputBus::operator[] returns a suitable lcs::Expression object.


14th November 2006

libLCS-0.0.40 has been released. You can download it either by going through the download page, or directly from the libLCS project page on sourceforge.net. With this release libLCS facilitates continuous assignments. The complete changelog is as follows.

Changelog

  1. The function lcs::List::isPresent has been added.
  2. lcs::Bus::operator() and lcs::InputBus::operator() have been added.
  3. A function lcs::Bus::cass, which facilitates continuous assignments, has been added.
  4. New classes: Template class lcs::Expression and its specialisations, lcs::HiddenModuleManager, and lcs::ContinuousAssignmentModule. All these new classes play a role is facilitating continuous assignments.
  5. A minor known problem due to which (libLCS-0.0.34) build failed with GCC-4.1.1 has been fixed. This issue was reported through a patch release here. The patch is now closed.


3rd November 2006

libLCS-0.0.34 has been released. You can download it either by going through the download page, or directly from the project page. The complete changelog is as follows.

Changelog

  1. The delays which can set using the function lcs::Bus::lock are now inertial.
  2. Though I have resisted this far, I have converted the overloaded bus concatenation operator * to an overloaded ',' (comma) operator. See lcs::Bus::operator, and lcs::InputBus::operator, for more information.
  3. Added an operator function lcs::Bus::operator,(const InputBus &bus).
  4. Removed the functions lcs::Simulation::terminate and lcs::Clock::destroyClock inorder to fix a minor unreported bug.


28th October 2006

libLCS-0.0.32 has been released. This is a bug-fix release over the 0.0.3 release of libLCS. You can download it either by going through the download page, or directly from the project page.

Changelog

  1. Mixing modules having propogation delay with modules without propogation delay, while building digital systems using libLCS-0.0.3, was leading to an imperfect concurrancy in the simulation of the modules in the system. This imperfection was leading to the circuit behavior being dependent on the order in which the modules were declared in the program. This problem has been solved and all modules, with delay or without delay, are now simulated concurrantly.
  2. Due to the many slips-up with the release libLCS-0.0.3, I have restructured the items which go into the release bundle. Hence, a much better release package, bundled with examples and a Makefile, is provided.


23rd October 2006

libLCS-0.0.3 has been released. With this release, libLCS incorporates the notion of system time, facilitates delays, and provides sequential circuit elements flipflops and clock.

Changelog

  1. The following new classes have been added: lcs::ChangeMonitor, lcs::Clock, lcs::DFlipFlop, lcs::JKFlipFlop, lcs::MultipleClockException, lcs::NullClockException, lcs::Queue, lcs::Simulation, lcs::SystemTimer, lcs::TickListener
  2. The function lcs::InputBus::drive has been replaced with lcs::InputBus::notify, and the function lcs::InputBus::unDrive has been replaced with lcs::InputBus::stopNotification
  3. The function lcs::Bus::lock takes an additional delay parameter.
  4. Usage of the class lcs::Tester is now very different and clock based.
  5. A better navigable website and documentation.
  6. Provision of a small build script to build the library.
  7. Rectified many typos in the user guide and examples sections.


14th October 2006

libLCS-0.0.21 has been released. This is a bug-fix release with no major changes from the 0.0.2 version. You can download it either by going through the download page, or directly from the project page.

Changelog

  1. The API changes are only in the class lcs::Line. The changes were made to eliminate a bug, which I illustrate using the following code.
    lcs::Bus a, b, c;
    lcs::Tester<2,1> tester(a*b, c);
    

    Since the object tester sets the lines of the composite bus a*b, it locks this composite bus. However, due to the improper implementation of the locking mechanism in libLCS-0.0.2, the individual busses a and b were not getting locked even after the composite bus was locked. This problem has been solved in libLCS-0.0.21.

  2. Rectified some of the goofs :-| and typos from the set of examples and user guide.


29th September 2006

libLCS-0.0.2 has been released. You can download it either by going through the download page, or directly from the project page.

Changelog

  1. The single most important change is the provision of access protection to lines of the class lcs::Bus. See this for more information.
  2. Exception classes are used appropriately.
  3. Improved user guide, hopefully :D.
  4. A more organised examples section.


20th September 2006

libLCS-0.0.1 has been released. You can download it either by going through the download page, or directly from the project page.


Copyright © 2006, 2007 Siva Chandra