class ClassHDL::HDLAlwaysBlock
Attributes
belong_to_module[R]
negedges[RW]
opertor_chains[RW]
posedges[RW]
Public Class Methods
new(belong_to_module)
click to toggle source
# File lib/tdl/class_hdl/hdl_always_ff.rb, line 36 def initialize(belong_to_module) @opertor_chains = [] @posedges = [] @negedges = [] @belong_to_module = belong_to_module end
Public Instance Methods
edge_instance(flag='posedge',edges=[])
click to toggle source
# File lib/tdl/class_hdl/hdl_always_ff.rb, line 43 def edge_instance(flag='posedge',edges=[]) unless edges.is_a? Array es = [edges] else es = edges end es.compact! return es.map{|e| "#{flag} #{e.to_s}"} end
instance()
click to toggle source
# File lib/tdl/class_hdl/hdl_always_ff.rb, line 53 def instance str = [] pose_str = edge_instance('posedge',@posedges) nege_str = edge_instance('negedge',@negedges) pose_str.concat nege_str str.push "always@(#{pose_str.join(",")}) begin " opertor_chains.each do |op| unless op.is_a? OpertorChain str.push op.instance(:always_ff).gsub(/^./){ |m| " #{m}"} else unless op.slaver rel_str = ClassHDL.compact_op_ch(op.instance(:always_ff, belong_to_module)) str.push " #{rel_str};" end end end str.push "end\n" str.join("\n") end