|
- // test comment
- /* test comment */
- library(demo) {
- type (bus4) {
- base_type : array;
- data_type : bit;
- bit_width : 4;
- bit_from : 0;
- bit_to : 3;
- }
- cell(BUF) {
- area: 2;
- pin(A) { direction: input; }
- pin(Y) { direction: output;
- function: "A"; }
- }
- cell(NOT) {
- area: 2;
- pin(A) { direction: input; }
- pin(Y) { direction: output;
- function: "A'"; }
- }
- cell(XOR) {
- area: 100;
- pin(A) { direction: input; }
- pin(B) { direction: input; }
- pin(Y) { direction: output;
- function: "(A^B)"; }
- }
- // not used, see -g option of abc http://www.clifford.at/yosys/cmd_abc.html
- cell(XORDUAL) {
- area: 2;
- pin(A) { direction: input; }
- pin(B) { direction: input; }
- pin(C) { direction: input; }
- pin(D) { direction: input; }
- pin(Y) { direction: output;
- function: "(A^B)"; }
- pin(Z) { direction: output;
- function: "(C^D)"; }
- }
- cell(XOR2) {
- area: 2;
- bus(I1) {
- bus_type : bus4;
- direction : input;
- }
- bus(I2) {
- bus_type : bus4;
- direction : input;
- }
- bus(Y) {
- bus_type : bus4;
- direction : output;
- pin (Y[0:3]) {
- function: "(I1^I2)";
- }
- }
- }
- cell(NAND) {
- area: 2;
- pin(A) { direction: input; }
- pin(B) { direction: input; }
- pin(Y) { direction: output;
- function: "(A*B)'"; }
- }
- cell(NOR) {
- area: 2;
- pin(A) { direction: input; }
- pin(B) { direction: input; }
- pin(Y) { direction: output;
- function: "(A+B)'"; }
- }
- cell(DFF) {
- area: 2;
- ff(IQ, IQN) { clocked_on: C;
- next_state: D; }
- pin(C) { direction: input;
- clock: true; }
- pin(D) { direction: input; }
- pin(Q) { direction: output;
- function: "IQ"; }
- }
- cell(DFFSR) {
- area: 2;
- ff("IQ", "IQN") { clocked_on: C;
- next_state: D;
- preset: S;
- clear: R; }
- pin(C) { direction: input;
- clock: true; }
- pin(D) { direction: input; }
- pin(Q) { direction: output;
- function: "IQ"; }
- pin(S) { direction: input; }
- pin(R) { direction: input; }
- ; // empty statement
- }
- }
|