]> Joshua Wise's Git repositories - firearm.git/blobdiff - Terminal.v
Add terminal
[firearm.git] / Terminal.v
diff --git a/Terminal.v b/Terminal.v
new file mode 100644 (file)
index 0000000..9dc5a21
--- /dev/null
@@ -0,0 +1,33 @@
+module Terminal(
+       input clk,
+       
+       input cp_req,
+       input [31:0] cp_insn,
+       output reg cp_ack,
+       output reg cp_busy,
+       input cp_rnw,
+       output reg [31:0] cp_read = 0,
+       input [31:0] cp_write);
+       
+       /* Terminal pretends to be cp5. */
+       reg towrite = 0;
+       reg [7:0] data = 0;
+       
+       always @(*)
+       begin
+               towrite = 0;
+               data = 8'hxx;
+               cp_ack = 0;
+               cp_busy = 0;
+               if (cp_req && (cp_rnw == 0) && (cp_insn[27:24] == 4'b1110) && (cp_insn[19:16] == 4'b0000) && (cp_insn[11:8] == 4'h5))
+               begin
+                       towrite = 1;
+                       data = cp_write[7:0];
+                       cp_ack = 1;
+               end
+       end
+       
+       always @(posedge clk)
+               if (towrite)
+                       $c("{extern void term_output(unsigned char d); term_output(",data,");}");
+endmodule
This page took 0.022977 seconds and 4 git commands to generate.