OpenCores
URL https://opencores.org/ocsvn/mips_enhanced/mips_enhanced/trunk

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [lib/] [tech/] [cycloneiii/] [simprims/] [cycloneiii_components.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
-- Copyright (C) 1991-2007 Altera Corporation
2
-- Your use of Altera Corporation's design tools, logic functions 
3
-- and other software and tools, and its AMPP partner logic 
4
-- functions, and any output files from any of the foregoing 
5
-- (including device programming or simulation files), and any 
6
-- associated documentation or information are expressly subject 
7
-- to the terms and conditions of the Altera Program License 
8
-- Subscription Agreement, Altera MegaCore Function License 
9
-- Agreement, or other applicable license agreement, including, 
10
-- without limitation, that your use is for the sole purpose of 
11
-- programming logic devices manufactured by Altera and sold by 
12
-- Altera or its authorized distributors.  Please refer to the 
13
-- applicable agreement for further details.
14
 
15
 
16
-- Quartus II 7.1 Build 156 04/30/2007
17
 
18
 
19
LIBRARY IEEE;
20
use IEEE.STD_LOGIC_1164.all;
21
use IEEE.VITAL_Timing.all;
22
use work.cycloneiii_atom_pack.all;
23
 
24
package CYCLONEIII_COMPONENTS is
25
 
26
---------------------------------------------------------------------
27
--
28
-- Entity Name :  cycloneiii_ff
29
-- 
30
-- Description :  Cyclone III FF VHDL simulation model
31
--  
32
--
33
---------------------------------------------------------------------
34
 
35
component cycloneiii_ff
36
    generic (
37
             power_up : string := "low";
38
             x_on_violation : string := "on";
39
             lpm_type : string := "cycloneiii_ff";
40
             tsetup_d_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
41
             tsetup_asdata_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
42
             tsetup_sclr_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
43
             tsetup_sload_clk_noedge_posedge    : VitalDelayType := DefSetupHoldCnst;
44
             tsetup_ena_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
45
             thold_d_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
46
             thold_asdata_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
47
             thold_sclr_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
48
             thold_sload_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
49
             thold_ena_clk_noedge_posedge       : VitalDelayType := DefSetupHoldCnst;
50
             tpd_clk_q_posedge : VitalDelayType01 := DefPropDelay01;
51
             tpd_clrn_q_posedge : VitalDelayType01 := DefPropDelay01;
52
             tpd_aload_q_posedge : VitalDelayType01 := DefPropDelay01;
53
             tpd_asdata_q: VitalDelayType01 := DefPropDelay01;
54
             tipd_clk : VitalDelayType01 := DefPropDelay01;
55
             tipd_d : VitalDelayType01 := DefPropDelay01;
56
             tipd_asdata : VitalDelayType01 := DefPropDelay01;
57
             tipd_sclr : VitalDelayType01 := DefPropDelay01;
58
             tipd_sload : VitalDelayType01 := DefPropDelay01;
59
             tipd_clrn : VitalDelayType01 := DefPropDelay01;
60
             tipd_aload : VitalDelayType01 := DefPropDelay01;
61
             tipd_ena : VitalDelayType01 := DefPropDelay01;
62
             TimingChecksOn: Boolean := True;
63
             MsgOn: Boolean := DefGlitchMsgOn;
64
             XOn: Boolean := DefGlitchXOn;
65
             MsgOnChecks: Boolean := DefMsgOnChecks;
66
             XOnChecks: Boolean := DefXOnChecks;
67
             InstancePath: STRING := "*"
68
            );
69
 
70
    port (
71
          d : in std_logic := '0';
72
          clk : in std_logic := '0';
73
          clrn : in std_logic := '1';
74
          aload : in std_logic := '0';
75
          sclr : in std_logic := '0';
76
          sload : in std_logic := '0';
77
          ena : in std_logic := '1';
78
          asdata : in std_logic := '0';
79
          devclrn : in std_logic := '1';
80
          devpor : in std_logic := '1';
81
          q : out std_logic
82
         );
83
end component;
84
 
85
--
86
-- cycloneiii_ram_block
87
--
88
 
89
component cycloneiii_ram_block
90
  generic
91
    (
92
      operation_mode            : string := "single_port";
93
      mixed_port_feed_through_mode : string := "dont_care";
94
      ram_block_type            : string := "auto";
95
      logical_ram_name          : string := "ram_name";
96
      init_file                 : string := "init_file.hex";
97
      init_file_layout          : string := "none";
98
      data_interleave_width_in_bits : integer := 1;
99
      data_interleave_offset_in_bits : integer := 1;
100
      port_a_logical_ram_depth  : integer := 0;
101
      port_a_logical_ram_width  : integer := 0;
102
      port_a_address_clear      : string := "none";
103
      port_a_data_out_clock     : string := "none";
104
      port_a_data_out_clear     : string := "none";
105
      port_a_first_address      : integer := 0;
106
      port_a_last_address       : integer := 0;
107
      port_a_first_bit_number   : integer := 0;
108
      port_a_data_width         : integer := 1;
109
      port_a_data_in_clock      : string := "clock0";
110
      port_a_address_clock      : string := "clock0";
111
      port_a_write_enable_clock : string := "clock0";
112
      port_a_read_enable_clock : string := "clock0";
113
      port_a_byte_enable_clock  : string := "clock0";
114
      port_b_logical_ram_depth  : integer := 0;
115
      port_b_logical_ram_width  : integer := 0;
116
      port_b_data_in_clock      : string := "clock1";
117
      port_b_address_clock      : string := "clock1";
118
      port_b_address_clear      : string := "none";
119
      port_b_write_enable_clock: STRING := "clock1";
120
      port_b_read_enable_clock: STRING := "clock1";
121
      port_b_data_out_clock     : string := "none";
122
      port_b_data_out_clear     : string := "none";
123
      port_b_first_address      : integer := 0;
124
      port_b_last_address       : integer := 0;
125
      port_b_first_bit_number   : integer := 0;
126
      port_b_data_width         : integer := 1;
127
      port_b_byte_enable_clock  : string := "clock1";
128
      port_a_address_width      : integer := 1;
129
      port_b_address_width      : integer := 1;
130
      port_a_byte_enable_mask_width : integer := 1;
131
      port_b_byte_enable_mask_width : integer := 1;
132
      power_up_uninitialized    : string := "false";
133
       port_a_byte_size : integer := 0;
134
       port_b_byte_size : integer := 0;
135
      safe_write : string := "err_on_2clk";
136
      init_file_restructured : string := "unused";
137
      lpm_type                  : string := "cycloneiii_ram_block";
138
      lpm_hint                  : string := "true";
139
      clk0_input_clock_enable  : STRING := "none"; -- ena0,ena2,none
140
      clk0_core_clock_enable   : STRING := "none"; -- ena0,ena2,none
141
      clk0_output_clock_enable : STRING := "none"; -- ena0,none
142
      clk1_input_clock_enable  : STRING := "none"; -- ena1,ena3,none
143
      clk1_core_clock_enable   : STRING := "none"; -- ena1,ena3,none
144
      clk1_output_clock_enable : STRING := "none"; -- ena1,none
145
      port_a_read_during_write_mode  :  STRING  := "new_data_no_nbe_read";
146
      port_b_read_during_write_mode  :  STRING  := "new_data_no_nbe_read";
147
        mem_init0 : BIT_VECTOR  := X"0";
148
        mem_init1 : BIT_VECTOR  := X"0";
149
        mem_init2 : BIT_VECTOR := X"0";
150
        mem_init3 : BIT_VECTOR := X"0";
151
        mem_init4 : BIT_VECTOR := X"0";
152
        connectivity_checking     : string := "off"
153
        );
154
  port
155
    (
156
      portawe           : in std_logic := '0';
157
      portare           : in std_logic := '1';
158
      portabyteenamasks : in std_logic_vector (port_a_byte_enable_mask_width - 1 DOWNTO 0) := (others => '1');
159
      portbbyteenamasks : in std_logic_vector (port_b_byte_enable_mask_width - 1 DOWNTO 0) := (others => '1');
160
      portbre         : in std_logic := '1';
161
      portbwe         : in std_logic := '0';
162
      clr0              : in std_logic := '0';
163
      clr1              : in std_logic := '0';
164
      clk0              : in std_logic := '0';
165
      clk1              : in std_logic := '0';
166
      ena0              : in std_logic := '1';
167
      ena1              : in std_logic := '1';
168
      ena2              : in std_logic := '1';
169
      ena3              : in std_logic := '1';
170
      portadatain       : in std_logic_vector (port_a_data_width - 1 DOWNTO 0) := (others => '0');
171
      portbdatain       : in std_logic_vector (port_b_data_width - 1 DOWNTO 0) := (others => '0');
172
      portaaddr         : in std_logic_vector (port_a_address_width - 1 DOWNTO 0) := (others => '0');
173
      portbaddr         : in std_logic_vector (port_b_address_width - 1 DOWNTO 0) := (others => '0');
174
       portaaddrstall    : in std_logic := '0';
175
       portbaddrstall    : in std_logic := '0';
176
      devclrn           : in std_logic := '1';
177
      devpor            : in std_logic := '1';
178
      portadataout      : out std_logic_vector (port_a_data_width - 1 DOWNTO 0);
179
      portbdataout      : out std_logic_vector (port_b_data_width - 1 DOWNTO 0)
180
    );
181
end component;
182
 
183
 
184
--
185
-- CYCLONEIII_LCELL_COMB
186
--
187
 
188
component cycloneiii_lcell_comb
189
    generic (
190
             lut_mask : std_logic_vector(15 downto 0) := (OTHERS => '1');
191
             sum_lutc_input : string := "datac";
192
              dont_touch : string := "off";
193
             lpm_type : string := "cycloneiii_lcell_comb";
194
             TimingChecksOn: Boolean := True;
195
             MsgOn: Boolean := DefGlitchMsgOn;
196
             XOn: Boolean := DefGlitchXOn;
197
             MsgOnChecks: Boolean := DefMsgOnChecks;
198
             XOnChecks: Boolean := DefXOnChecks;
199
             InstancePath: STRING := "*";
200
             tpd_dataa_combout : VitalDelayType01 := DefPropDelay01;
201
             tpd_datab_combout : VitalDelayType01 := DefPropDelay01;
202
             tpd_datac_combout : VitalDelayType01 := DefPropDelay01;
203
             tpd_datad_combout : VitalDelayType01 := DefPropDelay01;
204
             tpd_cin_combout : VitalDelayType01 := DefPropDelay01;
205
             tpd_dataa_cout : VitalDelayType01 := DefPropDelay01;
206
             tpd_datab_cout : VitalDelayType01 := DefPropDelay01;
207
             tpd_datac_cout : VitalDelayType01 := DefPropDelay01;
208
             tpd_datad_cout : VitalDelayType01 := DefPropDelay01;
209
             tpd_cin_cout : VitalDelayType01 := DefPropDelay01;
210
             tipd_dataa : VitalDelayType01 := DefPropDelay01;
211
             tipd_datab : VitalDelayType01 := DefPropDelay01;
212
             tipd_datac : VitalDelayType01 := DefPropDelay01;
213
             tipd_datad : VitalDelayType01 := DefPropDelay01;
214
             tipd_cin : VitalDelayType01 := DefPropDelay01
215
            );
216
 
217
    port (
218
          dataa : in std_logic := '1';
219
          datab : in std_logic := '1';
220
          datac : in std_logic := '1';
221
          datad : in std_logic := '1';
222
          cin : in std_logic := '0';
223
          combout : out std_logic;
224
          cout : out std_logic
225
         );
226
 
227
end component;
228
 
229
 
230
--
231
-- CYCLONEIII_CLKCTRL
232
--
233
 
234
component cycloneiii_clkctrl
235
    generic (
236
             clock_type : STRING := "Auto";
237
             lpm_type : STRING := "cycloneiii_clkctrl";
238
             ena_register_mode : STRING := "Falling Edge";
239
             TimingChecksOn : Boolean := True;
240
             MsgOn : Boolean := DefGlitchMsgOn;
241
             XOn : Boolean := DefGlitchXOn;
242
             MsgOnChecks : Boolean := DefMsgOnChecks;
243
             XOnChecks : Boolean := DefXOnChecks;
244
             InstancePath : STRING := "*";
245
             tipd_inclk : VitalDelayArrayType01(3 downto 0) := (OTHERS => DefPropDelay01);
246
             tipd_clkselect : VitalDelayArrayType01(1 downto 0) := (OTHERS => DefPropDelay01);
247
             tipd_ena : VitalDelayType01 := DefPropDelay01
248
             );
249
    port (
250
          inclk       : in std_logic_vector(3 downto 0) := "0000";
251
          clkselect   : in std_logic_vector(1 downto 0) := "00";
252
          ena         : in std_logic := '1';
253
          devclrn     : in std_logic := '1';
254
          devpor      : in std_logic := '1';
255
          outclk      : out std_logic
256
         );
257
 
258
end component;
259
 
260
--
261
-- CYCLONEIII_ROUTING_WIRE
262
--
263
 
264
component cycloneiii_routing_wire
265
    generic (
266
             MsgOn : Boolean := DefGlitchMsgOn;
267
             XOn : Boolean := DefGlitchXOn;
268
             tpd_datain_dataout : VitalDelayType01 := DefPropDelay01;
269
             tpd_datainglitch_dataout : VitalDelayType01 := DefPropDelay01;
270
             tipd_datain : VitalDelayType01 := DefPropDelay01
271
            );
272
    PORT (
273
          datain : in std_logic;
274
          dataout : out std_logic
275
         );
276
end component;
277
 
278
--
279
-- CYCLONEIII_PLL
280
--
281
 
282
COMPONENT cycloneiii_pll
283
    GENERIC (
284
 
285
        operation_mode              : string := "normal";
286
        pll_type                    : string := "auto";  -- EGPP/FAST/AUTO
287
        compensate_clock            : string := "clock0";
288
 
289
        inclk0_input_frequency      : integer := 0;
290
        inclk1_input_frequency      : integer := 0;
291
 
292
        self_reset_on_loss_lock     : string  := "off";
293
        switch_over_type            : string  := "auto";
294
        switch_over_counter         : integer := 1;
295
        enable_switch_over_counter  : string := "off";
296
 
297
 
298
        bandwidth                    : integer := 0;
299
        bandwidth_type               : string  := "auto";
300
        use_dc_coupling              : string  := "false";
301
 
302
 
303
 
304
        lock_c                      : integer := 4;
305
        sim_gate_lock_device_behavior : string := "off";
306
        lock_high                   : integer := 0;
307
        lock_low                    : integer := 0;
308
        lock_window_ui              : string := "0.05";
309
        lock_window                 : time := 5 ps;
310
        test_bypass_lock_detect     : string := "off";
311
 
312
 
313
        clk0_output_frequency       : integer := 0;
314
        clk0_multiply_by            : integer := 0;
315
        clk0_divide_by              : integer := 0;
316
        clk0_phase_shift            : string := "0";
317
        clk0_duty_cycle             : integer := 50;
318
 
319
        clk1_output_frequency       : integer := 0;
320
        clk1_multiply_by            : integer := 0;
321
        clk1_divide_by              : integer := 0;
322
        clk1_phase_shift            : string := "0";
323
        clk1_duty_cycle             : integer := 50;
324
 
325
        clk2_output_frequency       : integer := 0;
326
        clk2_multiply_by            : integer := 0;
327
        clk2_divide_by              : integer := 0;
328
        clk2_phase_shift            : string := "0";
329
        clk2_duty_cycle             : integer := 50;
330
 
331
        clk3_output_frequency       : integer := 0;
332
        clk3_multiply_by            : integer := 0;
333
        clk3_divide_by              : integer := 0;
334
        clk3_phase_shift            : string := "0";
335
        clk3_duty_cycle             : integer := 50;
336
 
337
        clk4_output_frequency       : integer := 0;
338
        clk4_multiply_by            : integer := 0;
339
        clk4_divide_by              : integer := 0;
340
        clk4_phase_shift            : string := "0";
341
        clk4_duty_cycle             : integer := 50;
342
 
343
 
344
 
345
 
346
 
347
 
348
 
349
        pfd_min                     : integer := 0;
350
        pfd_max                     : integer := 0;
351
        vco_min                     : integer := 0;
352
        vco_max                     : integer := 0;
353
        vco_center                  : integer := 0;
354
 
355
        -- ADVANCED USER PARAMETERS
356
        m_initial                   : integer := 1;
357
        m                           : integer := 0;
358
        n                           : integer := 1;
359
 
360
        c0_high                     : integer := 1;
361
        c0_low                      : integer := 1;
362
        c0_initial                  : integer := 1;
363
        c0_mode                     : string := "bypass";
364
        c0_ph                       : integer := 0;
365
 
366
        c1_high                     : integer := 1;
367
        c1_low                      : integer := 1;
368
        c1_initial                  : integer := 1;
369
        c1_mode                     : string := "bypass";
370
        c1_ph                       : integer := 0;
371
 
372
        c2_high                     : integer := 1;
373
        c2_low                      : integer := 1;
374
        c2_initial                  : integer := 1;
375
        c2_mode                     : string := "bypass";
376
        c2_ph                       : integer := 0;
377
 
378
        c3_high                     : integer := 1;
379
        c3_low                      : integer := 1;
380
        c3_initial                  : integer := 1;
381
        c3_mode                     : string := "bypass";
382
        c3_ph                       : integer := 0;
383
 
384
        c4_high                     : integer := 1;
385
        c4_low                      : integer := 1;
386
        c4_initial                  : integer := 1;
387
        c4_mode                     : string := "bypass";
388
        c4_ph                       : integer := 0;
389
 
390
 
391
 
392
 
393
 
394
 
395
        m_ph                        : integer := 0;
396
 
397
        clk0_counter                : string := "unused";
398
        clk1_counter                : string := "unused";
399
        clk2_counter                : string := "unused";
400
        clk3_counter                : string := "unused";
401
        clk4_counter                : string := "unused";
402
 
403
        c1_use_casc_in              : string := "off";
404
        c2_use_casc_in              : string := "off";
405
        c3_use_casc_in              : string := "off";
406
        c4_use_casc_in              : string := "off";
407
 
408
        m_test_source               : integer := -1;
409
        c0_test_source              : integer := -1;
410
        c1_test_source              : integer := -1;
411
        c2_test_source              : integer := -1;
412
        c3_test_source              : integer := -1;
413
        c4_test_source              : integer := -1;
414
 
415
        vco_multiply_by             : integer := 0;
416
        vco_divide_by               : integer := 0;
417
        vco_post_scale              : integer := 1;
418
        vco_frequency_control       : string  := "auto";
419
        vco_phase_shift_step        : integer := 0;
420
 
421
        lpm_type                    : string := "cycloneiii_pll";
422
        charge_pump_current         : integer := 10;
423
        loop_filter_r               : string := "1.0";
424
        loop_filter_c               : integer := 0;
425
 
426
 
427
        pll_compensation_delay      : integer := 0;
428
        simulation_type             : string := "functional";
429
 
430
        clk0_use_even_counter_mode  : string := "off";
431
        clk1_use_even_counter_mode  : string := "off";
432
        clk2_use_even_counter_mode  : string := "off";
433
        clk3_use_even_counter_mode  : string := "off";
434
        clk4_use_even_counter_mode  : string := "off";
435
 
436
        clk0_use_even_counter_value : string := "off";
437
        clk1_use_even_counter_value : string := "off";
438
        clk2_use_even_counter_value : string := "off";
439
        clk3_use_even_counter_value : string := "off";
440
        clk4_use_even_counter_value : string := "off";
441
 
442
-- Test only
443
        init_block_reset_a_count    : integer := 1;
444
        init_block_reset_b_count    : integer := 1;
445
        charge_pump_current_bits : integer := 0;
446
        lock_window_ui_bits : integer := 0;
447
        loop_filter_c_bits : integer := 0;
448
        loop_filter_r_bits : integer := 0;
449
        test_counter_c0_delay_chain_bits : integer := 0;
450
        test_counter_c1_delay_chain_bits : integer := 0;
451
        test_counter_c2_delay_chain_bits : integer := 0;
452
        test_counter_c3_delay_chain_bits : integer := 0;
453
        test_counter_c4_delay_chain_bits : integer := 0;
454
        test_counter_c5_delay_chain_bits : integer := 0;
455
        test_counter_m_delay_chain_bits : integer := 0;
456
        test_counter_n_delay_chain_bits : integer := 0;
457
        test_feedback_comp_delay_chain_bits : integer := 0;
458
        test_input_comp_delay_chain_bits : integer := 0;
459
        test_volt_reg_output_mode_bits : integer := 0;
460
        test_volt_reg_output_voltage_bits : integer := 0;
461
        test_volt_reg_test_mode : string := "false";
462
        vco_range_detector_high_bits : integer := 0;
463
        vco_range_detector_low_bits : integer := 0;
464
--REM_MF        -- VITAL generics
465
--REM_MF        XOn                         : Boolean := DefGlitchXOn;
466
--REM_MF        MsgOn                       : Boolean := DefGlitchMsgOn;
467
--REM_MF        MsgOnChecks                 : Boolean := DefMsgOnChecks;
468
--REM_MF        XOnChecks                   : Boolean := DefXOnChecks;
469
--REM_MF        TimingChecksOn              : Boolean := true;
470
--REM_MF        InstancePath                : STRING := "*";
471
--REM_MF        tipd_inclk                  : VitalDelayArrayType01(1 downto 0) := (OTHERS => DefPropDelay01);
472
--REM_MF        tipd_ena                    : VitalDelayType01 := DefPropDelay01;
473
--REM_MF        tipd_pfdena                 : VitalDelayType01 := DefPropDelay01;
474
--REM_MF        tipd_areset                 : VitalDelayType01 := DefPropDelay01;
475
--REM_MF       tipd_fbin                   : VitalDelayType01 := DefPropDelay01;
476
--REM_MF       tipd_scanclk                : VitalDelayType01 := DefPropDelay01;
477
--REM_MF       tipd_scanclkena             : VitalDelayType01 := DefPropDelay01;
478
--REM_MF       tipd_scandata               : VitalDelayType01 := DefPropDelay01;
479
--REM_MF       tipd_configupdate           : VitalDelayType01 := DefPropDelay01;
480
--REM_MF       tipd_clkswitch              : VitalDelayType01 := DefPropDelay01;
481
--REM_MF       tipd_phaseupdown            : VitalDelayType01 := DefPropDelay01;
482
--REM_MF       tipd_phasecounterselect     : VitalDelayArrayType01(2 DOWNTO 0) := (OTHERS => DefPropDelay01);
483
--REM_MF       tipd_phasestep              : VitalDelayType01 := DefPropDelay01;
484
--REM_MF       tsetup_scandata_scanclk_noedge_negedge : VitalDelayType := DefSetupHoldCnst;
485
--REM_MF       thold_scandata_scanclk_noedge_negedge  : VitalDelayType := DefSetupHoldCnst;
486
--REM_MF       tsetup_scanclkena_scanclk_noedge_negedge : VitalDelayType := DefSetupHoldCnst;
487
--REM_MF       thold_scanclkena_scanclk_noedge_negedge  : VitalDelayType := DefSetupHoldCnst;
488
        use_vco_bypass              : string := "false"
489
            );
490
 
491
    PORT    (
492
        inclk                       : in std_logic_vector(1 downto 0);
493
        fbin                         : in std_logic := '0';
494
        fbout                        : out std_logic;
495
        clkswitch                   : in std_logic := '0';
496
        areset                      : in std_logic := '0';
497
        pfdena                      : in std_logic := '1';
498
        scandata                    : in std_logic := '0';
499
        scanclk                     : in std_logic := '0';
500
        scanclkena                  : in std_logic := '0';
501
        configupdate                : in std_logic := '0';
502
        clk                         : out std_logic_vector(4 downto 0);
503
        phasecounterselect          : in std_logic_vector(2 downto 0) := "000";
504
        phaseupdown                 : in std_logic := '0';
505
        phasestep                   : in std_logic := '0';
506
        clkbad                      : out std_logic_vector(1 downto 0);
507
        activeclock                 : out std_logic;
508
        locked                      : out std_logic;
509
        scandataout                 : out std_logic;
510
        scandone                    : out std_logic;
511
        phasedone                   : out std_logic;
512
        vcooverrange                : out std_logic;
513
        vcounderrange               : out std_logic
514
 
515
            );
516
END COMPONENT;
517
--
518
-- cycloneiii_mac_mult
519
--
520
 
521
component cycloneiii_mac_mult
522
    GENERIC (
523
             TimingChecksOn : Boolean := True;
524
             MsgOn : Boolean := DefGlitchMsgOn;
525
             XOn : Boolean := DefGlitchXOn;
526
             MsgOnChecks : Boolean := DefMsgOnChecks;
527
             XOnChecks : Boolean := DefXOnChecks;
528
             InstancePath : STRING := "*";
529
             dataa_width : integer := 18;
530
             datab_width : integer := 18;
531
             dataa_clock : string := "none";
532
             datab_clock : string := "none";
533
             signa_clock : string := "none";
534
             signb_clock : string := "none";
535
             lpm_hint : string := "true";
536
             lpm_type : string := "cycloneiii_mac_mult"
537
            );
538
    PORT (
539
          dataa : IN std_logic_vector(dataa_width-1 DOWNTO 0) := (OTHERS => '0');
540
          datab : IN std_logic_vector(datab_width-1 DOWNTO 0) := (OTHERS => '0');
541
          signa : IN std_logic := '1';
542
          signb : IN std_logic := '1';
543
          clk : IN std_logic := '0';
544
          aclr : IN std_logic := '0';
545
          ena : IN std_logic := '1';
546
          dataout : OUT std_logic_vector((dataa_width+datab_width)-1 DOWNTO 0);
547
          devclrn : IN std_logic := '1';
548
          devpor : IN std_logic := '1'
549
         );
550
end component;
551
 
552
--
553
-- cycloneiii_mac_out
554
--
555
 
556
component cycloneiii_mac_out
557
    GENERIC (
558
             TimingChecksOn : Boolean := True;
559
             MsgOn : Boolean := DefGlitchMsgOn;
560
             XOn : Boolean := DefGlitchXOn;
561
             MsgOnChecks : Boolean := DefMsgOnChecks;
562
             XOnChecks : Boolean := DefXOnChecks;
563
             InstancePath : STRING := "*";
564
             tipd_dataa : VitalDelayArrayType01(35 downto 0)
565
                                   := (OTHERS => DefPropDelay01);
566
             tipd_clk : VitalDelayType01 := DefPropDelay01;
567
             tipd_ena : VitalDelayType01 := DefPropDelay01;
568
             tipd_aclr : VitalDelayType01 := DefPropDelay01;
569
             tpd_dataa_dataout : VitalDelayType01 := DefPropDelay01;
570
             tpd_aclr_dataout_posedge : VitalDelayType01 := DefPropDelay01;
571
             tpd_clk_dataout_posedge : VitalDelayType01 := DefPropDelay01;
572
             tsetup_dataa_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
573
             thold_dataa_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
574
             tsetup_ena_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
575
             thold_ena_clk_noedge_posedge : VitalDelayType := DefSetupHoldCnst;
576
             dataa_width                    :  integer := 1;
577
             output_clock                   :  string := "none";
578
             lpm_hint                       :  string := "true";
579
             lpm_type                       :  string := "cycloneiii_mac_out"
580
            );
581
    PORT (
582
          dataa : IN std_logic_vector(dataa_width-1  DOWNTO 0) := (OTHERS => '0');
583
          clk : IN std_logic := '0';
584
          aclr : IN std_logic := '0';
585
          ena : IN std_logic := '1';
586
          dataout : OUT std_logic_vector(dataa_width-1  DOWNTO 0);
587
          devclrn : IN std_logic := '1';
588
          devpor : IN std_logic := '1'
589
         );
590
end component;
591
 
592
COMPONENT cycloneiii_termination
593
    GENERIC (
594
         pullup_control_to_core:  string := "false";
595
         power_down            :  string := "true";
596
         test_mode             :  string := "false";
597
         left_shift_termination_code :  string := "false";
598
         pullup_adder          :  integer := 0;
599
         pulldown_adder        :  integer := 0;
600
         clock_divide_by      :  integer := 32;    --  1, 4, 32
601
         runtime_control       :  string := "false";
602
         shift_vref_rup        :  string := "true";
603
         shift_vref_rdn        :  string := "true";
604
         shifted_vref_control  :  string := "true";
605
         lpm_type              :  string := "cycloneiii_termination");
606
    PORT (
607
        rup                     : IN std_logic := '0';
608
        rdn                     : IN std_logic := '0';
609
        terminationclock        : IN std_logic := '0';
610
        terminationclear        : IN std_logic := '0';
611
        devpor                  : IN std_logic := '1';
612
        devclrn                 : IN std_logic := '1';
613
        comparatorprobe         : OUT std_logic;
614
        terminationcontrolprobe : OUT std_logic;
615
        calibrationdone         : OUT std_logic;
616
        terminationcontrol      : OUT std_logic_vector(15 DOWNTO 0));
617
END COMPONENT;
618
--
619
-- CYCLONEIII_IO_IBUF
620
--
621
 
622
COMPONENT cycloneiii_io_ibuf
623
    GENERIC (
624
             tipd_i                  : VitalDelayType01 := DefPropDelay01;
625
             tipd_ibar               : VitalDelayType01 := DefPropDelay01;
626
             tpd_i_o                 : VitalDelayType01 := DefPropDelay01;
627
             tpd_ibar_o              : VitalDelayType01 := DefPropDelay01;
628
             XOn                           : Boolean := DefGlitchXOn;
629
             MsgOn                         : Boolean := DefGlitchMsgOn;
630
             differential_mode       :  string := "false";
631
             bus_hold                :  string := "false";
632
             lpm_type                :  string := "cycloneiii_io_ibuf"
633
            );
634
    PORT (
635
          i                       : IN std_logic := '0';
636
          ibar                    : IN std_logic := '0';
637
          o                       : OUT std_logic
638
         );
639
END COMPONENT;
640
 
641
--
642
-- CYCLONEIII_IO_OBUF
643
--
644
 
645
COMPONENT cycloneiii_io_obuf
646
    GENERIC (
647
             tipd_i                           : VitalDelayType01 := DefPropDelay01;
648
             tipd_oe                          : VitalDelayType01 := DefPropDelay01;
649
             tpd_i_o                          : VitalDelayType01 := DefPropDelay01;
650
             tpd_oe_o                         : VitalDelayType01 := DefPropDelay01;
651
             tpd_i_obar                       : VitalDelayType01 := DefPropDelay01;
652
             tpd_oe_obar                      : VitalDelayType01 := DefPropDelay01;
653
             XOn                           : Boolean := DefGlitchXOn;
654
             MsgOn                         : Boolean := DefGlitchMsgOn;
655
             open_drain_output                :  string := "false";
656
             bus_hold                         :  string := "false";
657
             lpm_type                         :  string := "cycloneiii_io_obuf"
658
            );
659
    PORT (
660
           i                       : IN std_logic := '0';
661
           oe                      : IN std_logic := '1';
662
           seriesterminationcontrol    : IN std_logic_vector(15 DOWNTO 0) := (others => '0');
663
           devoe                   : IN std_logic := '1';
664
           o                       : OUT std_logic;
665
           obar                    : OUT std_logic
666
         );
667
END COMPONENT;
668
 
669
 
670
 
671
--
672
-- CYCLONEIII_DDIO_OE
673
--
674
 
675
COMPONENT cycloneiii_ddio_oe
676
    generic(
677
            tipd_oe                        : VitalDelayType01 := DefPropDelay01;
678
            tipd_clk                           : VitalDelayType01 := DefPropDelay01;
679
            tipd_ena                           : VitalDelayType01 := DefPropDelay01;
680
            tipd_areset                        : VitalDelayType01 := DefPropDelay01;
681
            tipd_sreset                        : VitalDelayType01 := DefPropDelay01;
682
            XOn                                : Boolean := DefGlitchXOn;
683
            MsgOn                              : Boolean := DefGlitchMsgOn;
684
            power_up              :  string := "low";
685
            async_mode            :  string := "none";
686
            sync_mode             :  string := "none";
687
            lpm_type              :  string := "cycloneiii_ddio_oe"
688
           );
689
 
690
    PORT (
691
          oe                      : IN std_logic := '1';
692
          clk                     : IN std_logic := '0';
693
          ena                     : IN std_logic := '1';
694
          areset                  : IN std_logic := '0';
695
          sreset                  : IN std_logic := '0';
696
          dataout                 : OUT std_logic;
697
          dfflo                   : OUT std_logic;
698
          dffhi                   : OUT std_logic;
699
          devclrn                 : IN std_logic := '1';
700
          devpor                  : IN std_logic := '1'
701
         );
702
END COMPONENT;
703
--
704
-- CYCLONEIII_DDIO_OUT
705
--
706
 
707
COMPONENT cycloneiii_ddio_out
708
    generic(
709
            tipd_datainlo                      : VitalDelayType01 := DefPropDelay01;
710
            tipd_datainhi                      : VitalDelayType01 := DefPropDelay01;
711
            tipd_clk                           : VitalDelayType01 := DefPropDelay01;
712
            tipd_ena                           : VitalDelayType01 := DefPropDelay01;
713
            tipd_areset                        : VitalDelayType01 := DefPropDelay01;
714
            tipd_sreset                        : VitalDelayType01 := DefPropDelay01;
715
            XOn                                : Boolean := DefGlitchXOn;
716
            MsgOn                              : Boolean := DefGlitchMsgOn;
717
            power_up                           :  string := "low";
718
            async_mode                         :  string := "none";
719
            sync_mode                          :  string := "none";
720
            lpm_type                           :  string := "cycloneiii_ddio_out"
721
           );
722
    PORT (
723
          datainlo                : IN std_logic := '0';
724
          datainhi                : IN std_logic := '0';
725
          clk                     : IN std_logic := '0';
726
          ena                     : IN std_logic := '1';
727
          areset                  : IN std_logic := '0';
728
          sreset                  : IN std_logic := '0';
729
          dataout                 : OUT std_logic;
730
          dfflo                   : OUT std_logic;
731
          dffhi                   : OUT std_logic ;
732
          devclrn                 : IN std_logic := '1';
733
          devpor                  : IN std_logic := '1'
734
        );
735
END COMPONENT;
736
 
737
 
738
--
739
-- CYCLONEIII_IO_PAD
740
--
741
component cycloneiii_io_pad
742
 
743
        generic (
744
                lpm_type : STRING := "cycloneiii_io_pad"
745
                );
746
        PORT (
747
                padin : in std_logic := '1';
748
                padout: out std_logic
749
             );
750
end component;
751
--
752
--
753
--  CYCLONEIII_RUBLOCK
754
--
755
--
756
 
757
component  cycloneiii_rublock
758
        generic
759
        (
760
                sim_init_config                 : string := "factory";
761
                sim_init_watchdog_value : integer := 0;
762
                sim_init_status                 : integer := 0;
763
                lpm_type: string := "cycloneiii_rublock"
764
        );
765
        port
766
        (
767
                clk             : in std_logic;
768
                shiftnld        : in std_logic;
769
                captnupdt       : in std_logic;
770
                regin           : in std_logic;
771
                rsttimer        : in std_logic;
772
                rconfig         : in std_logic;
773
                regout          : out std_logic
774
        );
775
end component;
776
 
777
--
778
--
779
--  CYCLONEIII_APFCONTROLLER
780
--
781
--
782
 
783
component  cycloneiii_apfcontroller
784
        generic
785
        (
786
                lpm_type: string := "cycloneiii_apfcontroller"
787
        );
788
        port
789
        (
790
                usermode  : out std_logic;
791
                nceout  : out std_logic
792
        );
793
end component;
794
 
795
--
796
-- CYCLONEIII_JTAG
797
--
798
 
799
component  cycloneiii_jtag
800
    generic (
801
            lpm_type    : string := "cycloneiii_jtag"
802
            );
803
    port    (
804
            tms : in std_logic := '0';
805
            tck : in std_logic := '0';
806
            tdi : in std_logic := '0';
807
--REM_CYCyclone III            ntrst : in std_logic := '0'; 
808
            tdoutap : in std_logic := '0';
809
            tdouser : in std_logic := '0';
810
            tdo: out std_logic;
811
            tmsutap: out std_logic;
812
            tckutap: out std_logic;
813
            tdiutap: out std_logic;
814
            shiftuser: out std_logic;
815
            clkdruser: out std_logic;
816
            updateuser: out std_logic;
817
            runidleuser: out std_logic;
818
            usr1user: out std_logic
819
            );
820
end component;
821
 
822
--
823
--
824
--  CYCLONEIII_CRCBLOCK 
825
--
826
--
827
 
828
component  cycloneiii_crcblock
829
    generic (
830
            oscillator_divider : integer := 1;
831
            lpm_type : string := "cycloneiii_crcblock"
832
            );
833
        port    (
834
            clk         : in std_logic := '0';
835
            shiftnld    : in std_logic := '0';
836
            ldsrc       : in std_logic := '0';
837
            crcerror    : out std_logic;
838
            regout      : out std_logic
839
            );
840
end component;
841
--
842
--
843
--  CYCLONEIII_OSCILLATOR
844
--
845
--
846
 
847
component  cycloneiii_oscillator
848
        generic
849
        (
850
                lpm_type: string := "cycloneiii_oscillator"
851
        );
852
        port
853
        (
854
                oscena          : in std_logic;
855
                clkout          : out std_logic
856
        );
857
end component;
858
 
859
 
860
end cycloneiii_components;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.