OpenCores
URL https://opencores.org/ocsvn/vg_z80_sbc/vg_z80_sbc/trunk

Subversion Repositories vg_z80_sbc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 27 to Rev 28
    Reverse comparison

Rev 27 → Rev 28

/trunk/rtl/wb_fpb.v
0,0 → 1,134
//////////////////////////////////////////////////////////////////////
//// ////
//// $Id: wb_fpb.v,v 1.1 2008-12-15 06:40:29 hharte Exp $ ////
//// wb_fpb.v - "Front Panel Board" with Wishbone ////
//// Slave interface. ////
//// ////
//// This file is part of the Vector Graphic Z80 SBC Project ////
//// http://www.opencores.org/projects/vg_z80_sbc/ ////
//// ////
//// Author: ////
//// - Howard M. Harte (hharte@opencores.org) ////
//// ////
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2008 Howard M. Harte ////
//// ////
//// This source file may be used and distributed without ////
//// restriction provided that this copyright statement is not ////
//// removed from the file and that any derivative work contains ////
//// the original copyright notice and the associated disclaimer. ////
//// ////
//// This source file is free software; you can redistribute it ////
//// and/or modify it under the terms of the GNU Lesser General ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any ////
//// later version. ////
//// ////
//// This source is distributed in the hope that it will be ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ////
//// PURPOSE. See the GNU Lesser General Public License for more ////
//// details. ////
//// ////
//// You should have received a copy of the GNU Lesser General ////
//// Public License along with this source; if not, download it ////
//// from http://www.opencores.org/lgpl.shtml ////
//// ////
//////////////////////////////////////////////////////////////////////
 
//+---------------------------------------------------------------------------+
//|
//|
//+---------------------------------------------------------------------------+
module wb_fpb(
clk_i, nrst_i, wbs_adr_i, wbs_dat_o, wbs_dat_i, wbs_sel_i, wbs_we_i,
wbs_stb_i, wbs_cyc_i, wbs_ack_o,
prog_out_port,
sense_sw_i,
lcd_e,
lcd_rs,
lcd_rw,
lcd_dat
);
 
// Wishbone Slave Interface
input clk_i;
input nrst_i;
input [4:0] wbs_adr_i;
output reg [7:0] wbs_dat_o;
input [7:0] wbs_dat_i;
input [3:0] wbs_sel_i;
input wbs_we_i;
input wbs_stb_i;
input wbs_cyc_i;
output reg wbs_ack_o;
 
output lcd_e;
output lcd_rs;
output lcd_rw;
output reg [3:0] lcd_dat;
// Programmed Output Port (8-bit)
output reg [7:0] prog_out_port;
// Sense Switches
input [7:0] sense_sw_i;
 
//
// generate wishbone register bank writes
wire wbs_acc = wbs_cyc_i & wbs_stb_i; // WISHBONE access
wire wbs_wr = wbs_acc & wbs_we_i; // WISHBONE write access
wire wbs_rd = wbs_acc & !wbs_we_i; // WISHBONE read access
 
assign lcd_e = wbs_acc;
assign lcd_rw = 1'b0;
assign lcd_rs = wbs_adr_i[0];
 
always @(posedge clk_i or negedge nrst_i)
if(~nrst_i) // Reset
begin
wbs_ack_o <= 1'b0;
prog_out_port <= 8'hFF;
lcd_dat <= 4'h0;
end
else begin
if(wbs_wr) // Wishbone Write, decode address to determine register offset.
case(wbs_adr_i)
5'h00: begin //
lcd_dat <= wbs_dat_i[3:0];
end
5'h01: begin //
lcd_dat <= wbs_dat_i[3:0];
end
5'h02: begin //
end
5'h1F: begin // Programmed Output Port
prog_out_port <= wbs_dat_i;
end
endcase
 
if(wbs_rd) begin
case(wbs_adr_i) // Wishbone Read, decode address to determine register offset.
5'h00: begin //
wbs_dat_o <= 8'hE0;
end
5'h01: begin //
wbs_dat_o <= 8'hE1;
end
5'h02: begin //
wbs_dat_o <= 8'hE2;
end
5'h1F: begin // Sense Switches Input Port
wbs_dat_o <= sense_sw_i;
end
endcase
end
wbs_ack_o <= wbs_acc & !wbs_ack_o;
end
 
endmodule
 
trunk/rtl/wb_fpb.v Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.