x393  1.0
FPGAcodeforElphelNC393camera
simul_axi_master_rdaddr.v
Go to the documentation of this file.
1 
39 
40 `timescale 1ns/1ps
41 
43 #(
44  parameter integer ID_WIDTH=12,
45  parameter integer ADDRESS_WIDTH=32,
46  parameter integer LATENCY=0, // minimal delay between inout and output ( 0 - next cycle)
47  parameter integer DEPTH=8, // maximal number of commands in FIFO
48  parameter DATA_DELAY = 3.5,
49  parameter VALID_DELAY = 4.0
50 
51 // parameter integer DATA_2DEPTH=(1<<DATA_DEPTH)-1
52 )(
53  input clk,
54  input reset,
55  input [ID_WIDTH-1:0] arid_in,
56  input [ADDRESS_WIDTH-1:0] araddr_in,
57  input [3:0] arlen_in,
58  input [1:0] arsize_in,
59  input [1:0] arburst_in,
60  input [3:0] arcache_in,
61  input [2:0] arprot_in,
62 
63  output [ID_WIDTH-1:0] arid,
64  output [ADDRESS_WIDTH-1:0] araddr,
65  output [3:0] arlen,
66  output [1:0] arsize,
67  output [1:0] arburst,
68  output [3:0] arcache,
69  output [2:0] arprot,
70  output arvalid,
71  input arready,
72 
73  input set_cmd, // latch all other input data at posedge of clock
74  output ready // command/data FIFO can accept command
75 );
76  wire [ID_WIDTH-1:0] arid_out;
78  wire [3:0] arlen_out;
79  wire [1:0] arsize_out;
80  wire [1:0] arburst_out;
81  wire [3:0] arcache_out;
82  wire [2:0] arprot_out;
84 
85  assign #(DATA_DELAY) arid= arid_out;
86  assign #(DATA_DELAY) araddr= araddr_out;
87  assign #(DATA_DELAY) arlen= arlen_out;
88  assign #(DATA_DELAY) arsize= arsize_out;
89  assign #(DATA_DELAY) arburst= arburst_out;
90  assign #(DATA_DELAY) arcache= arcache_out;
91  assign #(DATA_DELAY) arprot= arprot_out;
93 
95  #(
96  .WIDTH(ID_WIDTH+ADDRESS_WIDTH+15), // total number of output bits
97  .LATENCY(LATENCY), // minimal delay between inout and output ( 0 - next cycle)
98  .DEPTH(DEPTH) // maximal number of commands in FIFO
99 // parameter OUT_DELAY = 3.5,
100  ) simul_axi_fifo_i (
101  .clk(clk), // input clk,
102  .reset(reset), // input reset,
103  .data_in({arid_in,araddr_in,arlen_in,arsize_in,arburst_in,arcache_in,arprot_in}), // input [WIDTH-1:0] data_in,
104  .load(set_cmd), // input load,
105  .input_ready(ready), // output input_ready,
107  .valid(arvalid_out), // output valid,
108  .ready(arready)); // input ready);
109 
110 endmodule
[WIDTH-1:0] 8852data_in
[ADDRESS_WIDTH-1:0] 9060araddr_in
[ADDRESS_WIDTH-1:0] 9067araddr
[WIDTH-1:0] 8855data_out
9078araddr_outwire[ADDRESS_WIDTH-1:0]