blob: 30b13ae7a7cd19e94b6fa4ac231b206ddde1117a (
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/*****************************************************************************
74148 8-line-to-3-line priority encoder
Pin layout and functions to access pins:
input_line_w(4) [1] /IN4 VCC [16]
input_line_w(5) [2] /IN5 /EO [15] enable_output_r
input_line_w(6) [3] /IN6 /GS [14] output_valid_r
input_line_w(7) [4] /IN7 /IN3 [13] input_line_w(3)
enable_input_w [5] /EI /IN2 [12] input_line_w(2)
output_r [6] /A2 /IN1 [11] input_line_w(1)
output_r [7] /A1 /IN0 [10] input_line_w(0)
[8] GND /A0 [9] output_r
Truth table (all logic levels indicate the actual voltage on the line):
INPUTS | OUTPUTS
|
EI I0 I1 I2 I3 I4 I5 I6 I7 | A2 A1 A0 | GS EO
----------------------------+----------+------
H X X X X X X X X | H H H | H H
L H H H H H H H H | H H H | H L
L X X X X X X X L | L L L | L H
L X X X X X X L H | L L H | L H
L X X X X X L H H | L H L | L H
L X X X X L H H H | L H H | L H
L X X X L H H H H | H L L | L H
L X X L H H H H H | H L H | L H
L X L H H H H H H | H H L | L H
L L H H H H H H H | H H H | L H
----------------------------+----------+------
L = lo (0)
H = hi (1)
X = any state
*****************************************************************************/
#ifndef TTL74148_H
#define TTL74148_H
typedef struct _ttl74148_config ttl74148_config;
struct _ttl74148_config
{
void (*output_cb)(const device_config *device);
};
#define MDRV_74148_ADD(_tag, _output_cb) \
MDRV_DEVICE_ADD(_tag, TTL74148, 0) \
MDRV_DEVICE_CONFIG_DATAPTR(ttl74148_config, output_cb, _output_cb)
/* must call ttl74148_update() after setting the inputs */
void ttl74148_update(const device_config *device);
void ttl74148_input_line_w(const device_config *device, int input_line, int data);
void ttl74148_enable_input_w(const device_config *device, int data);
int ttl74148_output_r(const device_config *device);
int ttl74148_output_valid_r(const device_config *device);
int ttl74148_enable_output_r(const device_config *device);
/* device get info callback */
#define TTL74148 DEVICE_GET_INFO_NAME(ttl74148)
DEVICE_GET_INFO( ttl74148 );
#endif
|