module DisplayHelpers
Public Instance Methods
v2k_child_instances(klass)
click to toggle source
Render child instances.
@return [String] verilog decl @example
cntlr cntlr_inst ( .clk_port(clk_pin), .rst_port(rst_pint) ); // if parameters. cntlr #(DEPTH=4) cntlr_inst (
# File lib/templates/helpers.rb, line 65 def v2k_child_instances(klass) output = "" klass.child_instances.each do |instance_name, hdl_instance| output += " #{hdl_instance.class.module_name}" p = v2k_parameters(hdl_instance.class) output += " #{p}" unless p == "" output += " #{instance_name}(\n" hdl_instance.class.ports.keys[0..-2].each do |port_name| output += " #{v2k_port_instance(port_name, hdl_instance)},\n" end port_name = hdl_instance.class.ports.keys.last if port_name output += " #{v2k_port_instance(port_name, hdl_instance)}\n" end output += " );\n" end output end
v2k_parameters(hdl_class)
click to toggle source
Create verilog parameter string. @example ram #(.DATA_WIDTH(16), .ADDR_WIDTH(8)) ram(clk, …);
# File lib/templates/helpers.rb, line 29 def v2k_parameters(hdl_class) output = "" unless hdl_class.parameters.empty? output = "#(" hdl_class.parameters.keys[0..-2].each do |k| output += ".#{k}(#{hdl_class.parameters[k]}), " end k = hdl_class.parameters.keys[-1] output += ".#{k}(#{hdl_class.parameters[k]}))" end return output end
v2k_port_decl(port)
click to toggle source
Render verilog port declaration. @return [String] verilog decl @example
input reg clk, output wire [1:0] vld
# File lib/templates/helpers.rb, line 9 def v2k_port_decl(port) output = "#{port.direction} #{port.type}" output += " [#{port.lhs}:#{port.rhs}]" unless port.scalar? output += " #{port.name}" end
v2k_port_instance(port_name, hdl_instance)
click to toggle source
# File lib/templates/helpers.rb, line 42 def v2k_port_instance(port_name, hdl_instance) output = "" if hdl_instance.pins.key? port_name pin = hdl_instance.pins[port_name] if not pin.port.scalar? output = ".#{port_name}(#{pin.name}" output += "[#{pin.lhs}:#{pin.rhs}])" else output = ".#{port_name}(#{pin.name})" end else output = ".#{port_name}()" end end
v2k_port_list_decl(klass)
click to toggle source
# File lib/templates/helpers.rb, line 15 def v2k_port_list_decl(klass) output = "" klass.ports.values[0..-2].each do |port| output += " #{v2k_port_decl(port)},\n" end last_port = klass.ports.values.last if last_port output += " #{v2k_port_decl(last_port)}\n" end end