source: PlatformSupport/Deprecated/pcores/eeprom_v1_02_a/hdl/verilog/OWM.v

Last change on this file was 949, checked in by murphpo, 16 years ago

re-adding OPB-based EEPROM

File size: 6.4 KB
Line 
1//--------------------------------------------------------------------------
2//                                                                        --
3//  OneWireMaster                                                         --
4//   A synthesizable 1-wire master peripheral                             --
5//   Copyright 1999-2005 Dallas Semiconductor Corporation                 --
6//                                                                        --
7//--------------------------------------------------------------------------
8//                                                                        --
9//  Purpose:  Provides timing and control of Dallas 1-wire bus            --
10//            through a memory-mapped peripheral                          --
11//  File:     OWM.v                                                       --
12//  Date:     February 1, 2005                                            --
13//  Version:  v2.100                                                      --
14//  Authors:  Rick Downs and Charles Hill,                                --
15//            Dallas Semiconductor Corporation                            --
16//                                                                        --
17//  Note:     This source code is available for use without license.      --
18//            Dallas Semiconductor is not responsible for the             --
19//            functionality or utility of this product.                   --
20//                                                                        --
21//  Rev:      Added Overdrive, Bit control, and strong pullup control     --
22//            along with many other features described in the new spec    --
23//            released version 2.0  9/5/01 - Greg Glennon                 --
24//            Significant changes to improve synthesis - English          --
25//            Ported to Verilog - Sandelin                                --
26//--------------------------------------------------------------------------
27
28module OWM (
29  ADDRESS, ADS_bar, CLK, EN_bar, MR, RD_bar, WR_bar, /*DDIR, DOUT,*/ INTR,
30  STPZ, DATA_IN, DATA_OUT, 
31  DQ0_T, DQ1_T, DQ2_T, DQ3_T, DQ4_T, DQ5_T, DQ6_T, DQ7_T, 
32  DQ0_O, DQ1_O, DQ2_O, DQ3_O, DQ4_O, DQ5_O, DQ6_O, DQ7_O, 
33  DQ0_I, DQ1_I, DQ2_I, DQ3_I, DQ4_I, DQ5_I, DQ6_I, DQ7_I);
34
35  input  [2:0] ADDRESS;  // SFR address
36  input  ADS_bar;        // address latch control (active low)
37  input  CLK;            // system clock
38  input  EN_bar;         // SFR access enable (active low)
39  input  MR;             // master reset
40  input  RD_bar;         // SFR read (active low)
41  input  WR_bar;         // SFR write (active low)
42
43  //output DDIR;
44  //output [7:0] DOUT;
45  output INTR;           // one wire master interrupt
46  output STPZ;           // strong pullup (active low)
47
48  input [7:0] DATA_IN;     // input DATA bus
49  output [7:0] DATA_OUT;   // output DATA bus
50 
51  output  DQ0_T;
52  output  DQ1_T;
53  output  DQ2_T;
54  output  DQ3_T;
55  output  DQ4_T;
56  output  DQ5_T;
57  output  DQ6_T;
58  output  DQ7_T;
59 
60  output  DQ0_O;
61  output  DQ1_O;
62  output  DQ2_O;
63  output  DQ3_O;
64  output  DQ4_O;
65  output  DQ5_O;
66  output  DQ6_O;
67  output  DQ7_O;
68 
69  input   DQ0_I;
70  input   DQ1_I;
71  input   DQ2_I;
72  input   DQ3_I;
73  input   DQ4_I;
74  input   DQ5_I;
75  input   DQ6_I;
76  input   DQ7_I;
77 
78  wire   [2:0] dq_sel;
79
80  wire  [7:0] DIN;
81  wire  [7:0] DOUT;
82  wire  [7:0] rcvr_buffer;
83  wire  [7:0] xmit_buffer;
84  wire  [2:0] ADDRESS;
85  wire clk_1us;
86 
87
88  one_wire_io xone_wire_io
89  (
90    .CLK(CLK), 
91    .DDIR(DDIR),
92    .DOUT(DOUT), 
93    .DQ_CONTROL(DQ_CONTROL),
94    .MR(MR),
95    .DIN(DIN),
96    .DQ_IN(DQ_IN),
97    .DATA_IN(DATA_IN),
98    .DATA_OUT(DATA_OUT),
99    .DQ0_T(DQ0_T), 
100    .DQ0_O(DQ0_O),
101    .DQ0_I(DQ0_I),
102   
103    .DQ1_T(DQ1_T), 
104    .DQ1_O(DQ1_O),
105    .DQ1_I(DQ1_I),
106   
107    .DQ2_T(DQ2_T), 
108    .DQ2_O(DQ2_O),
109    .DQ2_I(DQ2_I),
110   
111    .DQ3_T(DQ3_T), 
112    .DQ3_O(DQ3_O),
113    .DQ3_I(DQ3_I),
114   
115    .DQ4_T(DQ4_T), 
116    .DQ4_O(DQ4_O),
117    .DQ4_I(DQ4_I),
118   
119    .DQ5_T(DQ5_T), 
120    .DQ5_O(DQ5_O),
121    .DQ5_I(DQ5_I),
122   
123    .DQ6_T(DQ6_T), 
124    .DQ6_O(DQ6_O),
125    .DQ6_I(DQ6_I),
126   
127    .DQ7_T(DQ7_T), 
128    .DQ7_O(DQ7_O),
129    .DQ7_I(DQ7_I),
130   
131    .DQ_SEL(dq_sel)
132  );
133
134  clk_prescaler xclk_prescaler
135  (
136    .CLK(CLK),
137    .CLK_EN(CLK_EN), 
138    .div_1(div_1), 
139    .div_2(div_2), 
140    .div_3(div_3), 
141    .MR(MR), 
142    .pre_0(pre_0), 
143    .pre_1(pre_1), 
144    .clk_1us(clk_1us)
145  );
146
147  one_wire_interface xone_wire_interface
148  (
149    .ADDRESS(ADDRESS), 
150    .ADS_bar(ADS_bar), 
151    .clear_interrupts(clear_interrupts), 
152    .DIN(DIN), 
153    .DQ_IN(DQ_IN), 
154    .EN_bar(EN_bar), 
155    .FSM_CLK(FSM_CLK), 
156    .MR(MR),
157    .OneWireIO_eq_Load(OneWireIO_eq_Load), 
158    .pdr(pdr), 
159    .OW_LOW(OW_LOW), 
160    .OW_SHORT(OW_SHORT), 
161    .rbf(rbf), 
162    .rcvr_buffer(rcvr_buffer), 
163    .RD_bar(RD_bar),
164    .reset_owr(reset_owr), 
165    .rsrf(rsrf), 
166    .temt(temt), 
167    .WR_bar(WR_bar), 
168    .BIT_CTL(BIT_CTL), 
169    .CLK_EN(CLK_EN), 
170    .clr_activate_intr(clr_activate_intr), 
171    .DDIR(DDIR),
172    .div_1(div_1), 
173    .div_2(div_2), 
174    .div_3(div_3), 
175    .DOUT(DOUT), 
176    .EN_FOW(EN_FOW), 
177    .EOWL(EOWL), 
178    .EOWSH(EOWSH), 
179    .epd(epd), 
180    .erbf(erbf), 
181    .ersf(ersf),
182    .etbe(etbe), 
183    .etmt(etmt), 
184    .FOW(FOW), 
185    .ias(ias), 
186    .LLM(LLM), 
187    .OD(OD), 
188    .owr(owr), 
189    .pd(pd), 
190    .PPM(PPM), 
191    .pre_0(pre_0), 
192    .pre_1(pre_1), 
193    .rbf_reset(rbf_reset),
194    .sr_a(sr_a), 
195    .STP_SPLY(STP_SPLY), 
196    .STPEN(STPEN), 
197    .tbe(tbe), 
198    .xmit_buffer(xmit_buffer),
199    .dq_sel(dq_sel)
200   );
201
202  onewiremaster xonewiremaster(
203    .BIT_CTL(BIT_CTL), 
204    .clk_1us(clk_1us), 
205    .clr_activate_intr(clr_activate_intr), 
206    .DQ_IN(DQ_IN), 
207    .EN_FOW(EN_FOW), 
208    .EOWL(EOWL),
209    .EOWSH(EOWSH), 
210    .epd(epd), 
211    .erbf(erbf), 
212    .ersf(ersf), 
213    .etbe(etbe), 
214    .etmt(etmt), 
215    .FOW(FOW), 
216    .ias(ias), 
217    .LLM(LLM), 
218    .MR(MR), 
219    .OD(OD),
220    .owr(owr), 
221    .pd(pd), 
222    .PPM(PPM), 
223    .rbf_reset(rbf_reset), 
224    .sr_a(sr_a), 
225    .STP_SPLY(STP_SPLY), 
226    .STPEN(STPEN), 
227    .tbe(tbe), 
228    .xmit_buffer(xmit_buffer),
229    .clear_interrupts(clear_interrupts), 
230    .DQ_CONTROL(DQ_CONTROL), 
231    .FSM_CLK(FSM_CLK), 
232    .INTR(INTR), 
233    .OneWireIO_eq_Load(OneWireIO_eq_Load), 
234    .OW_LOW(OW_LOW),
235    .OW_SHORT(OW_SHORT), 
236    .pdr(pdr), 
237    .rbf(rbf), 
238    .rcvr_buffer(rcvr_buffer), 
239    .reset_owr(reset_owr), 
240    .rsrf(rsrf), 
241    .STPZ(STPZ), 
242    .temt(temt)
243   );
244
245  //synthesis attribute clock_signal of clk_1us IS no
246  //synthesis attribute buffer_type of clk_1us IS none
247
248endmodule
Note: See TracBrowser for help on using the repository browser.