diff options
author | Josh Blum <josh@joshknows.com> | 2010-11-23 13:50:37 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-11-23 13:50:37 -0800 |
commit | 30ce5acedd3e0dc6fc97d7597781a0a4828812f2 (patch) | |
tree | 28d010c0938121f587e1820849c34ee900e7f74b /fpga/usrp2/gpmc/fifo_to_gpmc_sync.v | |
parent | 8ce75a3ca7a51f4bdee87d78a610a0f2519473ae (diff) | |
parent | 13ae4786e091d5581baf31c9967dca822ef15e39 (diff) | |
download | uhd-30ce5acedd3e0dc6fc97d7597781a0a4828812f2.tar.gz uhd-30ce5acedd3e0dc6fc97d7597781a0a4828812f2.tar.bz2 uhd-30ce5acedd3e0dc6fc97d7597781a0a4828812f2.zip |
Merge branch 'usrp_e100' into next
Conflicts:
images/Makefile
Diffstat (limited to 'fpga/usrp2/gpmc/fifo_to_gpmc_sync.v')
-rw-r--r-- | fpga/usrp2/gpmc/fifo_to_gpmc_sync.v | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/fpga/usrp2/gpmc/fifo_to_gpmc_sync.v b/fpga/usrp2/gpmc/fifo_to_gpmc_sync.v new file mode 100644 index 000000000..ef59d7137 --- /dev/null +++ b/fpga/usrp2/gpmc/fifo_to_gpmc_sync.v @@ -0,0 +1,26 @@ + +// Assumes a GPMC cycle with GPMC clock, as in the timing diagrams +// If a packet bigger or smaller than we are told is sent, behavior is undefined. +// If dst_rdy_i is low when we get data, behavior is undefined and we signal bus error. +// If there is a bus error, we should be reset + +module fifo_to_gpmc_sync + (input arst, + input [17:0] data_i, input src_rdy_i, output dst_rdy_o, + input EM_CLK, output [15:0] EM_D, input EM_NCS, input EM_NOE, + output fifo_ready, + output reg bus_error); + + assign EM_D = data_i[15:0]; + wire read_access = ~EM_NCS & ~EM_NOE; + + assign dst_rdy_o = read_access; + + always @(posedge EM_CLK or posedge arst) + if(arst) + bus_error <= 0; + else if(dst_rdy_o & ~src_rdy_i) + bus_error <= 1; + + +endmodule // fifo_to_gpmc_sync |