hwtLib.amba.axis_comp.base.
AxiSCompBase
(hsIntfCls)[source]¶Bases: hwtLib.handshaked.compBase.HandshakedCompBase
Abstract base for axis components
hwtLib.amba.axis_comp.builder.
AxiSBuilder
(parent, srcInterface, name=None)[source]¶Bases: hwtLib.abstract.streamBuilder.AbstractStreamBuilder
Helper class which simplifies building of large stream paths
Variables: | end – actual endpoint where building process will continue |
---|
FifoCls
¶alias of hwtLib.amba.axis_comp.fifo.AxiSFifo
RegCls
¶alias of hwtLib.amba.axis_comp.reg.AxiSReg
ResizerCls
¶SplitCopyCls
¶SplitSelectCls
¶forge
(parent, typeToForge, intfCls, setupFn=None, name=None)[source]¶generate frame assembler for specified type :note: you can set endianity and others in setupFn
Parameters: |
|
---|---|
Returns: | tuple (builder, interface with forged frame) |
hwtLib.amba.axis_comp.en.
AxiS_en
(hsIntfCls)[source]¶Bases: hwtLib.amba.axis_comp.base.AxiSCompBase
This component is like on-off switch for axi stream interface which does care about frames. If en signal is 0 current frame is finished and next frame is started only when en is 1
hwtLib.amba.axis_comp.fifo.
AxiSFifo
(hsIntfCls)[source]¶Bases: hwtLib.amba.axis_comp.base.AxiSCompBase
, hwtLib.handshaked.fifo.HandshakedFifo
Synchronous fifo for axi-stream interface.
_regCls
¶alias of hwtLib.amba.axis_comp.reg.AxiSReg
hwtLib.amba.axis_comp.frameForge.
AxiS_frameForge
(axiSIntfCls, structT: hwt.hdl.types.hdlType.HdlType, tmpl: Union[hwt.hdl.transTmpl.TransTmpl, NoneType] = None, frames: Union[List[hwt.hdl.frameTmpl.FrameTmpl], NoneType] = None)[source]¶Bases: hwtLib.amba.axis_comp.base.AxiSCompBase
, hwtLib.amba.axis_comp.templateBasedUnit.TemplateBasedUnit
Assemble fields into frame on axi stream interface
Note: | names in the picture are just illustrative |
---|
__init__
(axiSIntfCls, structT: hwt.hdl.types.hdlType.HdlType, tmpl: Union[hwt.hdl.transTmpl.TransTmpl, NoneType] = None, frames: Union[List[hwt.hdl.frameTmpl.FrameTmpl], NoneType] = None)[source]¶Parameters: |
|
---|---|
Note: | if tmpl and frames are None they are resolved from structT parseTemplate |
Note: | this unit can parse sequence of frames, if they are specified by “frames” |
Note: | structT can contain fields with variable size like HStream |
_mkFieldIntf
(parent: hwt.interfaces.structIntf.StructIntf, structField: hwt.hdl.types.struct.HStructField)[source]¶Instantiate interface for all members of input type
connectPartsOfWord
(wordData_out: hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal, tPart: Union[hwt.hdl.transPart.TransPart, hwt.hdl.frameTmplUtils.ChoicesOfFrameParts], inPorts_out: List[Union[hwt.interfaces.std.Handshaked, hwtLib.handshaked.streamNode.StreamNode]], lastInPorts_out: List[Union[hwt.interfaces.std.Handshaked, hwtLib.handshaked.streamNode.StreamNode]])[source]¶Connect transactions parts to signal for word of output stream
Parameters: |
|
---|
hwtLib.amba.axis_comp.frameGen.
AxisFrameGen
[source]¶Bases: hwt.synthesizer.unit.Unit
Generator of axi stream frames for testing purposes
_config
()[source]¶Configure object parameters
hwtLib.amba.axis_comp.frameLinkConv.
AxiSToFrameLink
[source]¶Bases: hwt.synthesizer.unit.Unit
Axi 4 stream to FrameLink
format of user signal: user[0]: start of packet user[1]: end of packet
_config
()[source]¶Configure object parameters
hwtLib.amba.axis_comp.frameLinkConv.
FrameLinkToAxiS
[source]¶Bases: hwt.synthesizer.unit.Unit
Framelink to axi-stream
format of user signal: user[0]: start of packet user[1]: end of packet
_config
()[source]¶Configure object parameters
hwtLib.amba.axis_comp.frameParser.
AxiS_frameParser
(axiSCls, structT: hwt.hdl.types.hdlType.HdlType, tmpl: Union[hwt.hdl.transTmpl.TransTmpl, NoneType] = None, frames: Union[List[hwt.hdl.frameTmpl.FrameTmpl], NoneType] = None)[source]¶Bases: hwtLib.amba.axis_comp.base.AxiSCompBase
, hwtLib.amba.axis_comp.templateBasedUnit.TemplateBasedUnit
Parse frame specified by HStruct into fields
Note: | names in the picture are just illustrative |
---|
__init__
(axiSCls, structT: hwt.hdl.types.hdlType.HdlType, tmpl: Union[hwt.hdl.transTmpl.TransTmpl, NoneType] = None, frames: Union[List[hwt.hdl.frameTmpl.FrameTmpl], NoneType] = None)[source]¶Parameters: |
|
---|---|
Note: | if tmpl and frames are None they are resolved from structT parseTemplate |
Note: | this unit can parse sequence of frames, if they are specified by “frames” |
Attention: | structT can not contain fields with variable size like HStream |
_config
()[source]¶Configure object parameters
_declr
()[source]¶declarations
_mkFieldIntf
(parent: hwt.interfaces.structIntf.StructIntf, structField: hwt.hdl.types.struct.HStructField)[source]¶choiceIsSelected
(interfaceOfChoice: hwt.interfaces.unionIntf.UnionSink)[source]¶Check if union member is selected by _select interface in union interface
connectPart
(hsNondes: list, part: Union[hwt.hdl.transPart.TransPart, hwt.hdl.frameTmplUtils.ChoicesOfFrameParts], en: Union[hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal, bool], exclusiveEn: Union[hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal, NoneType] = <BitsVal 1, mask 1>)[source]¶Create datamux for one word in main fsm and colect metainformations for handshake logic
Parameters: | hsNondes – list of nodes of handshaked logic |
---|
hwtLib.amba.axis_comp.frameParser_utils.
ExclusieveListOfHsNodes
(selectorIntf)[source]¶Bases: list
@ivar selectorIntf: selector for this node
hwtLib.amba.axis_comp.frameParser_utils.
InNodeInfo
(inInterface: hwt.interfaces.std.Handshaked, en: hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal)[source]¶Bases: object
Interface has to be ready and handshaked logic should be constructed
hwtLib.amba.axis_comp.frameParser_utils.
InNodeReadOnlyInfo
(inInterface: hwt.interfaces.std.Handshaked, en: hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal)[source]¶Bases: hwtLib.amba.axis_comp.frameParser_utils.InNodeInfo
Interface has to be ready but handshake logic is not constructed
hwtLib.amba.axis_comp.frameParser_utils.
OutNodeInfo
(parent: hwt.synthesizer.unit.Unit, outInterface: hwt.interfaces.std.VldSynced, en: hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal, exclusiveEn: Union[hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal, NoneType] = None)[source]¶Bases: object
Container for informations about output for handshake logic
Variables: |
|
---|
hwtLib.amba.axis_comp.frameParser_utils.
WordFactory
(wordIndexReg: Union[hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal, NoneType])[source]¶Bases: object
hwtLib.amba.axis_comp.measuringFifo.
AxiS_measuringFifo
(stream_t=<class 'hwtLib.amba.axis.AxiStream'>)[source]¶Bases: hwt.synthesizer.unit.Unit
Fifo which are counting sizes of frames and sends it over dedicated handshaked interface “sizes”
__init__
(stream_t=<class 'hwtLib.amba.axis.AxiStream'>)[source]¶Initialize self. See help(type(self)) for accurate signature.
_config
()[source]¶Configure object parameters
hwtLib.amba.axis_comp.reg.
AxiSReg
(hsIntfCls)[source]¶Bases: hwtLib.amba.axis_comp.base.AxiSCompBase
, hwtLib.handshaked.reg.HandshakedReg
Register for axi stream interface
hwtLib.amba.axis_comp.resizer.
AxiS_resizer
(hsIntfCls)[source]¶Bases: hwtLib.amba.axis_comp.base.AxiSCompBase
Change data with of interface
Attention: | start of frame is expected to be aligned on first word |
---|---|
Attention: | strb can be not fully set only in last word |
Attention: | in upscale mode id and other signals which are not dependent on data width are propagated only from last word |
_config
()[source]¶Configure object parameters
hwtLib.amba.axis_comp.splitCopy.
AxiSSplitCopy
(hsIntfCls)[source]¶Bases: hwtLib.amba.axis_comp.base.AxiSCompBase
, hwtLib.handshaked.splitCopy.HsSplitCopy
hwtLib.amba.axis_comp.splitSelect.
AxiSSpliSelect
(hsIntfCls)[source]¶Bases: hwtLib.amba.axis_comp.base.AxiSCompBase
, hwtLib.handshaked.splitSelect.HsSplitSelect
hwtLib.amba.axis_comp.storedBurst.
AxiSStoredBurst
(data=[72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])[source]¶Bases: hwt.synthesizer.unit.Unit
This units send data stored in property DATA over axi-stream interface
__init__
(data=[72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])[source]¶Initialize self. See help(type(self)) for accurate signature.
_config
()[source]¶Configure object parameters