aboutsummaryrefslogtreecommitdiff
path: root/rtl/src/verilog/eim_da_phy.v
blob: 9fe0c3b89217f51d000f03af9e1a82f1807fe3b2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
`timescale 1ns / 1ps

module eim_da_phy
	(
		buf_io,
		buf_di, buf_ro,
		buf_t
	);

		//
		// Parameters
		//
	parameter BUS_WIDTH = 16;
	
		//
		// Ports
		//
	inout		wire	[BUS_WIDTH-1:0]	buf_io;	// connect directly to top-level pins
	input		wire	[BUS_WIDTH-1:0]	buf_di;	// drive input (value driven onto pins)
	output	wire	[BUS_WIDTH-1:0]	buf_ro;	// receiver output (value read from pins)
	input		wire							buf_t;	// tristate control (driver is disabled during tristate)

		//
		// IOBUFs
		//
	genvar i;
	generate for (i=0; i<BUS_WIDTH; i=i+1)
		begin: eim_da
			//
			IOBUF #
			(
				.IOSTANDARD		("LVCMOS33"),
				.DRIVE			(12),
				.SLEW				("FAST")
			)
			IOBUF_inst
			(
				.IO	(buf_io[i]),
				.O		(buf_ro[i]),
				.I		(buf_di[i]),
				.T		(buf_t)
			);			
			//
		end
	endgenerate		

endmodule