2010-06-07 68 views
0
/* INPUT PINS */ 

PIN 1 = clock; /* clock input*/ 

/**************** OUTPUT PINS *********************/ 

PIN 14 = Q1 ; /*output*/ 

PIN 15 = Q2 ; /*output*/ 

Q1.ck = clock; 

Q1.d = !Q1; 

Q2.d = !Q2; 

這是我的代碼和下面的兩行輸出引腳產生1位脈動計數器,但我不能確定如何在第一觸發器的輸出傳遞到是第二個觸發器的時鐘輸入。我試圖編程的芯片是Atmel ATF750C芯片。在WinCupl製作一個簡單的2位異步計數器

+0

這是Atmel稱爲Wincupl的PLD。 – 2010-06-07 17:41:32

回答

0

Wincupl是一種原始的vhdl,但我現在已經想通了。我只需要將「.d」附加到我的輸出變量中,然後將我的時鐘附加到引腳#1和接地引腳#11。是的,我確實需要與GAL16v8和WinCUPL文檔保持密切關係才能把它全部弄清楚。

0

/********輸出PINS **********/

PIN 14 = Q1.d;

PIN 15 = Q2.d;

Q1.ck = clock;

!Q1.d = Q1;

Q2.ck =!Q1;

!Q2.d = Q2;

這創建了一個異步波紋計數器,使用D觸發器以二進制數進行計數。

+0

然而,即使它在仿真中工作,它仍然存在問題,它不能在芯片本身上工作。我不知道爲什麼。 – 2010-06-15 14:25:13

1

該器件不允許單獨的觸發器單獨的時鐘定義。輸入到引腳1的時鐘是設備中所有觸發器的共享時鐘。你可以嘗試,而不是執行以下操作:

Device = G16V8; 

/* Inputs */ 

Pin 1 = CLK; /* clock source */ 

Pin 11 = GND; /* ground this for registered operation */ 

/* Outputs */ 

Pin 12 = Q0; 

Pin 13 = Q1; 

Pin 14 = Q2; 

Pin 15 = Q3; 

/* Equations */ 

!Q0.d = !Q3; 

Q0.oe = 'b'1; /* output enabled - also default */ 

!Q1.d = Q0; 

Q1.oe = 'b'1; /* output enabled - also default */ 

!Q2.d = Q1; 

Q2.oe = 'b'1; /* output enabled - also default */ 

!Q3.d = Q2; 

Q3.oe = 'b'1; /* output enabled - also default */ 

注:以上例子將提供一個4位紋波二進制計數器/除法。例如:一個8MHz的時鐘輸入將被8分頻,每個Q引腳產生4個移位的1MHz輸出。