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;

これは私のコードで、出力ピンの下の 2 行で 1 ビットのリップル カウンターが作成されますが、最初のフリップフロップの出力を 2 番目のフリップフロップのクロック入力に転送する方法がわかりません。私がプログラムしようとしているチップは、Atmel ATF750C チップです。

4

3 に答える 3

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 出力が得られます。

于 2011-11-06T00:57:34.167 に答える
0

/******** 出力ピン **********/

PIN 14 = Q1.d;

PIN 15 = Q2.d;

Q1.ck = クロック;

!Q1.d = Q1;

Q2.ck = !Q1;

!Q2.d = Q2;

これにより、D フリップフロップを使用してバイナリでカウントアップする非同期リップル カウンターが作成されます。

于 2010-06-11T14:27:16.910 に答える
0

Wincupl は一種のプリミティブな vhdl ですが、私は今それを理解しました。出力変数に「.d」を追加し、クロックをピン #1 とグラウンド ピン #11 に接続するだけでした。そして、すべてを理解するために、GAL16v8 と WinCUPL のドキュメントに詳しくなる必要がありました。

于 2010-06-07T17:31:03.583 に答える