Replies: 1 comment 4 replies
-
This is currently not possible, see also here. |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Based on how I read the 16v8 documentation I expect that it can handle more then 8 input. Of course I need to scarify an output for each I/O pin used as input.
The following expressions can be successfully synthesized with: expression -> create logic -> analyze -> 16v8/CUPL
let Zn = Z0 * Zi * ~flgLd | Z0 * flgLd | cf1 * cf0 * flgLd;
let Sn = Si * ~flgLd | S0 * flgLd;
let Vn = V0 ^ Vi * ~flgLd | V0 * flgLd | cf1 * cf0 * flgLd;
let Cn = Ci * ~flgLd * (cf1 | cf0) | C0 * (flgLd | (~cf1 * ~cf0));
let C = ~cf0 * cf1 | C0 * cf0 * cf1;
this results in the following CUPL.PLD file
Name flags.dig ;
PartNo 00 ;
Date 29.11.2021 ;
Revision 01 ;
Designer xxx ;
Company unknown ;
Assembly None ;
Location unknown ;
Device g16v8a ;
/* inputs */
PIN 1 = CLK;
PIN 2 = Ci;
PIN 3 = Si;
PIN 4 = Vi;
PIN 5 = Zi;
PIN 6 = cf0;
PIN 7 = cf1;
PIN 8 = flgLd;
/* outputs */
PIN 12 = Zn;
PIN 13 = Sn;
PIN 14 = Vn;
PIN 15 = Cn;
PIN 16 = C;
/* sequential logic */
Cn.D = (Ci & cf1 & !flgLd) # (Ci & cf0 & !flgLd) # (Cn & !cf0 & !cf1) # (Cn & flgLd);
Sn.D = (Si & !flgLd) # (Vn & flgLd);
Vn.D = (Sn & flgLd) # (Vi & !flgLd);
Zn.D = (Zi & Zn) # (Zn & flgLd) # (cf0 & cf1 & flgLd);
/* combinatorial logic */
C = (Cn & cf1) # (!cf0 & cf1)
once I add a 5th expression
let Zn = Z0 * Zi * ~flgLd | Z0 * flgLd | cf1 * cf0 * flgLd;
let Sn = Si * ~flgLd | S0 * flgLd;
let Vn = V0 ^ Vi * ~flgLd | V0 * flgLd | cf1 * cf0 * flgLd;
let Cn = Ci * ~flgLd * (cf1 | cf0) | C0 * (flgLd | (~cf1 * ~cf0));
let C = ~cf0 * cf1 | C0 * cf0 * cf1;
let we = ~wp * ~regLd
I'll get: Error during creation of hardware configuration. Too many input used!
What do I need to do that digital uses one of the I/O pins as input?
Beta Was this translation helpful? Give feedback.
All reactions