- public abstract void connect(SinkPort driven);
- }
-
- public static class InstantiatedModule {
- public final Module module;
- public final Module thisModule;
- public final int id;
- public final HashMap<String,Port> ports = new HashMap<String,Port>();
- public String getName() { return module.getName()+"_"+id; }
- public InstantiatedModule(Module thisModule, Module module) {
- this.thisModule = thisModule;
- this.module = module;
- this.id = thisModule.id++;
- thisModule.instantiatedModules.add(this);
- }
- public void dump(PrintWriter pw) {
- pw.println(" " + module.getName() + " " + getName() + "(clk, rst ");
- for(String s : module.portorder)
- pw.println(", " + getPort(s).getSimpleInterface());
- if (module.name.equals("dram")) {
- pw.println(" , dram_addr");
- pw.println(" , dram_addr_r");
- pw.println(" , dram_addr_a");
- pw.println(" , dram_isread");
- pw.println(" , dram_write_data");
- pw.println(" , dram_write_data_push");
- pw.println(" , dram_write_data_full");
- pw.println(" , dram_read_data");
- pw.println(" , dram_read_data_pop");
- pw.println(" , dram_read_data_empty");
- pw.println(" , dram_read_data_latency");
- }
- if (module.name.equals("ddr2")) {
- pw.println(" , ddr2_addr");
- pw.println(" , ddr2_addr_r");
- pw.println(" , ddr2_addr_a");
- pw.println(" , ddr2_isread");
- pw.println(" , ddr2_write_data");
- pw.println(" , ddr2_write_data_push");
- pw.println(" , ddr2_write_data_full");
- pw.println(" , ddr2_read_data");
- pw.println(" , ddr2_read_data_pop");
- pw.println(" , ddr2_read_data_empty");
- pw.println(" , ddr2_read_data_latency");
- }
- if (module.name.equals("video")) {
- pw.println(" , vga_clk");
- pw.println(" , vga_psave");
- pw.println(" , vga_hsync");
- pw.println(" , vga_vsync");
- pw.println(" , vga_sync");
- pw.println(" , vga_blank");
- pw.println(" , vga_r");
- pw.println(" , vga_g");
- pw.println(" , vga_b");
- pw.println(" , vga_clkout");
- }
- pw.println(" );");
- }
- public Port getPort(String name) {
- return (module.ports.get(name) instanceof SinkPort) ? getOutputPort(name) : getInputPort(name);
- }
- public SinkPort getInputPort(String name) {
- int width = module.getPort(name).getWidth();
- SinkPort port = (SinkPort)ports.get(name);
- if (port == null) {
- port = thisModule.new SinkPort(getName()+"_"+name, width, false, "");
- ports.put(name, port);
- }
- return port;
- }
- public SourcePort getOutputPort(String name) {
- int width = module.getPort(name).getWidth();
- SourcePort port = (SourcePort)ports.get(name);
- if (port == null) {
- port = thisModule.new SourcePort(getName()+"_"+name, width, false);
- ports.put(name, port);
- }
- return port;
- }