mirror of
https://github.com/myhdl/myhdl.git
synced 2025-01-24 21:52:56 +08:00
Added license headers and module doc strings
This commit is contained in:
parent
b1c563cc5d
commit
59a92dff5e
@ -1,12 +1,43 @@
|
||||
""" Module that holds the sig class """
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
""" Module that provides the Signal class and related objects.
|
||||
|
||||
This module provides the following objects:
|
||||
|
||||
Signal -- class to model hardware signals
|
||||
posedge -- callable to model a rising edge on a signal in a yield statement
|
||||
negedge -- callable to model a falling edge on a signal in a yield statement
|
||||
|
||||
"""
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
from __future__ import generators
|
||||
from copy import deepcopy as copy
|
||||
|
||||
import _simulator
|
||||
from _simulator import _siglist, _futureEvents, now
|
||||
|
||||
from copy import deepcopy as copy
|
||||
|
||||
schedule = _futureEvents.append
|
||||
_schedule = _futureEvents.append
|
||||
|
||||
class _WaiterList(list):
|
||||
pass
|
||||
@ -94,7 +125,7 @@ class DelayedSignal(Signal):
|
||||
# print "Update timestamp %s" % now()
|
||||
self._nextZ = self._next
|
||||
t = _simulator._time + self._delay
|
||||
schedule((t, _SignalWrap(self, self._next, self._timeStamp)))
|
||||
_schedule((t, _SignalWrap(self, self._next, self._timeStamp)))
|
||||
return []
|
||||
|
||||
def _apply(self, next, timeStamp):
|
||||
|
@ -1,3 +1,26 @@
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
Specification for the Signal class
|
||||
----------------------------------
|
||||
|
||||
|
@ -1,11 +1,36 @@
|
||||
""" Module with the Simulation class """
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
""" Module that provides the Simulation class """
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
from __future__ import generators
|
||||
import exceptions
|
||||
|
||||
import _simulator as sim
|
||||
from _simulator import _siglist, _futureEvents
|
||||
from Signal import Signal, _SignalWrap, _WaiterList
|
||||
from delay import delay
|
||||
from types import GeneratorType
|
||||
import exceptions
|
||||
|
||||
schedule = _futureEvents.append
|
||||
|
||||
|
@ -1,3 +1,26 @@
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
Specification for the Simulation class
|
||||
--------------------------------------
|
||||
|
||||
|
@ -12,14 +12,28 @@
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
""" doc """
|
||||
""" myhdl package initialization.
|
||||
|
||||
__author__= "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
This module provides the following myhdl objects:
|
||||
Simulation -- simulation class
|
||||
StopStimulation -- exception that stops a simulation
|
||||
now -- function that returns the current time
|
||||
Signal -- class to model hardware signals
|
||||
delay -- callable to model delay in a yield statement
|
||||
posedge -- callable to model a rising edge on a signal in a yield statement
|
||||
negedge -- callable to model a falling edge on a signal in a yield statement
|
||||
join -- callable to join clauses in a yield statement
|
||||
intbv -- mutable integer class with bit vector facilities
|
||||
downrange -- function that returns a downward range
|
||||
|
||||
"""
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
|
@ -1,8 +1,37 @@
|
||||
""" Simulator internals """
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
""" Simulator internals and the now function
|
||||
|
||||
This module provides the following objects:
|
||||
now -- function that returns the current simulation time
|
||||
|
||||
"""
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
_siglist = []
|
||||
_futureEvents = []
|
||||
_time = 0
|
||||
|
||||
def now():
|
||||
""" Return the current simulation time """
|
||||
return _time
|
||||
|
@ -1,15 +1,41 @@
|
||||
""" delay class for use in yield statements """
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
_errmsg = "arg of delay constructor should be a positive int"
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
""" Module that provides the delay class."""
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
_errmsg = "arg of delay constructor should be a natural integeer"
|
||||
|
||||
class delay(object):
|
||||
|
||||
""" Class to model delay in yield statements. """
|
||||
|
||||
def __init__(self, val):
|
||||
## if type(val) != int or val < 1:
|
||||
## raise TypeError, _errmsg
|
||||
""" Return a delay instance.
|
||||
|
||||
Required parameters:
|
||||
val -- a natural integer representing the desired delay
|
||||
|
||||
"""
|
||||
if type(val) != int or val < 0:
|
||||
raise TypeError, _errmsg
|
||||
self._time = val
|
||||
|
||||
def __nonzero__(self):
|
||||
if self._time:
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
@ -1,9 +1,31 @@
|
||||
""" Module with intbv class """
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
""" Module with the intbv class """
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
import sys
|
||||
maxint = sys.maxint
|
||||
from types import StringType
|
||||
|
||||
|
||||
|
||||
class intbv(object):
|
||||
|
@ -1,7 +1,31 @@
|
||||
""" Unit test for sig """
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
""" Run the unit tests for Signal """
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
import unittest
|
||||
from unittest import TestCase
|
||||
|
||||
from Signal import Signal
|
||||
from _simulator import _siglist
|
||||
|
||||
|
@ -1,16 +1,37 @@
|
||||
""" Unit test for Simulation """
|
||||
from __future__ import generators
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
""" Run unit tests for Simulation """
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
from __future__ import generators
|
||||
import unittest
|
||||
from unittest import TestCase
|
||||
|
||||
import random
|
||||
from random import randrange
|
||||
random.seed(1) # random, but deterministic
|
||||
|
||||
from myhdl import Simulation, now, delay, StopSimulation, join
|
||||
from myhdl import Signal, posedge, negedge, intbv
|
||||
# from myhdl import Signal
|
||||
|
||||
from _simulator import _siglist
|
||||
|
||||
|
@ -1,3 +1,28 @@
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
""" Run all myhdl unit tests. """
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
import test_Simulation, test_Signal, test_intbv
|
||||
|
||||
modules = (test_Simulation, test_Signal, test_intbv)
|
||||
|
@ -1,8 +1,30 @@
|
||||
# This file is part of the myhdl library, a Python package for using
|
||||
# Python as a Hardware Description Language.
|
||||
#
|
||||
# Copyright (C) 2003 Jan Decaluwe
|
||||
#
|
||||
# The myhdl library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
""" Run the intbv unit tests. """
|
||||
|
||||
__author__ = "Jan Decaluwe <jan@jandecaluwe.com>"
|
||||
__version__ = "$Revision$"
|
||||
__date__ = "$Date$"
|
||||
|
||||
import unittest
|
||||
from unittest import TestCase
|
||||
from intbv import intbv
|
||||
concat = intbv.concat
|
||||
|
||||
import random
|
||||
from random import randrange
|
||||
random.seed(2) # random, but deterministic
|
||||
@ -10,6 +32,9 @@ import sys
|
||||
maxint = sys.maxint
|
||||
import operator
|
||||
|
||||
from intbv import intbv
|
||||
concat = intbv.concat
|
||||
|
||||
|
||||
|
||||
class TestIntbvConcat(TestCase):
|
||||
|
Loading…
x
Reference in New Issue
Block a user