aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Ettus <matt@ettus.com>2010-09-24 14:37:15 -0700
committerMatt Ettus <matt@ettus.com>2010-09-24 14:37:15 -0700
commit1f77494788fa4fa8450aaf170055553bd0e5fe8e (patch)
tree8e4f97f220cc99ef367122620c715536bc2247d7
parent69992b4133145cd92629a0d15354b5d33f0c4973 (diff)
downloaduhd-1f77494788fa4fa8450aaf170055553bd0e5fe8e.tar.gz
uhd-1f77494788fa4fa8450aaf170055553bd0e5fe8e.tar.bz2
uhd-1f77494788fa4fa8450aaf170055553bd0e5fe8e.zip
allow for CS to rise before, at the same time, or after OE
-rw-r--r--usrp2/gpmc/fifo_to_gpmc_async.v13
1 files changed, 6 insertions, 7 deletions
diff --git a/usrp2/gpmc/fifo_to_gpmc_async.v b/usrp2/gpmc/fifo_to_gpmc_async.v
index 5ac8b19bd..cf8b6e861 100644
--- a/usrp2/gpmc/fifo_to_gpmc_async.v
+++ b/usrp2/gpmc/fifo_to_gpmc_async.v
@@ -11,23 +11,22 @@ module fifo_to_gpmc_async
input [15:0] frame_len);
// Synchronize the async control signals
- reg [1:0] cs_del, oe_del;
+ reg [2:0] cs_del, oe_del;
reg [15:0] counter;
always @(posedge clk)
if(reset)
begin
- cs_del <= 2'b11;
- oe_del <= 2'b11;
+ cs_del <= 3'b11;
+ oe_del <= 3'b11;
end
else
begin
- cs_del <= { cs_del[0], EM_NCS };
- oe_del <= { oe_del[0], EM_NOE };
+ cs_del <= { cs_del[1:0], EM_NCS };
+ oe_del <= { oe_del[1:0], EM_NOE };
end
- //wire do_read = (~cs_del[0] & (oe_del == 2'b10));
- wire do_read = (~cs_del[1] & (oe_del == 2'b01)); // change output on trailing edge
+ wire do_read = ( (~cs_del[1] | ~cs_del[2]) & (oe_del[1:0] == 2'b01)); // change output on trailing edge
wire first_read = (counter == 0);
wire last_read = ((counter+1) == frame_len);