/* 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位纹波计数器,但我不确定如何将第一个触发器的输出转换为第二个触发器的时钟输入。我要编程的芯片是爱特梅尔公司的ATF750C芯片。
发布于 2011-11-06 08:57:34
该器件不允许对各个触发器进行单独的时钟定义。输入到引脚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位的波纹二进制计数器/分频器。例如:一个8 1MHz的时钟输入将被8分频,从而在每个Q引脚上产生4个移位的1 1MHz输出。
发布于 2010-06-08 01:31:04
Wincupl是一种原始的vhdl,但我现在已经弄明白了。我只需将".d“附加到我的输出变量,然后将我的时钟附加到引脚#1和接地引脚#11。是的,我确实必须熟悉GAL16v8和WinCUPL文档才能弄清楚这一切。
发布于 2010-06-11 22:27:17
/********输出引脚*/
引脚14 = Q1.d;
引脚15 = Q2.d;
Q1.ck =时钟;
!Q1.d = Q1;
Q2.ck = !Q1;
!Q2.d = Q2;
这将创建一个异步纹波计数器,该计数器使用D触发器以二进制方式递增计数。
https://stackoverflow.com/questions/2991701
复制相似问题