From 4f523681b7e786694969bcb7bfddb68b976c8ab7 Mon Sep 17 00:00:00 2001 From: jcorgan Date: Thu, 3 Aug 2006 04:51:51 +0000 Subject: Houston, we have a trunk. git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@3122 221aa14e-8319-0410-a670-987f0aec2ac5 --- models/bustri.v | 17 +++++++++++ models/fifo.v | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++ models/fifo_1c_1k.v | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++ models/fifo_1c_2k.v | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++ models/fifo_1c_4k.v | 76 +++++++++++++++++++++++++++++++++++++++++++++++++ models/fifo_1k.v | 24 ++++++++++++++++ models/fifo_2k.v | 24 ++++++++++++++++ models/fifo_4k.v | 24 ++++++++++++++++ models/pll.v | 33 ++++++++++++++++++++++ models/ssram.v | 38 +++++++++++++++++++++++++ 10 files changed, 479 insertions(+) create mode 100644 models/bustri.v create mode 100644 models/fifo.v create mode 100644 models/fifo_1c_1k.v create mode 100644 models/fifo_1c_2k.v create mode 100644 models/fifo_1c_4k.v create mode 100644 models/fifo_1k.v create mode 100644 models/fifo_2k.v create mode 100644 models/fifo_4k.v create mode 100644 models/pll.v create mode 100644 models/ssram.v (limited to 'models') diff --git a/models/bustri.v b/models/bustri.v new file mode 100644 index 000000000..6e5a0f74c --- /dev/null +++ b/models/bustri.v @@ -0,0 +1,17 @@ + +// Model for tristate bus on altera +// FIXME do we really need to use a megacell for this? + +module bustri (data, + enabledt, + tridata); + + input [15:0] data; + input enabledt; + inout [15:0] tridata; + + assign tridata = enabledt ? data :16'bz; + +endmodule // bustri + + diff --git a/models/fifo.v b/models/fifo.v new file mode 100644 index 000000000..a04e7da6c --- /dev/null +++ b/models/fifo.v @@ -0,0 +1,81 @@ +// Model of FIFO in Altera + +module fifo( data, wrreq, rdreq, rdclk, wrclk, aclr, q, + rdfull, rdempty, rdusedw, wrfull, wrempty, wrusedw); + + parameter width = 16; + parameter depth = 1024; + parameter addr_bits = 10; + + //`define rd_req 0; // Set this to 0 for rd_ack, 1 for rd_req + + input [width-1:0] data; + input wrreq; + input rdreq; + input rdclk; + input wrclk; + input aclr; + output [width-1:0] q; + output rdfull; + output rdempty; + output reg [addr_bits-1:0] rdusedw; + output wrfull; + output wrempty; + output reg [addr_bits-1:0] wrusedw; + + reg [width-1:0] mem [0:depth-1]; + reg [addr_bits-1:0] rdptr; + reg [addr_bits-1:0] wrptr; + +`ifdef rd_req + reg [width-1:0] q; +`else + wire [width-1:0] q; +`endif + + integer i; + + always @( aclr) + begin + wrptr <= #1 0; + rdptr <= #1 0; + for(i=0;i