Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 29.989.312 Times

Hardware::Simulator 0000_0005

  Date Added: August 04, 2010  |  Visits: 696

Hardware::Simulator

Report Broken Link
Printer Friendly Version


Product Homepage
Download (74 downloads)

Hardware::Simulator is a Perl extension for Perl Hardware Descriptor Language. SYNOPSIS use Hardware::Simulator; # NewSignal( perl_variable [, initial_value]); # create a signal called $in_clk, give it an initial value of 1 NewSignal(my $in_clk,1); # Repeater ( time_units , code_ref) # every time_units, call the code reference, starting at the current time Repeater ( 5, sub{if ( $in_clk==0) { $in_clk=1;} else { $in_clk=0;}}); # Responder ( [signal_name ... signal_name], code_ref ); # respond to any changes to signals by calling code reference. # any time out_clk changes, print value of clock and simulation time. Responder ( $out_clk, sub { my $time = SimTime(); print "out_clk = $out_clk. time=$timen"; }); # start processing of events and event scheduling. EventLoop(); Hardware::Simulator ==> a Perl Hardware Descriptor Language Hardware::Simulator is a lightweight version of VHDL or Verilog HDL. All of these languages were developed as means to describe hardware. Hardware::Simulator was created as a means to quickly prototype a basic hardware design and simulate it. VHDL and Verilog are both restrictive in their own ways. Hardware::Simulator was created to quickly put something together as a "proof of concept", to show that a design concept would work or not. and then the design could be translated to VHDL or Verilog. The problem that started all of this was designing a fifo for a video scaling asic. The chip used a buffer to store incoming video data. The asic read the buffer to generate the outgoing video image. We estimated how large we thought the buffer needed to be, but we wanted to confirm that our numbers were right by running simulations. The problem was we needed to run hundreds of different simulations, given the permutations of input image formats, output image formats, and input/output clock frequencies. We also had text files containing valid formats and frequencies. A text file as input called for perl to manipulate, split, format, and extract the data properly. This data then had to be translated onto the a HDL simulation. The problem was that there was no easy way to write a perl script that would simulate hardware, so the only solution was to have perl drive a Verilog simulator and pass all these parameters via command line parameters. so then verilog files had to be created, and the simulator had to be driven, and the end result was a lot of work to simulate a simple fifo. Time contraints did not allow me to develop a HDL package for perl to solve the original problem, but I took it on in my spare time. and eventually Hardware::Simulator was born..

Requirements: No special requirements
Platforms: Linux
Keyword: Clk Descriptor Hardware Hardwaresimulator Libraries Perl Perl Hardware Descriptor Language Programming Time Verilog Vhdl
Users rating: 0/10

License: Freeware Size: 10.24 KB
HARDWARE::SIMULATOR RELATED
Libraries  -  Time::Piece 1.11
Time::Piece is a Perl module that contains Object Oriented time objects. SYNOPSIS use Time::Piece; my $t = localtime; print "Time is $tn"; print "Year is ", $t->year, "n"; This module replaces the standard localtime and gmtime functions...
20.48 KB  
Libraries  -  Hardware::iButton 0.03
Hardware::iButton is a Perl module that allows to talk to DalSemi iButtons via a DS2480 serial widget. SYNOPSIS use Hardware::iButton::Connection; $c = new Hardware::iButton::Connection "/dev/ttyS0"; @b = $c->scan(); foreach $b (@b) {...
21.5 KB  
Libraries  -  Alien Perl module 0.91
Alien Perl module package contains external libraries wrapped up for your viewing pleasure! SYNOPSIS perldoc Alien; Alien is a package that exists just to hold together an idea, the idea of Alien:: packages, so there is no code here, just...
10.24 KB  
Libraries  -  Geo::Lookup::ByTime 0.0.2
Geo::Lookup::ByTime is a Perl module to lookup location by time. SYNOPSIS use Geo::Lookup::ByTime; $lookup = Geo::Lookup::ByTime->new( @points ); my $pt = $lookup->nearest( $tm ); Given a set of timestamped locations guess the location at...
15.36 KB  
Libraries  -  Devel::Hints 0.11
Devel::Hints is a Perl module created to access compile-time hints at runtime. SYNOPSIS use Devel::Hints :all; LABEL: print cop_label(); # LABEL cop_label(0 => FOO); # "goto FOO;" is valid after this point! print cop_file(); # same as...
44.03 KB  
Libraries  -  I18N::AcceptLanguage 1.04
I18N::AcceptLanguage is a Perl module that matches language preference to available languages. SYNOPSIS use I18N::AcceptLanguage; my $supportedLanguages = [( en-us, fr )]; my $acceptor = I18N::AcceptLanguage->new(); my $language =...
9.22 KB  
Libraries  -  SQL::Routine::Language 0.70.3
SQL::Routine::Language is a Perl module for what language or grammar SQL::Routine speaks. SQL::Routine contains SQL schemas and queries, represented as a tree of atomic tokens; it is structurally like an abstract syntax tree or an XML DOM, but...
174.08 KB  
Libraries  -  Time::Beat 1.21
Time::Beat is a Perl module to convert between standard time and Swatch ".beat" time. Time::Beat is a module to convert normal time to and from .beats, of which there are a thousand in a day. It can change normal time in time() format to .beats,...
3.07 KB  
Libraries  -  Scalar::Properties 0.12
Scalar::Properties is a Perl module package that contains run-time properties on scalar variables. SYNOPSIS use Scalar::Properties; my $val = 0->true; if ($val && $val == 0) { print "yup, its true alright...n"; } my @text = ( hello...
10.24 KB  
Libraries  -  Log::Dispatch::File::Rolling 1.04
Log::Dispatch::File::Rolling is a Perl object for logging to date/time/pid stamped files. SYNOPSIS use Log::Dispatch::File::Rolling; my $file = Log::Dispatch::File::Rolling->new( name => file1, min_level => info, filename =>...
5.12 KB  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
Programming  -  FLEX-db Digital Asset Manager 3.0.9
FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata...
21.57 MB  
Programming  -  Libicom 0.9.0
The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based....
20.48 KB  
Programming  -  dotdesktop 0.3
Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by freedesktop.org, it is used to describe information about an application such as the name and...
327.68 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  libyasl 0.2
Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems.
143.36 KB  
Libraries  -  wolfSSL 3.12.0
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
2.73 MB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB