Class: HDLRuby::High::TimeWait
- Inherits:
-
Low::TimeWait
- Object
- Low::Statement
- Low::TimeWait
- HDLRuby::High::TimeWait
- Includes:
- HStatement
- Defined in:
- lib/HDLRuby/hruby_high.rb,
lib/HDLRuby/hruby_rsim.rb,
lib/HDLRuby/hruby_rcsim.rb,
lib/HDLRuby/hruby_rsim_vcd.rb
Overview
Describes a wait statement: not synthesizable!
Constant Summary
Constants included from Low::Low2Symbol
Low::Low2Symbol::Low2SymbolPrefix, Low::Low2Symbol::Low2SymbolTable, Low::Low2Symbol::Symbol2LowTable
Instance Attribute Summary collapse
-
#rcstatement ⇒ Object
readonly
Extends the TimeWait class for hybrid Ruby-C simulation.
Attributes inherited from Low::TimeWait
Attributes included from Low::Hparent
Instance Method Summary collapse
-
#execute(mode) ⇒ Object
Executes the statement.
-
#get_vars_with_fullname(vars_with_fullname = {}) ⇒ Object
Gets the VCD variables with their long name.
-
#get_vars_with_idstr(vars_with_idstr = {}) ⇒ Object
Gets the VCD variables with their id string.
-
#init_sim(systemT) ⇒ Object
Initialize the simulation for system +systemT+.
-
#show_hierarchy(vcdout) ⇒ Object
Shows the hierarchy of the variables.
-
#to_low ⇒ Object
Converts the wait statement to HDLRuby::Low.
-
#to_rcsim ⇒ Object
Generate the C description of the time wait.
Methods included from HStatement
Methods inherited from Low::TimeWait
#boolean_in_assign2select!, #casts_without_expression!, #clone, #each_block, #each_block_deep, #each_deep, #each_node, #each_node_deep, #each_statement_deep, #eql?, #explicit_types!, #extract_selects!, #hash, #initialize, #map_nodes!, #set_delay!, #signal2subs!, #to_c, #to_hdr, #to_high, #to_verilog, #to_vhdl
Methods inherited from Low::Statement
#add_blocks_code, #add_make_block, #behavior, #block, #blocks2seq!, #break_types!, #clone, #delete_related!, #delete_unless!, #each_deep, #each_statement, #eql?, #explicit_types!, #extract_declares!, #fix_scope_refnames!, #hash, #mix?, #par_in_seq2seq!, #parent_system, #replace_expressions!, #replace_names!, #scope, #to_c, #to_ch, #to_hdr, #to_high, #to_seq!, #to_upper_space!, #to_vhdl, #top_block, #top_scope, #use_name?, #with_boolean!
Methods included from Low::Low2Symbol
Methods included from Low::Hparent
#absolute_ref, #hierarchy, #no_parent!, #scope
Constructor Details
This class inherits a constructor from HDLRuby::Low::TimeWait
Instance Attribute Details
#rcstatement ⇒ Object (readonly)
Extends the TimeWait class for hybrid Ruby-C simulation.
733 734 735 |
# File 'lib/HDLRuby/hruby_rcsim.rb', line 733 def rcstatement @rcstatement end |
Instance Method Details
#execute(mode) ⇒ Object
Executes the statement.
858 859 860 861 862 863 864 865 866 867 868 869 870 871 |
# File 'lib/HDLRuby/hruby_rsim.rb', line 858 def execute(mode) @behavior ||= self.behavior @behavior.time += self.delay.time_ps if @sim.multithread then # Multi thread mode: synchronize. # puts "Stopping #{@behavior.object_id} (@behavior.time=#{@behavior.time})..." @sim.run_done(@behavior.id) # puts "Rerunning #{@behavior.object_id} (@behavior.time=#{@behavior.time})..." @sim.run_req(@behavior.id) else # No thread mode, need to advance the global simulator. @sim.advance end end |
#get_vars_with_fullname(vars_with_fullname = {}) ⇒ Object
Gets the VCD variables with their long name.
355 356 357 |
# File 'lib/HDLRuby/hruby_rsim_vcd.rb', line 355 def get_vars_with_fullname(vars_with_fullname = {}) # By default: nothing to do end |
#get_vars_with_idstr(vars_with_idstr = {}) ⇒ Object
Gets the VCD variables with their id string.
360 361 362 |
# File 'lib/HDLRuby/hruby_rsim_vcd.rb', line 360 def get_vars_with_idstr(vars_with_idstr = {}) # By default: nothing to do end |
#init_sim(systemT) ⇒ Object
Initialize the simulation for system +systemT+.
853 854 855 |
# File 'lib/HDLRuby/hruby_rsim.rb', line 853 def init_sim(systemT) @sim = systemT end |
#show_hierarchy(vcdout) ⇒ Object
Shows the hierarchy of the variables.
350 351 352 |
# File 'lib/HDLRuby/hruby_rsim_vcd.rb', line 350 def show_hierarchy(vcdout) # By default: nothing to do. end |
#to_low ⇒ Object
Converts the wait statement to HDLRuby::Low.
2795 2796 2797 2798 2799 2800 2801 2802 |
# File 'lib/HDLRuby/hruby_high.rb', line 2795 def to_low # return HDLRuby::Low::TimeWait.new(self.delay.to_low) timeWaitL = HDLRuby::Low::TimeWait.new(self.delay.to_low) # # For debugging: set the source high object # timeWaitL.properties[:low2high] = self.hdr_id # self.properties[:high2low] = timeWaitL return timeWaitL end |