You are here

Die Verdrahtung der drei CPLDs

Error message

Deprecated function: Array and string offset access syntax with curly braces is deprecated in include_once() (line 20 of /mnt/web216/e3/48/5667948/htdocs/includes/file.phar.inc).

Die Verdrahtung der CPLDs

Auf dem Prototypenboard sind dei dre CPLDs nur über Steckbrücken verbunden. Leiterbahnen liegen keine. Das einzige, was jeder Anschluß hat, ist ein Pull-Up-Widerstand. Dadurch sind alle Eingange auf einem definierten Pegel. Eingange können daher auch absichtlich offen gelassen werden; sie nehmen dann High-Pegel an.

Im Constraint-Editor wurde bereits festgelegt, auf welchem Pin ein Signal auf einem CPLD liegt. Im folgenden nochmal die drei Constraint-Files der Reihe nach für den Vorteiler, für die Ablaufsteuerung mit Zeitbasis und für den Hauptzähler:

  1. # Prescaler - IC 1
  2. #
  3. NET "clk" LOC = "P1" | BUFG = CLK ; # to reference oscillator (10 MHz)
  4. NET "clk1000" LOC = "P28" ; # to Pin 43 of IC2 (clk_ref)
  5. NET "en" LOC = "P7" ; # open
  6. NET "reset" LOC = "P33" | BUFG = SR ; # to GND
  1. # Controller and Timebase - IC2
  2. #
  3. NET "clk_ref" LOC = "P43" | BUFG = CLK ; # to Pin 28 of IC1 (clk1000)
  4. NET "cnt_reset" LOC = "P32" ; # to Pin 33 of IC3 (reset)
  5. NET "counting" LOC = "P5" ; # to Pin 7 of IC3 (en)
  6. NET "data_ack" LOC = "P2" ; # to ATmega8 - active low
  7. NET "data_ready" LOC = "P3" ; # to ATmega8 - active low
  8. NET "reset" LOC = "P33" | BUFG = SR ; # connected to GND via reset switch
  9. NET "sel_tb<0>" LOC = "P6" ; # to GND --> 1 second
  10. NET "sel_tb<1>" LOC = "P7" ; # opne --> 1 second
  11. NET "shift_load" LOC = "P28" ; # to Pin 28 of IC3 (load)
  1. # Main Counter and Latch - IC3
  2. #
  3. NET "clk" LOC = "P43" | BUFG = CLK ; # to preamplifier
  4. NET "en" LOC = "P7" ; # to Pin 5 of IC2 (counting)
  5. NET "load" LOC = "P28" ; # to Pin 28 of IC2 (shift_load)
  6. NET "miso" LOC = "P31" ; # to ATmega8
  7. NET "mosi" LOC = "P32" ; # open
  8. NET "reset" LOC = "P33" | BUFG = SR ; # to P32 of IC2 (cnt_reset)
  9. NET "sck" LOC = "P1" | BUFG = CLK ; # to ATmega8
  10. NET "sel" LOC = "P30" ; # to ATmega8

Im Grunde ist es natürlich möglich, alles in einem einzigen CPLD unterzubringen. Allerdings reicht ein XC9572XL dann nicht mehr. Es wäre dann ein XC95144XL erforderlich, der für den Bastler nur schwierig zu löten ist.