Шукати в цьому блозі

пʼятниця, 3 серпня 2012 р.

PDM ( Pulse density modulation ) controller, besed on error diffusion algorithm ( Part II ).


 PDM контроллер на основі алгоритму дефузії помилки.

[1] http://www.icct.ru/Practicality/Papers/01-11-2010/Invertor-03.php

Модуляція щільності  іимпульсів (PDM – Pulse Density Modulation)

Проект розроблено в Altera MAX+plusII. 
Download project  -->  PDM_error_diffusion.rar

Схему принципову PDM модулятора на основі алгоритма дефузії помилки було розроблено на основі інформації [1]. Де алгоритм роботи дуже детально описаний. Цей алгоритм був реалізований в статті на базі мікроконтроллера. Тому в цій статті буде запропонована схема рис.1 реалізації алгоритму для CPLD/FPGA фирми Аltera. Запропонована реалізація схеми вийшла достатньо компактною тому для  синтезу схеми в конкретну CPLD достатньо серії MAX3064


Рис.1 Схема принципова модулятора PDM на основі алгоритму дифузії помилки

 Як і в [1] попередній розрахунок було проведено в Excel, файл error_diffusion.xls проекту доданий в архів. На рис. 2  наведено алгоритм роботи і часова діаграма симуляції проекту, з якого видно що при вхідному значенні 60 в комірці С4, бітова комбінація на виході модулятора стовпчик G ( позначено 4) співпадає з результатами часової діагарми, яка наведена під таблицею.


Рис.2 Таблиця із роботою алгоритма і часовою діаграмою.

 Для синхронізації елементів схеми , алгоритм роботи  було розбито на 4 кроки, відповідно в схемі було введено елемент лічильник prog_counter як мікропрограмний автомат, який синхронізує всі елементи схеми. При цьому вихідна частота модулятора в чотири рази менша  в порівнянні із вхідною частотою. Тобто на один вихідний імпульс витрачається чотири вхідних.

Алгоритм роботи (псевдокод):
Крок1. Додаєм вхідне значення із значенням яке записане в регістрі помилки(dff_pdm елемент схеми), якщо  в регістрі значення <149 . Якщо значення в регістрі >149 тобто записане відємне число, тоді віднімаєм від вхідного значення ,  яке записане в регістр помилки, але при цьому число інвертується і додається 1.
Крок2-3. Первірка якщо результат після Кроку1, >50 тоді відняти 100 , якщо <50 і >149 тоді відняти 0.
Крок4. Запис результату в регістр помилки після Кроку2-3.


Simple PDM ( Pulse Density Modulation ) controller on CPLD ( Part I ).



Простий PDM (Модуляція щільності імпульсів) контроллер на CPLD MAX3000 Altera.

[1] http://www.icct.ru/Practicality/Papers/01-11-2010/Invertor-03.php
Модуляція щільності імпульсів (PDM – Pulse Density Modulation)

Проект розроблено в Altera MAX+plusII. 
Download project  -->  PDM.rar

В [1] описано дуже детально принцип функціонування PDM і реалізація модулятора на базі мікроконтроллера. В даній статті приведена розроблена схема простого PDM модулятора на основі CPLD Altera  із довжиною кадра в 127 імпульсів. Принципова схема приведена на рис.1. 

Рис. 1 

Основний принцип роботи PDM це рівномірний розподіл вказаної кількості імпульсів по всій довжині кадру. Тому самий простий алгортм роботи пристрою буде, полягати у визначенні кількості кроків - імпульсів "0" між імпульсами "1". Розрахунок було проведено в програмі Excel  файл  проекту pulse_density_moduletion.xls в архіві pdm.rar. На рис.2 зображена таблиця розрахунку і відповідна часова діаграма роботи пристрою. Із за округлення значень  стовпчика D і запису результату в стовпчик F , відповідно в стовпчику G приведеныі значення похибок які потім і  впливають на нерівномірність розподілу. Це видно із результату обчислення і наведеної часвої діаграми для вхідного значення 16 модулятора  PDM. 127/16= 7,9375, після округлення крок між сусідніми імпульсами буде 7 імпульсів, при цьому після 16 імпульсів із значенням "1", буде додано ще 15 "0"-их імпульсів. 

Рис. 2
Схема розроблена так, що вхідні значення відповідають відповідним значенням кроків між імпульсами і записані в таблицю, елемент проекту input_table. При цьому нам потрібно тільки значення першої половини таблиці тобто для довжини кадру в 127 імпульсів нам потрібно від 0 до 63 елементу. Іншу частину результатів можна отримати інвертувавши результат, і  перепризначивши другу половини вхідних значень до першої на рис.2 це стовпчик A і B за це відповідає елемент схеми input_table_inv. Переконатись що такий метод дієвий і працює можна із результатів симуляції схеми на наведених нижче рисунках часових діаграм рис.3 - рис.11. 




Рис. 3




Рис. 4




Рис. 5




Рис. 6




Рис. 7





Рис. 8





Рис. 9 




Рис. 10  



 Рис. 11



понеділок, 16 липня 2012 р.

Multi-functional Stepper Motor Controller ( Unipolar and Bipolar ) on FPGA/CPLDs


Використані матеріали:


 Download project file for Altera Max+plusII (or Quartus) -> stepper_motor_con.rar

Переваги крокових двигунів точність управління, програмне управління двигуна, а також відсутність щіток, робить крокові двигуни зручними у використанні для різних спеціалізованих пристроїв: принтери, сканери, плотери, дисководи FDD, роботи, верстати з ЧПУ і інші високоточні пристрої.
          Серед великої кількості різноманітних схем та коду на Verilog та AHDL для керування кроковими двигунами які я зміг найти в інтернеті було чимало хороших але в більшості з низ відсутня простота розуміння, деякі з них перекочували в FPGA/CPLD із старих журналів і схем розроблених на 74 серії мікросхем такий собі максимальний мінімалізм присутній для схем того часу. Тому я вирів розробити схему яка б було інтуїтивно зрозуміла по схемі та по логіці роботи і також щоб схему можна було модифікувати під тип крокового двигуна.
         Для початку розглянемо типи двигунів. Крокові двигунів діляться на два основних найбільш використовуваних типи, це однополярні (unipolar) та двополярні (bipolar) крокові двигуни. В [2] показано логіку формування вхідних сигналів для однополярних двигунів. Кожна із цих методик має свої переваги і недоліки в плані функціонування та легкості реалізації. Найкращим варіантом для однополярного двигуна є методика microstepping (мікрокрокова) але й і найскладніша в плані реалізації. Більш детальніше про методики для однополярних двигунів можна почитати в [3]. Таку кількість методик можна також пояснити з погляду конструктиву однополярного двигуна в порівнянні із двополярним (біполярним), струм через обмотку якого прямує в одному напрямку, в біполярному двигуні струм через обмотку має прямувати і в зворотньому напрямку. В даному пості я не буду розглядати підсилючий каскад(Driver, H-bridge) і який з них краще вибрати, підібрати відповідний по струму і напрузі можна із вже існуючих схем.
       Схема контроллера буде мати наступний вигляд як на рис.1. По суті це простий автомат Мура із трьома основними елементами схеми це лічильник (counter_8), мультиплексор ( mux_stepper), та елемент таблиця вихідних бітових комбінацій (bit_const_half_step,  bit_const_full_step для однополярного(unipolar) двигуна і bit_const_bipolar_2coil для біполярного (bipolar) двигуна ). Всі керуючі сигнали для двигуна зведенні до керування лічильника. На вхід clk лічильника поступає із генератора імпульсів частоту якого можна вирахувати по вже існуючих методиках і яка буде залежити від RPM двигуна тобто максимальної кількості оборотів двигуна за хвилину. По приходу кактових імпульсів лічильник буде лічити по модулю 8, тобто перебирати по черзі адреси мультиплексора який в свою чергу буде видавати на вихід схеми відповідні фазові комбінації для двигуна. 


  Рис. 1 Схема контроллера крокового двигуна.

           В такий спосіб дуже легко настроїти схему під певний тип двигуна замінивши в схемі тільки один елемент таблиці бітових комбінацій рис.2 . 



Рис.2 Таблиці бітових комбінацій.
Результати симуляції схеми для однополярного(unipolar) крокового двигуна наведені на рис.3. 

Рис.3    Результати симуляції для однополярного (unipolar) двигуна.
      Увага!!!! Для правильного підключення до обмоток двигуна потрібно використовувати наступну таблицю!!!!!
  
Output from CPLD

Unipolar coil

Bipolar coil

stepper_out[3]
A
1a
stepper_out[2]
B
1b
stepper_out[1]
C
2a
stepper_out[0]
D
2b


Результати синтезу в CPLD серії MAX3000:
 Chip/                          Input     Output    Bidir                     Shareable
POF Device                Pins       Pins        Pins      LCs         Expanders      % Utilized
stepper_gdf

EPM3032ALC44-4     4         4             0           7                 0                21 %

User Pins:                     4         4             0





четвер, 24 травня 2012 р.

Design and synthesis high precision oscillators DDS (Direct digital synthesis) on CPLD from Altera


Розробка та синтез високоточних DDS генераторів(Direct digital synthesis) на CPLD фірми Altera.

Використані матеріали:

Download project file ->  dds_my.rar

Рис.1 Схема DDS функціональна
        Функціональна схема DDS (генератора прямого синтеза), показана на рис.1 основні елементи схеми це “Суматор”, “Регістр”, “Пам'ять (таблиця синусів)”, “Вхідний регістр” може і не використовуватись оскільки вхідний вектор частоти може задаватися напряму через входи (джампери). Розрахуємо розрядність в бітах усіх основних елементів схеми, і почнемо з тактової частоти, нехай Fclk = 12500000 Гц або 12,5 MHz. Основний елемент схеми “Суматор” буде сумувати значення “Регістр” із кроком в “Вхідний регістр” (він же буде індикатором вихідної частоти, тобто коли на вході буде 0000 0000 0000 0000 0000 0001, то частота виходу DDS буде 1 Гц і крок буде також 1 Гц). При такій умові в схемі потрібно проводити перевірку на виході “Регістра”, при переповненні значення більше ніж на число 12 500 000, потрібно записати в “Регістр” значення всіх розрядів в “0”. Для визначення розрядності елементів схеми переведемо 12 500 000(10) = 1011 1110 1011 1100 0010 0000(2), отримаємо 24 розряди(біти). Отже елементи “Суматор” та “Регістр” будуть 24 бітними, оскільки максимальне значення для 24 біт   (1111 1111 1111 1111 1111 1111 ) в десятковому форматі буде 16 777 215(10), саме тому ми ввели функцію запис в “Регістр” всіх 24 біт в “0”. Далі в “Пам'ять (таблиці синусів)” поступає кодове значення із 8 старших бітів “Регістра” які далі виділені 1011 1110 1011 1100 0010 0000(2) перевівши із двійкового 1011 1110(2) в десятковий формат отримаємо число 190 це і буде кількість кроків в повному періоді (2p) тобто дискретність. При збільшенні кодового слова на один біт, тобто взявши 9 старших біти “Регістра” 101111101, дискретність періоду збільшиться і буде складатись із 381-го кроку за повний період (2p). При необхідності дискретність можна збільшувати і далі, але при цьому слід пам’ятати, що буде збільшуватись і “Пам'ять (таблиці синусів)”. Скориставшись інформацією в джерелах [6],[7] побудуємо таблицю синусів (8x7 - тобто вхідні кодові (дискретні) комбінації 8 бітні, а вихідні квантові 7 бітні ) в Microsoft Excel (файл DDS_table.xls доданий до архіву проекту). Результат побудови графіка показано на рис.2 в якому Ряд1- результати без округлення, Ряд2- результати з округленням.
Рис.2 Графіки таблиці синусів
Після отриманих результатів розрахунку в Excel, створимо файл проекту в AlteraHDL коді за основу взявши методику [1] і розробку дешифраторів (decoder) в AlteraHDL. Отримаємо такий код в файлі functab7x6.tdf проекту:
Провівши всі необхідні розрахунки схеми спроектуємо схему в середовищі   Max+plusII Altera в графічному середовищі файл dds.gdf. Принципова схема генератора DDS відображена на рис.3.

Рис.3 Схема принципова DDS.


Результати симуляції схеми рис.4

Рис.4 Симуляція схеми.


Із схеми видно що був доданий ще один регістр out_ddf 7 біт, типу DFF на вихід для збереження вихідних результатів із таблиці синусів functab7x6.tdf. Він потрібен для того щоб зменшити шуми які виникають в наслідок затримок в середині CPLD і виводу їх на ЦАП (DAC). Нижче буде наведена схема без регістра і результати симуляції рис.5 схема без вихідного регістра, рис. 6 результати симуляції схеми.


Рис.5 Схема без вихідного регістра.
Рис.6 Результати симуляції схеми.

На наступних двох рисунках показано як перехідні процеси і затримки в схемі впливають на вихідні результати в збільшеному вигляді. І як вихідних регістр фільтрує результати. Відповідно рис.7 перехідні процеси в збільшеному вигляді з вихідним регістром ; рис.8 перехідні процеси в збільшеному вигляді без вихідного регістра.

Рис.7 Перехідні процеси в збільшеному вигляді з вихідним регістром.
Рис.8 Перехідні процеси в збільшеному вигляді без вихідного регістра.
 

Інформація про результати синтезу

Chip                                      Input    Output     Bidir             Shareable
POF          Device                  Pins      Pins        Pins    LCs  Expanders  % Utilized

dds   EPM9320LC84-15            22        32           0       167          83              52 % 

User Pins:                               22        32           0                                                   




пʼятниця, 3 лютого 2012 р.

PWM controller with two tactile switch buttons "UP" and "DOWN", based on NM9221 board.

Video:



---
Проект розроблено в Max + plus II, СPLD EPM3064ALC44-10N, займає LC-28 шт.
Download --> pwm_100.rar
---
Схема:
Для збільшення зображення, відкрийти його в новому вікні.


Результати тестування в вигляді часових діаграм.
Захист від циклічності означає, що при приході на вхід сигналу DOWN, лічильник не переходить в стан "100" а залишається в стані "0". Частина вихідного сигналу при цьому буде в стані "Z".


Значення вихідного сигналу при значенні і стану лічильника "1". Тут все нормально працює.

Так само і при приході на вхід сигналу "UP", і значенні лічильника "100" спрацьовує захист від переходу в стан "0". На виході PWM_out все нормально, значення сигналу постійно логічна "1".

Ну і останнє при значенні лічильника "99", на виході все нормально.


пʼятниця, 6 січня 2012 р.

Verilog code counter by 7 mouse click. Using Quartus II and MegaWizard Plug-in Manger with LPM_COUNTER

            При проектуванні складних цифрових схем і опису їх на Verilog коді, від проектувальника вимагається не тільки хорошого знання та розуміння проектування цифрових схем а також хорошого рівня знань стандарту Verilog а також різного роду тонкощів при описі проекту. При цьому час на розробку та тестування проекту збільшується. В цій темі ми розглянемо як генерувати Verilog код використовуючи при цьому можливості  MegaWizard Plug-in Manger.





























Відкриємо згенерований файл counter_syn.v в блокноті і отримаємо код який введений нижче. Частину коду яка підкреслена фоном ми можемо викоритсовувати як код лічильника на Verilog для проектування в інших системах.
// megafunction wizard: %LPM_COUNTER%


// GENERATION: STANDARD

// VERSION: WM1.0
// MODULE: LPM_COUNTER

// ============================================================
// File Name: counter.v
// Megafunction Name(s):
// LPM_COUNTER
//
// Simulation Library Files(s):
// lpm
// ============================================================
// ************************************************************
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
//
// 11.0 Build 157 04/27/2011 SJ Web Edition
// ************************************************************


//Copyright (C) 1991-2011 Altera Corporation
//Your use of Altera Corporation's design tools, logic functions
//and other software and tools, and its AMPP partner logic
//functions, and any output files from any of the foregoing
//(including device programming or simulation files), and any
//associated documentation or information are expressly subject
//to the terms and conditions of the Altera Program License
//Subscription Agreement, Altera MegaCore Function License
//Agreement, or other applicable license agreement, including,
//without limitation, that your use is for the sole purpose of
//programming logic devices manufactured by Altera and sold by
//Altera or its authorized distributors. Please refer to the
//applicable agreement for further details.


//lpm_counter DEVICE_FAMILY="MAX3000A" lpm_modulus=13 lpm_port_updown="PORT_USED" lpm_width=4 aclr clk_en clock cnt_en q updown
//VERSION_BEGIN 11.0 cbx_cycloneii 2011:04:27:21:07:09:SJ cbx_lpm_add_sub 2011:04:27:21:07:09:SJ cbx_lpm_compare 2011:04:27:21:07:09:SJ cbx_lpm_counter 2011:04:27:21:07:09:SJ cbx_lpm_decode 2011:04:27:21:07:09:SJ cbx_mgl 2011:04:27:21:08:59:SJ cbx_stratix 2011:04:27:21:07:09:SJ cbx_stratixii 2011:04:27:21:07:09:SJ VERSION_END
// synthesis VERILOG_INPUT_VERSION VERILOG_2001
// altera message_off 10463


//synthesis_resources =
//synopsys translate_off
`timescale 1 ps / 1 ps
//synopsys translate_on
module counter_cntr
(
aclr,
clk_en,
clock,
cnt_en,
q,
updown) /* synthesis synthesis_clearbox=1 */;
input aclr;
input clk_en;
input clock;
input cnt_en;
output [3:0] q;
input updown;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_off
`endif
tri0 aclr;
tri1 clk_en;
tri1 cnt_en;
tri1 updown;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_on
`endif

reg [4:0] wire_q_int;

// synopsys translate_off
initial
wire_q_int = 0;
// synopsys translate_on
always @(posedge clock or posedge aclr)
if (aclr == 1'b1) wire_q_int <= 5'b0;
else
if ( clk_en == 1'b1)
if (cnt_en == 1'b1)
if (updown == 1'b1)
if (wire_q_int[3:0] == 4'd12)
wire_q_int <= 4'b0;
else
wire_q_int <= wire_q_int[3:0] + 1'b1;
else
if (wire_q_int[3:0] == 4'b0)
wire_q_int <= 4'd12;
else
wire_q_int <= wire_q_int[3:0] - 1'b1;
assign
q = wire_q_int[3:0];
endmodule //counter_cntr

//VALID FILE


// synopsys translate_off
`timescale 1 ps / 1 ps
// synopsys translate_on
module counter (
aclr,
clk_en,
clock,
cnt_en,
updown,
q)/* synthesis synthesis_clearbox = 1 */;

input aclr;
input clk_en;
input clock;
input cnt_en;
input updown;
output [3:0] q;

wire [3:0] sub_wire0;
wire [3:0] q = sub_wire0[3:0];

counter_cntr counter_cntr_component (
.aclr (aclr),
.clk_en (clk_en),
.clock (clock),
.cnt_en (cnt_en),
.updown (updown),
.q (sub_wire0));

endmodule

// ============================================================
// CNX file retrieval info
// ============================================================
// Retrieval info: PRIVATE: ACLR NUMERIC "1"
// Retrieval info: PRIVATE: ALOAD NUMERIC "0"
// Retrieval info: PRIVATE: ASET NUMERIC "0"
// Retrieval info: PRIVATE: ASET_ALL1 NUMERIC "1"
// Retrieval info: PRIVATE: CLK_EN NUMERIC "1"
// Retrieval info: PRIVATE: CNT_EN NUMERIC "1"
// Retrieval info: PRIVATE: CarryIn NUMERIC "0"
// Retrieval info: PRIVATE: CarryOut NUMERIC "0"
// Retrieval info: PRIVATE: Direction NUMERIC "2"
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "MAX3000A"
// Retrieval info: PRIVATE: ModulusCounter NUMERIC "1"
// Retrieval info: PRIVATE: ModulusValue NUMERIC "13"
// Retrieval info: PRIVATE: SCLR NUMERIC "0"
// Retrieval info: PRIVATE: SLOAD NUMERIC "0"
// Retrieval info: PRIVATE: SSET NUMERIC "0"
// Retrieval info: PRIVATE: SSET_ALL1 NUMERIC "1"
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "1"
// Retrieval info: PRIVATE: nBit NUMERIC "4"
// Retrieval info: PRIVATE: new_diagram STRING "1"
// Retrieval info: LIBRARY: lpm lpm.lpm_components.all
// Retrieval info: CONSTANT: LPM_DIRECTION STRING "UNUSED"
// Retrieval info: CONSTANT: LPM_MODULUS NUMERIC "13"
// Retrieval info: CONSTANT: LPM_PORT_UPDOWN STRING "PORT_USED"
// Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_COUNTER"
// Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "4"
// Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT NODEFVAL "aclr"
// Retrieval info: USED_PORT: clk_en 0 0 0 0 INPUT NODEFVAL "clk_en"
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL "clock"
// Retrieval info: USED_PORT: cnt_en 0 0 0 0 INPUT NODEFVAL "cnt_en"
// Retrieval info: USED_PORT: q 0 0 4 0 OUTPUT NODEFVAL "q[3..0]"
// Retrieval info: USED_PORT: updown 0 0 0 0 INPUT NODEFVAL "updown"
// Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0
// Retrieval info: CONNECT: @clk_en 0 0 0 0 clk_en 0 0 0 0
// Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0
// Retrieval info: CONNECT: @cnt_en 0 0 0 0 cnt_en 0 0 0 0
// Retrieval info: CONNECT: @updown 0 0 0 0 updown 0 0 0 0
// Retrieval info: CONNECT: q 0 0 4 0 @q 0 0 4 0
// Retrieval info: GEN_FILE: TYPE_NORMAL counter.v TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL counter.inc FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL counter.cmp FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL counter.bsf TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL counter_inst.v TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL counter_bb.v TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL counter_syn.v TRUE
// Retrieval info: LIB_FILE: lpm

 Якщо порівняти наш згенерований код із кодом який Altera пропонує при кодингу для своїх систем на Verilog по цій ссилці

module behav_counter( d, clk, clear, load, up_down, qd);

// Port Declaration

input [7:0] d;
input clk;
input clear;
input load;
input up_down;
output [7:0] qd;

reg [7:0] cnt;


assign qd = cnt;


always @ (posedge clk)
begin
if (!clear)
cnt = 8'h00;
else if (load)
cnt = d;
else if (up_down)
cnt = cnt + 1;
else
cnt = cnt - 1;
end

endmodule

 Можемо побачити, що поведінкова частина кодів якщо не схожа то ідентична. 
Такий підхід в проектуванні схем дає певну гнучкість в проектуванні і переносі спроектованих частин схеми в інші середовища розробки які підтримують Verilog. Крім того  MegaWizard Plug-in містить дуже багато різноманітних бібліотек якими можна і генерувати код зменшуючи при цьому час до кінцевої розробки.

пʼятниця, 23 грудня 2011 р.

Verilog Netlist Writer.( Part II ) Оптимізація .

В цій публікації я описував, як із проекту який був створений в графічному редакторі MAX+plusII, перевести в Verilog code. Хотів би зазначити, що скориставшись таким типом переводу проекту в код, ми переводимо його в Low Lewel. Тобто розбиваємо проект на базові булеві функції та тригери і регістри. Такий підхід дозволяє з мінімальними знаннями Verilog'у переводити проекти в код який по структурі близький до ASIC проектування. Такий підхід надає певну гнучкість в проектуванні і переводу проекту в інші системи проектування інших виробників як Xilinx, Lattice. Отже для оптимізації роботи над згенерованим кодом в системі   MAX+plusII, я вирішив базові елементи які були згенеровані в коді але не описані як модулі, написати під них модулі. Наші елементи AND1...AND6, OR1...OR5, DELAY, RISEFALL, INV, XOR2:

Пишемо модулі, все дуже просто...
Під описані модулі можна створити файл із розширенням *.v ,  і потім тільки в коді додавти силку на цей файл через include"*.v", а можна прямо в згенерований код додавати описані нижче модулі.

module AND1 (out_AND1,in_AND1) ;
input in_AND1;
output out_AND1;
assign out_AND1 = in_AND1;
endmodule

module AND2 (out_AND2, in1_AND2, in2_AND2) ;
input in1_AND2;
input in2_AND2;
output out_AND2;
and ( out_AND2, in1_AND2, in2_AND2);
endmodule


module AND3 (out_AND3,in1_AND3, in2_AND3, in3_AND3) ;
input in1_AND3, in2_AND3, in3_AND3;
output out_AND3;
and ( out_AND3, in1_AND3, in2_AND3, in3_AND3);
endmodule


module AND4 (out_AND4, in1_AND4, in2_AND4, in3_AND4, in4_AND4) ;
input in1_AND4,in2_AND4, in3_AND4, in4_AND4;
output out_AND4;
and ( out_AND4, in1_AND4, in2_AND4, in3_AND4, in4_AND4);
endmodule


module AND5 (out_AND5,in1_AND5, in2_AND5, in3_AND5, in4_AND5, in5_AND5) ;
input in1_AND5, in2_AND5, in3_AND5, in4_AND5, in5_AND5;
output out_AND5;
and ( out_AND5, in1_AND5, in2_AND5, in3_AND5, in4_AND5, in5_AND5);
endmodule


module AND6 (out_AND6,in1_AND6, in2_AND6, in3_AND6, in4_AND6, in5_AND6, in6_AND6) ;
input in1_AND6,in2_AND6, in3_AND6, in4_AND6, in5_AND6, in6_AND6;
output out_AND6;
and ( out_AND6, in1_AND6, in2_AND6, in3_AND6, in4_AND6, in5_AND6, in6_AND6);
endmodule


module OR1 (out_OR1, in_OR1) ;
input in_OR1;
output out_OR1;
assign out_OR1 = in_OR1;
endmodule


module OR2 (out_OR2, in1_OR2, in2_OR2) ;
input in1_OR2,in2_OR2;
output out_OR2;
or ( out_OR2, in1_OR2, in2_OR2);
endmodule


module OR3 (out_OR3, in1_OR3, in2_OR3, in3_OR3) ;
input in1_OR3, in2_OR3, in3_OR3;
output out_OR3;
or ( out_OR3, in1_OR3, in2_OR3, in3_OR3);
endmodule


module OR4 (out_OR4, in1_OR4, in2_OR4, in3_OR4, in4_OR4) ;
input in1_OR4, in2_OR4, in3_OR4, in4_OR4;
output out_OR4;
or ( out_OR4, in1_OR4, in2_OR4, in3_OR4, in4_OR4);
endmodule


module OR5 (out_OR5, in1_OR5, in2_OR5, in3_OR5, in4_OR5, in5_OR5) ;
input in1_OR5, in2_OR5, in3_OR5, in4_OR5, in5_OR5;
output out_OR5;
or ( out_OR5, in1_OR5, in2_OR5, in3_OR5, in4_OR5, in5_OR5);
endmodule

module INV (out_INV, in_INV) ;
input in_INV;
output out_INV;
not (out_INV, in_INV);
endmodule

module DELAY (out_DELAY, in_DELAY) ;
input in_DELAY;
output out_DELAY;
assign out_DELAY = in_DELAY;
endmodule

module XOR2 (out_XOR2,in1_XOR2, in2_XOR2) ;
input in1_XOR2, in2_XOR2;
output out_XOR2;
xor (out_XOR2, in1_XOR2, in2_XOR2);
endmodule

module RISEFALL (Y,IN1) ;
input IN1;
output Y;
assign Y = IN1;
endmodule 
крім того, стрічки  в коді 
RISEFALL RISEFALL_658 ( Y.(N_816), IN1.(N_809) );
замінити на  
RISEFALL RISEFALL_658 ( (N_816), (N_809) );
за стандартом Verilog  звязок   Y.(N_816) мав би бути записаний, як   N_816.(Y), тобто зв'язок верхнього рівня з'єднується із зв'язком нижнього. 

Код був протестований на ModelSim 6.5b все прекрасно працювало, також пробував зкомпілювати змінений код в   MAX+plusII але тут невдача, компілятор видав помилку що неможе зкомпілювати даний код і порадив звернутися до виробника і вказати код помилки. Думаю що на Квартусі він зкомпілюється без проблем.  

субота, 26 листопада 2011 р.

Verilog Netlist Writer ( Part I ). Або як перевести графічний проект(MAX+plus II) в Verilog code.




Сьогодні будемо пробувати портувати(транслювати) (через Verilog Netlist Writer) проект binary to BCD convertor в Verilog code. Налаштувати режим можна після того як включити вікно компіляції, в нас в загальному вікні з’явиться кнопка Interface/ потім виділяємо галочкою як на рис. 1.


Рис. 1

Verilog Netlist Writer Settings налаштовуємо як на рис. 2

Рис. 2


Галочки внизу на проект сутьєво не впливають єдине, що сутьєво для нас це SDF Output File[.sdo] Ver 2.1 це означає що опис затримок в проекті між елементами в проекті буде записаний в окремий файл. Це ми зробили для спрощення нашого проекту. Після того як ми отримаємо результати симуляції нашого Verilog code ми зрозуміємо для чого взагалі описувати в проекті затримки. Якщо так по простому то ми сформували кістяк(хребет) проекту а затримки то як м’язи, без них ніяк в серйозних проектах.
Отже після компіляції (стиль NORMAL ) отримали щось подібне до такого коду(наведений нижче). Так, саме так щось подібне до Verilog коду але це ще не робочий код його треба ще причесати. В цьому можна переконатись коли створений файл після компіляції із розширенням *.vo взяти і під нього створити в середовищі новий проект і там його відкомпілювати. Я отримав такий код....
   
__________________________________________________________________ 
//
// binary_bcd_8 (EPM3032ALC44-4)
//
// Copyright (C) 1988-2000 Altera Corporation
// Any megafunction design, and related net list (encrypted or decrypted),
// support information, device programming or simulation file, and any other
// associated documentation or information provided by Altera or a partner
// under Altera's Megafunction Partnership Program may be used only to
// program PLD devices (but not masked PLD devices) from Altera.  Any other
// use of such megafunction design, net list, support information, device
// programming or simulation file, or any other related documentation or
// information is prohibited for any other purpose, including, but not
// limited to modification, reverse engineering, de-compiling, or use with
// any other silicon devices, unless such use is explicitly licensed under
// a separate agreement with Altera or a megafunction partner.  Title to
// the intellectual property, including patents, copyrights, trademarks,
// trade secrets, or maskworks, embodied in any such megafunction design,
// net list, support information, device programming or simulation file, or
// any other related documentation or information provided by Altera or a
// megafunction partner, remains with Altera, the megafunction partner, or
// their respective licensors.  No other licenses, including any licenses
// needed under any third party's intellectual property, are provided herein.
//
// MAX+plus II Version 10.0 RC2 9/14/2000
// Mon Sep 26 21:08:30 2011

//
`timescale 10 ps / 100 ps


module binary_bcd_8 (
         B0,
         B1,
         B2,
         B3,
         B4,
         B5,
         B6,
         B7,
         out_1_0,
         out_1_1,
         out_1_2,
         out_1_3,
         out_2_0,
         out_2_1,
         out_2_2,
         out_2_3,
         out_3_0,
         out_3_1);

input B0;
input B1;
input B2;
input B3;
input B4;
input B5;
input B6;
input B7;
output out_1_0;
output out_1_1;
output out_1_2;
output out_1_3;
output out_2_0;
output out_2_1;
output out_2_2;
output out_2_3;
output out_3_0;
output out_3_1;
supply0 gnd;
supply1 vcc;

parameter SDFFILE = "binary_bcd_8.sdo";
initial $sdf_annotate(SDFFILE);

wire
    N_55, N_56, N_57, N_59, N_61, N_64, N_65, N_66, N_67, N_69, N_71, N_72,
    N_73, N_74, N_75, N_77, N_78, N_79, N_80, N_81, N_83, N_84, N_85, N_88,
    N_89, N_91, N_94, N_95, N_96, N_98, N_100, N_102, N_105, N_106, N_107,
    N_108, N_109, N_110, N_112, N_113, N_114, N_116, N_117, N_118, N_120,
    N_121, N_122, N_123, N_125, N_126, N_127, N_128, N_129, N_130, N_132,
    N_133, N_135, N_138, N_139, N_140, N_143, N_144, N_145, N_148, N_149,
    N_150, N_153, N_154, N_155, N_158, N_159, N_161, N_164, N_165, N_166,
    N_168, N_169, N_170, N_172, N_173, N_174, N_175, N_176, N_177, N_179,
    N_180, N_181, N_182, N_183, N_184, N_185, N_187, N_188, N_189, N_190,
    N_191, N_193, N_194, N_195, N_196, N_197, N_198, N_199, N_201, N_202,
    N_203, N_204, N_206, N_207, N_208, N_210, N_213, N_214, N_215, N_216,
    N_217, N_218, N_219, N_221, N_222, N_223, N_224, N_225, N_226, N_227,
    N_229, N_230, N_231, N_232, N_233, N_234, N_235, N_237, N_238, N_239,
    N_240, N_241, N_242, N_244, N_245, N_246, N_247, N_248, N_249, N_250,
    N_251, N_253, N_254, N_256, N_259, N_260, N_261, N_262, N_263, N_265,
    N_266, N_267, N_268, N_269, N_271, N_272, N_273, N_274, N_275, N_277,
    N_279, N_280, N_281, N_282, N_283, N_284, N_287, N_289, N_292, N_293,
    N_294, N_295, N_296, N_297, N_298, N_300, N_301, N_302, N_303, N_304,
    N_305, N_306, N_308, N_309, N_310, N_311, N_312, N_313, N_314, N_316,
    N_317, N_318, N_319, N_320, N_321, N_322, N_324, N_325, N_327, N_330,
    N_331, N_332, N_333, N_334, N_335, N_336, N_338, N_339, N_340, N_341,
    N_342, N_343, N_344, N_346, N_347, N_348, N_349, N_350, N_351, N_352,
    N_354, N_355, N_356, N_357, N_358, N_359, N_361, N_362, N_363, N_364,
    N_366, N_367, N_368, N_370, N_371, N_372, N_373, N_375, N_377, N_380,
    N_381, N_382, N_383, N_384, N_385, N_386, N_387, N_389, N_390, N_391,
    N_392, N_393, N_394, N_395, N_397, N_398, N_399, N_400, N_402, N_403,
    N_404, N_406, N_407, N_409, N_410, N_411, N_413, N_414, N_415, N_416,
    N_417, N_418, N_420, N_421, N_423, N_424, N_426, N_427, N_428, N_430,
    N_431, N_432, N_433, N_434, N_435, N_436, N_438, N_439, N_441, N_442,
    N_444, N_445, N_446, N_448, N_449, N_450, N_452, N_453, N_455, N_457,
    N_459, N_460, N_461, N_462, N_463, N_464, N_465, N_466, N_467, N_469,
    N_471, N_472, N_473, N_476, N_480, N_481, N_482, N_484, N_485, N_486,
    N_487, N_488, N_490, N_491, N_492, N_493, N_494, N_495, N_496, N_498,
    N_499, N_500, N_501, N_503, N_504, N_505, N_506, N_508, N_509, N_510,
    N_511, N_513, N_514, N_515, N_516, N_518, N_519, N_520, N_521, N_523,
    N_524, N_525, N_527, N_531, N_532, N_533, N_535, N_536, N_537, N_538,
    N_539, N_541, N_542, N_543, N_544, N_545, N_546, N_547, N_549, N_550,
    N_551, N_552, N_554, N_555, N_556, N_557, N_558, N_559, N_560, N_562,
    N_563, N_564, N_565, N_567, N_568, N_569, N_570, N_572, N_573, N_574,
    N_575, N_577, N_578, N_579, N_581, N_583, N_584, N_585, N_586, N_587,
    N_588, N_589, N_591, N_592, N_593, N_594, N_595, N_596, N_597, N_599,
    N_600, N_601, N_602, N_603, N_604, N_605, N_607, N_608, N_610, N_612,
    N_613, N_614, N_615, N_616, N_617, N_618, N_620, N_621, N_622, N_623,
    N_624, N_625, N_627, N_629, N_631, N_632, N_633, N_634, N_635, N_636,
    N_638, N_639, N_640, N_641, N_642, N_643, N_645, N_646, N_647, N_648,
    N_649, N_650, N_651, N_652, N_654, N_655, N_656, N_657, N_658, N_659,
    N_660, N_661, N_663, N_665, N_667, N_668, N_669, N_670, N_671, N_672,
    N_674, N_675, N_676, N_677, N_678, N_679, N_680, N_682, N_683, N_684,
    N_685, N_686, N_687, N_688, N_690, N_691, N_692, N_693, N_694, N_695,
    N_696, N_698, N_699, N_700, N_701, N_702, N_703, N_704, N_706, N_708,
    N_710, N_711, N_712, N_713, N_714, N_715, N_716, N_718, N_719, N_720,
    N_721, N_722, N_723, N_724, N_726, N_727, N_728, N_729, N_730, N_731,
    N_732, N_734, N_735, N_736, N_737, N_738, N_739, N_740, N_742, N_743,
    N_744, N_745, N_746, N_747, N_748, N_750, N_751, N_753, N_755, N_756,
    N_757, N_758, N_759, N_760, N_761, N_763, N_764, N_765, N_766, N_767,
    N_768, N_769, N_771, N_772, N_773, N_774, N_775, N_776, N_777, N_779,
    N_780, N_782, N_784, N_785, N_786, N_787, N_788, N_789, N_791, N_792,
    N_793, N_794, N_795, N_797, N_798, N_799, N_800, N_801, N_803, N_804,
    N_806, N_808, N_809, N_810, N_811, N_812, N_813, N_814, N_816, N_817,
    N_818, N_819, N_820, N_821, N_823, N_824, N_826, z74185_1zY1_IN1, z74185_1zY1_OUT,
    z74185_1zY1_OUTxNOT, z74185_1zY1_6K_WL_INV, z74185_1zY1x1_IN1, z74185_1zY1x1_OUT,
    z74185_1zY2_IN1, z74185_1zY2_OUT, z74185_1zY2_OUTxNOT, z74185_1zY2_6K_WL_INV,
    z74185_1zY2x1_IN1, z74185_1zY2x1_OUT, z74185_1zY3_IN1, z74185_1zY3_OUT,
    z74185_1zY3x1_IN1, z74185_1zY3x1_OUT, z74185_2zY1_IN1, z74185_2zY1_OUT,
    z74185_2zY2_IN1, z74185_2zY2_OUT, z74185_2zY3_IN1, z74185_2zY3_OUT, z74185_2zY4_IN1,
    z74185_2zY4_OUT, z74185_3zY1_IN1, z74185_3zY1_OUT, z74185_3zY2_IN1, z74185_3zY2_OUT,
    z74185_3zY2x1_IN1, z74185_3zY2x1_OUT, z74185_3zY3_IN1, z74185_3zY3_OUT,
    z74185_3zY4_IN1, z74185_3zY4_OUT, z74185_3zY5_IN1, z74185_3zY5_OUT, z74185_3z_29_IN1,
    z74185_3z_29_OUT, z74185_3z_32_IN1, z74185_3z_32_OUT, z74185_3z_35_IN1,
    z74185_3z_35_OUT, z74185_3z_36_IN1, z74185_3z_36_OUT;

TRIBUF TRIBUF_2 ( .Y(out_2_0), .IN1(z74185_2zY4_OUT), .OE(vcc) );
TRIBUF TRIBUF_4 ( .Y(out_3_0), .IN1(z74185_3zY4_OUT), .OE(vcc) );
TRIBUF TRIBUF_6 ( .Y(out_2_1), .IN1(z74185_3zY1_OUT), .OE(vcc) );
TRIBUF TRIBUF_8 ( .Y(out_2_2), .IN1(z74185_3zY2_OUT), .OE(vcc) );
TRIBUF TRIBUF_10 ( .Y(out_2_3), .IN1(z74185_3zY3_OUT), .OE(vcc) );
TRIBUF TRIBUF_12 ( .Y(out_3_1), .IN1(z74185_3zY5_OUT), .OE(vcc) );
TRIBUF TRIBUF_14 ( .Y(out_1_0), .IN1(N_280), .OE(vcc) );
TRIBUF TRIBUF_16 ( .Y(out_1_3), .IN1(z74185_2zY3_OUT), .OE(vcc) );
TRIBUF TRIBUF_18 ( .Y(out_1_1), .IN1(z74185_2zY1_OUT), .OE(vcc) );
TRIBUF TRIBUF_20 ( .Y(out_1_2), .IN1(z74185_2zY2_OUT), .OE(vcc) );

assign out_2_0 = z74185_2zY4_OUT;
assign out_3_0 = z74185_3zY4_OUT;
assign out_2_1 = z74185_3zY1_OUT;
assign out_2_2 = z74185_3zY2_OUT;
assign out_2_3 = z74185_3zY3_OUT;
assign out_3_1 = z74185_3zY5_OUT;
assign out_1_0 = N_280;
assign out_1_3 = z74185_2zY3_OUT;
assign out_1_1 = z74185_2zY1_OUT;
assign out_1_2 = z74185_2zY2_OUT;

DELAY DELAY_21 ( z74185_2zY4_OUT, z74185_2zY4_IN1 );
XOR2 XOR2_22 ( z74185_2zY4_IN1, N_55, N_91 );
OR5 OR5_23 ( N_55, N_64, N_71, N_77, N_83, N_88 );
AND3 AND3_24 ( N_56, N_57, N_59, N_61 );
INV INV_25 ( N_57, z74185_1zY1_OUTxNOT );
DELAY DELAY_26 ( N_59, B1 );
DELAY DELAY_27 ( N_61, B2 );

RISEFALL RISEFALL_28 ( .Y(N_64), .IN1(N_56) );
AND3 AND3_29 ( N_65, N_66, N_67, N_69 );
INV INV_30 ( N_66, B2 );
INV INV_31 ( N_67, z74185_1zY2_OUTxNOT );
DELAY DELAY_32 ( N_69, z74185_1zY1_OUTxNOT );

RISEFALL RISEFALL_33 ( .Y(N_71), .IN1(N_65) );
AND3 AND3_34 ( N_72, N_73, N_74, N_75 );
INV INV_35 ( N_73, z74185_1zY1_OUTxNOT );
DELAY DELAY_36 ( N_74, B1 );
DELAY DELAY_37 ( N_75, z74185_1zY2_OUTxNOT );

RISEFALL RISEFALL_38 ( .Y(N_77), .IN1(N_72) );
AND3 AND3_39 ( N_78, N_79, N_80, N_81 );
INV INV_40 ( N_79, z74185_1zY1_OUTxNOT );
DELAY DELAY_41 ( N_80, z74185_1zY2_OUTxNOT );
DELAY DELAY_42 ( N_81, B2 );

RISEFALL RISEFALL_43 ( .Y(N_83), .IN1(N_78) );
AND1 AND1_44 ( N_84, N_85 );
DELAY DELAY_45 ( N_85, z74185_1zY3_OUT );

RISEFALL RISEFALL_46 ( .Y(N_88), .IN1(N_84) );
AND1 AND1_47 ( N_89, gnd );

RISEFALL RISEFALL_48 ( .Y(N_91), .IN1(N_89) );
DELAY DELAY_49 ( z74185_3zY4_OUT, z74185_3zY4_IN1 );
XOR2 XOR2_50 ( z74185_3zY4_IN1, N_94, N_135 );
OR5 OR5_51 ( N_94, N_105, N_112, N_120, N_125, N_132 );
AND4 AND4_52 ( N_95, N_96, N_98, N_100, N_102 );
INV INV_53 ( N_96, B7 );
DELAY DELAY_54 ( N_98, B3 );
DELAY DELAY_55 ( N_100, B5 );
DELAY DELAY_56 ( N_102, B6 );

RISEFALL RISEFALL_57 ( .Y(N_105), .IN1(N_95) );
AND4 AND4_58 ( N_106, N_107, N_108, N_109, N_110 );
INV INV_59 ( N_107, B7 );
DELAY DELAY_60 ( N_108, B5 );
DELAY DELAY_61 ( N_109, B6 );
DELAY DELAY_62 ( N_110, B2 );

RISEFALL RISEFALL_63 ( .Y(N_112), .IN1(N_106) );
AND4 AND4_64 ( N_113, N_114, N_116, N_117, N_118 );
INV INV_65 ( N_114, B4 );
INV INV_66 ( N_116, B5 );
INV INV_67 ( N_117, B3 );
DELAY DELAY_68 ( N_118, B7 );

RISEFALL RISEFALL_69 ( .Y(N_120), .IN1(N_113) );
AND2 AND2_70 ( N_121, N_122, N_123 );
INV INV_71 ( N_122, B6 );
DELAY DELAY_72 ( N_123, B7 );

RISEFALL RISEFALL_73 ( .Y(N_125), .IN1(N_121) );
AND4 AND4_74 ( N_126, N_127, N_128, N_129, N_130 );
INV INV_75 ( N_127, B7 );
DELAY DELAY_76 ( N_128, B5 );
DELAY DELAY_77 ( N_129, B4 );
DELAY DELAY_78 ( N_130, B6 );

RISEFALL RISEFALL_79 ( .Y(N_132), .IN1(N_126) );
AND1 AND1_80 ( N_133, gnd );

RISEFALL RISEFALL_81 ( .Y(N_135), .IN1(N_133) );
DELAY DELAY_82 ( z74185_3zY1_OUT, z74185_3zY1_IN1 );
XOR2 XOR2_83 ( z74185_3zY1_IN1, N_138, N_161 );
OR4 OR4_84 ( N_138, N_143, N_148, N_153, N_158 );
AND1 AND1_85 ( N_139, N_140 );
DELAY DELAY_86 ( N_140, z74185_3z_36_OUT );

RISEFALL RISEFALL_87 ( .Y(N_143), .IN1(N_139) );
AND1 AND1_88 ( N_144, N_145 );
DELAY DELAY_89 ( N_145, z74185_3z_35_OUT );

RISEFALL RISEFALL_90 ( .Y(N_148), .IN1(N_144) );
AND1 AND1_91 ( N_149, N_150 );
DELAY DELAY_92 ( N_150, z74185_3z_32_OUT );

RISEFALL RISEFALL_93 ( .Y(N_153), .IN1(N_149) );
AND1 AND1_94 ( N_154, N_155 );
DELAY DELAY_95 ( N_155, z74185_3z_29_OUT );

RISEFALL RISEFALL_96 ( .Y(N_158), .IN1(N_154) );
AND1 AND1_97 ( N_159, gnd );

RISEFALL RISEFALL_98 ( .Y(N_161), .IN1(N_159) );
DELAY DELAY_99 ( z74185_3zY2_OUT, z74185_3zY2_IN1 );
XOR2 XOR2_100 ( z74185_3zY2_IN1, N_164, N_210 );
OR4 OR4_101 ( N_164, N_172, N_179, N_193, N_206 );
AND4 AND4_102 ( N_165, N_166, N_168, N_169, N_170 );
INV INV_103 ( N_166, z74185_3zY2x1_OUT );
INV INV_104 ( N_168, B4 );
DELAY DELAY_105 ( N_169, B7 );
DELAY DELAY_106 ( N_170, B6 );

RISEFALL RISEFALL_107 ( .Y(N_172), .IN1(N_165) );
AND4 AND4_108 ( N_173, N_174, N_175, N_176, N_177 );
INV INV_109 ( N_174, z74185_3zY2x1_OUT );
INV INV_110 ( N_175, B5 );
DELAY DELAY_111 ( N_176, B4 );
DELAY DELAY_112 ( N_177, B6 );

RISEFALL RISEFALL_113 ( .Y(N_179), .IN1(N_173) );
AND6 AND6_114 ( N_180, N_181, N_182, N_188, N_189, N_190, N_191 );
INV INV_115 ( N_181, z74185_3zY2x1_OUT );
INV INV_116 ( N_182, N_187 );
AND2 AND2_117 ( N_183, N_184, N_185 );
INV INV_118 ( N_184, B2 );
INV INV_119 ( N_185, B3 );

RISEFALL RISEFALL_120 ( .Y(N_187), .IN1(N_183) );
INV INV_121 ( N_188, B6 );
DELAY DELAY_122 ( N_189, B7 );
DELAY DELAY_123 ( N_190, B5 );
DELAY DELAY_124 ( N_191, B4 );

RISEFALL RISEFALL_125 ( .Y(N_193), .IN1(N_180) );
AND5 AND5_126 ( N_194, N_195, N_196, N_202, N_203, N_204 );
INV INV_127 ( N_195, z74185_3zY2x1_OUT );
INV INV_128 ( N_196, N_201 );
AND2 AND2_129 ( N_197, N_198, N_199 );
DELAY DELAY_130 ( N_198, B3 );
DELAY DELAY_131 ( N_199, B2 );

RISEFALL RISEFALL_132 ( .Y(N_201), .IN1(N_197) );
INV INV_133 ( N_202, B4 );
INV INV_134 ( N_203, B5 );
DELAY DELAY_135 ( N_204, B7 );

RISEFALL RISEFALL_136 ( .Y(N_206), .IN1(N_194) );
AND1 AND1_137 ( N_207, N_208 );
INV INV_138 ( N_208, z74185_3zY2x1_OUT );

RISEFALL RISEFALL_139 ( .Y(N_210), .IN1(N_207) );
DELAY DELAY_140 ( z74185_3zY3_OUT, z74185_3zY3_IN1 );
XOR2 XOR2_141 ( z74185_3zY3_IN1, N_213, N_256 );
OR5 OR5_142 ( N_213, N_221, N_229, N_237, N_244, N_253 );
AND5 AND5_143 ( N_214, N_215, N_216, N_217, N_218, N_219 );
INV INV_144 ( N_215, B6 );
DELAY DELAY_145 ( N_216, B3 );
DELAY DELAY_146 ( N_217, B7 );
DELAY DELAY_147 ( N_218, B5 );
DELAY DELAY_148 ( N_219, B4 );

RISEFALL RISEFALL_149 ( .Y(N_221), .IN1(N_214) );
AND5 AND5_150 ( N_222, N_223, N_224, N_225, N_226, N_227 );
INV INV_151 ( N_223, B4 );
INV INV_152 ( N_224, B5 );
INV INV_153 ( N_225, B3 );
DELAY DELAY_154 ( N_226, B7 );
DELAY DELAY_155 ( N_227, B6 );

RISEFALL RISEFALL_156 ( .Y(N_229), .IN1(N_222) );
AND5 AND5_157 ( N_230, N_231, N_232, N_233, N_234, N_235 );
INV INV_158 ( N_231, B6 );
DELAY DELAY_159 ( N_232, B7 );
DELAY DELAY_160 ( N_233, B5 );
DELAY DELAY_161 ( N_234, B4 );
DELAY DELAY_162 ( N_235, B2 );

RISEFALL RISEFALL_163 ( .Y(N_237), .IN1(N_230) );
AND4 AND4_164 ( N_238, N_239, N_240, N_241, N_242 );
INV INV_165 ( N_239, B5 );
INV INV_166 ( N_240, B7 );
DELAY DELAY_167 ( N_241, B4 );
DELAY DELAY_168 ( N_242, B6 );

RISEFALL RISEFALL_169 ( .Y(N_244), .IN1(N_238) );
AND6 AND6_170 ( N_245, N_246, N_247, N_248, N_249, N_250, N_251 );
INV INV_171 ( N_246, B2 );
INV INV_172 ( N_247, B4 );
INV INV_173 ( N_248, B7 );
INV INV_174 ( N_249, B3 );
DELAY DELAY_175 ( N_250, B5 );
DELAY DELAY_176 ( N_251, B6 );

RISEFALL RISEFALL_177 ( .Y(N_253), .IN1(N_245) );
AND1 AND1_178 ( N_254, gnd );

RISEFALL RISEFALL_179 ( .Y(N_256), .IN1(N_254) );
DELAY DELAY_180 ( z74185_3zY5_OUT, z74185_3zY5_IN1 );
XOR2 XOR2_181 ( z74185_3zY5_IN1, N_259, N_279 );
OR3 OR3_182 ( N_259, N_265, N_271, N_277 );
AND3 AND3_183 ( N_260, N_261, N_262, N_263 );
DELAY DELAY_184 ( N_261, B7 );
DELAY DELAY_185 ( N_262, B5 );
DELAY DELAY_186 ( N_263, B6 );

RISEFALL RISEFALL_187 ( .Y(N_265), .IN1(N_260) );
AND3 AND3_188 ( N_266, N_267, N_268, N_269 );
DELAY DELAY_189 ( N_267, B3 );
DELAY DELAY_190 ( N_268, B7 );
DELAY DELAY_191 ( N_269, B6 );

RISEFALL RISEFALL_192 ( .Y(N_271), .IN1(N_266) );
AND3 AND3_193 ( N_272, N_273, N_274, N_275 );
DELAY DELAY_194 ( N_273, B7 );
DELAY DELAY_195 ( N_274, B4 );
DELAY DELAY_196 ( N_275, B6 );

RISEFALL RISEFALL_197 ( .Y(N_277), .IN1(N_272) );

RISEFALL RISEFALL_198 ( .Y(N_279), .IN1(N_254) );
DELAY DELAY_199 ( N_280, N_281 );
XOR2 XOR2_200 ( N_281, N_282, N_289 );
OR1 OR1_201 ( N_282, N_287 );
AND1 AND1_202 ( N_283, N_284 );
DELAY DELAY_203 ( N_284, B0 );

RISEFALL RISEFALL_204 ( .Y(N_287), .IN1(N_283) );

RISEFALL RISEFALL_205 ( .Y(N_289), .IN1(N_254) );
DELAY DELAY_206 ( z74185_2zY3_OUT, z74185_2zY3_IN1 );
XOR2 XOR2_207 ( z74185_2zY3_IN1, N_292, N_327 );
OR4 OR4_208 ( N_292, N_300, N_308, N_316, N_324 );
AND5 AND5_209 ( N_293, N_294, N_295, N_296, N_297, N_298 );
DELAY DELAY_210 ( N_294, B1 );
DELAY DELAY_211 ( N_295, z74185_1zY3_OUT );
DELAY DELAY_212 ( N_296, z74185_1zY1_OUTxNOT );
DELAY DELAY_213 ( N_297, z74185_1zY2_OUTxNOT );
DELAY DELAY_214 ( N_298, B2 );

RISEFALL RISEFALL_215 ( .Y(N_300), .IN1(N_293) );
AND5 AND5_216 ( N_301, N_302, N_303, N_304, N_305, N_306 );
INV INV_217 ( N_302, z74185_1zY2_OUTxNOT );
INV INV_218 ( N_303, z74185_1zY1_OUTxNOT );
INV INV_219 ( N_304, z74185_1zY3_OUT );
INV INV_220 ( N_305, B1 );
DELAY DELAY_221 ( N_306, B2 );

RISEFALL RISEFALL_222 ( .Y(N_308), .IN1(N_301) );
AND5 AND5_223 ( N_309, N_310, N_311, N_312, N_313, N_314 );
INV INV_224 ( N_310, B2 );
INV INV_225 ( N_311, z74185_1zY2_OUTxNOT );
INV INV_226 ( N_312, z74185_1zY3_OUT );
DELAY DELAY_227 ( N_313, B1 );
DELAY DELAY_228 ( N_314, z74185_1zY1_OUTxNOT );

RISEFALL RISEFALL_229 ( .Y(N_316), .IN1(N_309) );
AND5 AND5_230 ( N_317, N_318, N_319, N_320, N_321, N_322 );
INV INV_231 ( N_318, B2 );
INV INV_232 ( N_319, z74185_1zY1_OUTxNOT );
INV INV_233 ( N_320, z74185_1zY3_OUT );
INV INV_234 ( N_321, B1 );
DELAY DELAY_235 ( N_322, z74185_1zY2_OUTxNOT );

RISEFALL RISEFALL_236 ( .Y(N_324), .IN1(N_317) );
AND1 AND1_237 ( N_325, gnd );

RISEFALL RISEFALL_238 ( .Y(N_327), .IN1(N_325) );
DELAY DELAY_239 ( z74185_2zY1_OUT, z74185_2zY1_IN1 );
XOR2 XOR2_240 ( z74185_2zY1_IN1, N_330, N_377 );
OR5 OR5_241 ( N_330, N_338, N_346, N_354, N_366, N_375 );
AND5 AND5_242 ( N_331, N_332, N_333, N_334, N_335, N_336 );
INV INV_243 ( N_332, B2 );
INV INV_244 ( N_333, z74185_1zY2_OUTxNOT );
INV INV_245 ( N_334, z74185_1zY1_OUTxNOT );
INV INV_246 ( N_335, z74185_1zY3_OUT );
DELAY DELAY_247 ( N_336, B1 );

RISEFALL RISEFALL_248 ( .Y(N_338), .IN1(N_331) );
AND5 AND5_249 ( N_339, N_340, N_341, N_342, N_343, N_344 );
INV INV_250 ( N_340, z74185_1zY1_OUTxNOT );
INV INV_251 ( N_341, z74185_1zY3_OUT );
INV INV_252 ( N_342, B1 );
DELAY DELAY_253 ( N_343, z74185_1zY2_OUTxNOT );
DELAY DELAY_254 ( N_344, B2 );

RISEFALL RISEFALL_255 ( .Y(N_346), .IN1(N_339) );
AND5 AND5_256 ( N_347, N_348, N_349, N_350, N_351, N_352 );
INV INV_257 ( N_348, B2 );
INV INV_258 ( N_349, z74185_1zY2_OUTxNOT );
INV INV_259 ( N_350, z74185_1zY3_OUT );
INV INV_260 ( N_351, B1 );
DELAY DELAY_261 ( N_352, z74185_1zY1_OUTxNOT );

RISEFALL RISEFALL_262 ( .Y(N_354), .IN1(N_347) );
AND4 AND4_263 ( N_355, N_356, N_362, N_363, N_364 );
INV INV_264 ( N_356, N_361 );
AND2 AND2_265 ( N_357, N_358, N_359 );
INV INV_266 ( N_358, B2 );
INV INV_267 ( N_359, z74185_1zY2_OUTxNOT );

RISEFALL RISEFALL_268 ( .Y(N_361), .IN1(N_357) );
INV INV_269 ( N_362, B1 );
DELAY DELAY_270 ( N_363, z74185_1zY3_OUT );
DELAY DELAY_271 ( N_364, z74185_1zY1_OUTxNOT );

RISEFALL RISEFALL_272 ( .Y(N_366), .IN1(N_355) );
AND4 AND4_273 ( N_367, N_368, N_371, N_372, N_373 );
INV INV_274 ( N_368, N_370 );

RISEFALL RISEFALL_275 ( .Y(N_370), .IN1(N_357) );
INV INV_276 ( N_371, z74185_1zY3_OUT );
DELAY DELAY_277 ( N_372, B1 );
DELAY DELAY_278 ( N_373, z74185_1zY1_OUTxNOT );

RISEFALL RISEFALL_279 ( .Y(N_375), .IN1(N_367) );

RISEFALL RISEFALL_280 ( .Y(N_377), .IN1(N_325) );
DELAY DELAY_281 ( z74185_2zY2_OUT, z74185_2zY2_IN1 );
XOR2 XOR2_282 ( z74185_2zY2_IN1, N_380, N_457 );
OR4 OR4_283 ( N_380, N_402, N_413, N_430, N_448 );
AND5 AND5_284 ( N_381, N_382, N_390, N_398, N_399, N_400 );
INV INV_285 ( N_382, N_389 );
AND4 AND4_286 ( N_383, N_384, N_385, N_386, N_387 );
INV INV_287 ( N_384, z74185_1zY1_OUTxNOT );
INV INV_288 ( N_385, z74185_1zY3_OUT );
INV INV_289 ( N_386, B1 );
DELAY DELAY_290 ( N_387, z74185_1zY2_OUTxNOT );

RISEFALL RISEFALL_291 ( .Y(N_389), .IN1(N_383) );
INV INV_292 ( N_390, N_397 );
AND4 AND4_293 ( N_391, N_392, N_393, N_394, N_395 );
DELAY DELAY_294 ( N_392, B1 );
DELAY DELAY_295 ( N_393, z74185_1zY3_OUT );
DELAY DELAY_296 ( N_394, z74185_1zY1_OUTxNOT );
DELAY DELAY_297 ( N_395, B2 );

RISEFALL RISEFALL_298 ( .Y(N_397), .IN1(N_391) );
INV INV_299 ( N_398, z74185_1zY2_OUTxNOT );
DELAY DELAY_300 ( N_399, z74185_1zY3_OUT );
DELAY DELAY_301 ( N_400, z74185_1zY1_OUTxNOT );

RISEFALL RISEFALL_302 ( .Y(N_402), .IN1(N_381) );
AND4 AND4_303 ( N_403, N_404, N_407, N_410, N_411 );
INV INV_304 ( N_404, N_406 );

RISEFALL RISEFALL_305 ( .Y(N_406), .IN1(N_383) );
INV INV_306 ( N_407, N_409 );

RISEFALL RISEFALL_307 ( .Y(N_409), .IN1(N_391) );
INV INV_308 ( N_410, z74185_1zY2_OUTxNOT );
DELAY DELAY_309 ( N_411, B2 );

RISEFALL RISEFALL_310 ( .Y(N_413), .IN1(N_403) );
AND5 AND5_311 ( N_414, N_415, N_421, N_424, N_427, N_428 );
INV INV_312 ( N_415, N_420 );
AND2 AND2_313 ( N_416, N_417, N_418 );
INV INV_314 ( N_417, z74185_1zY1_OUTxNOT );
INV INV_315 ( N_418, z74185_1zY3_OUT );

RISEFALL RISEFALL_316 ( .Y(N_420), .IN1(N_416) );
INV INV_317 ( N_421, N_423 );

RISEFALL RISEFALL_318 ( .Y(N_423), .IN1(N_383) );
INV INV_319 ( N_424, N_426 );

RISEFALL RISEFALL_320 ( .Y(N_426), .IN1(N_391) );
INV INV_321 ( N_427, z74185_1zY2_OUTxNOT );
DELAY DELAY_322 ( N_428, B1 );

RISEFALL RISEFALL_323 ( .Y(N_430), .IN1(N_414) );
AND5 AND5_324 ( N_431, N_432, N_439, N_442, N_445, N_446 );
INV INV_325 ( N_432, N_438 );
AND3 AND3_326 ( N_433, N_434, N_435, N_436 );
DELAY DELAY_327 ( N_434, B1 );
DELAY DELAY_328 ( N_435, z74185_1zY3_OUT );
DELAY DELAY_329 ( N_436, z74185_1zY1_OUTxNOT );

RISEFALL RISEFALL_330 ( .Y(N_438), .IN1(N_433) );
INV INV_331 ( N_439, N_441 );

RISEFALL RISEFALL_332 ( .Y(N_441), .IN1(N_383) );
INV INV_333 ( N_442, N_444 );

RISEFALL RISEFALL_334 ( .Y(N_444), .IN1(N_391) );
INV INV_335 ( N_445, B2 );
DELAY DELAY_336 ( N_446, z74185_1zY2_OUTxNOT );

RISEFALL RISEFALL_337 ( .Y(N_448), .IN1(N_431) );
AND2 AND2_338 ( N_449, N_450, N_453 );
INV INV_339 ( N_450, N_452 );

RISEFALL RISEFALL_340 ( .Y(N_452), .IN1(N_383) );
INV INV_341 ( N_453, N_455 );

RISEFALL RISEFALL_342 ( .Y(N_455), .IN1(N_391) );

RISEFALL RISEFALL_343 ( .Y(N_457), .IN1(N_449) );
DELAY DELAY_344 ( z74185_1zY3_OUT, z74185_1zY3_IN1 );
XOR2 XOR2_345 ( z74185_1zY3_IN1, N_459, N_476 );
OR1 OR1_346 ( N_459, N_471 );
AND1 AND1_347 ( N_460, N_461 );
INV INV_348 ( N_461, N_469 );
AND5 AND5_349 ( N_462, N_463, N_464, N_465, N_466, N_467 );
INV INV_350 ( N_463, B4 );
DELAY DELAY_351 ( N_464, B3 );
DELAY DELAY_352 ( N_465, B7 );
DELAY DELAY_353 ( N_466, B5 );
DELAY DELAY_354 ( N_467, B6 );

RISEFALL RISEFALL_355 ( .Y(N_469), .IN1(N_462) );

RISEFALL RISEFALL_356 ( .Y(N_471), .IN1(N_460) );
AND1 AND1_357 ( N_472, N_473 );
INV INV_358 ( N_473, z74185_1zY3x1_OUT );

RISEFALL RISEFALL_359 ( .Y(N_476), .IN1(N_472) );
INV INV_360 ( z74185_1zY1_OUT, z74185_1zY1_OUTxNOT );
DELAY DELAY_361 ( z74185_1zY1_OUTxNOT, z74185_1zY1_6K_WL_INV );
INV INV_362 ( z74185_1zY1_IN1, z74185_1zY1_6K_WL_INV );
XOR2 XOR2_363 ( z74185_1zY1_6K_WL_INV, N_480, N_527 );
OR4 OR4_364 ( N_480, N_490, N_503, N_513, N_523 );
AND6 AND6_365 ( N_481, N_482, N_484, N_485, N_486, N_487, N_488 );
INV INV_366 ( N_482, z74185_1zY1x1_OUT );
INV INV_367 ( N_484, B4 );
INV INV_368 ( N_485, B5 );
INV INV_369 ( N_486, B7 );
INV INV_370 ( N_487, B3 );
DELAY DELAY_371 ( N_488, B6 );

RISEFALL RISEFALL_372 ( .Y(N_490), .IN1(N_481) );
AND5 AND5_373 ( N_491, N_492, N_493, N_499, N_500, N_501 );
INV INV_374 ( N_492, z74185_1zY1x1_OUT );
INV INV_375 ( N_493, N_498 );
AND2 AND2_376 ( N_494, N_495, N_496 );
INV INV_377 ( N_495, B4 );
DELAY DELAY_378 ( N_496, B6 );

RISEFALL RISEFALL_379 ( .Y(N_498), .IN1(N_494) );
INV INV_380 ( N_499, B5 );
INV INV_381 ( N_500, B3 );
DELAY DELAY_382 ( N_501, B7 );

RISEFALL RISEFALL_383 ( .Y(N_503), .IN1(N_491) );
AND5 AND5_384 ( N_504, N_505, N_506, N_509, N_510, N_511 );
INV INV_385 ( N_505, z74185_1zY1x1_OUT );
INV INV_386 ( N_506, N_508 );

RISEFALL RISEFALL_387 ( .Y(N_508), .IN1(N_494) );
INV INV_388 ( N_509, B5 );
INV INV_389 ( N_510, B7 );
DELAY DELAY_390 ( N_511, B3 );

RISEFALL RISEFALL_391 ( .Y(N_513), .IN1(N_504) );
AND5 AND5_392 ( N_514, N_515, N_516, N_519, N_520, N_521 );
INV INV_393 ( N_515, z74185_1zY1x1_OUT );
INV INV_394 ( N_516, N_518 );

RISEFALL RISEFALL_395 ( .Y(N_518), .IN1(N_494) );
DELAY DELAY_396 ( N_519, B3 );
DELAY DELAY_397 ( N_520, B7 );
DELAY DELAY_398 ( N_521, B5 );

RISEFALL RISEFALL_399 ( .Y(N_523), .IN1(N_514) );
AND1 AND1_400 ( N_524, N_525 );
INV INV_401 ( N_525, z74185_1zY1x1_OUT );

RISEFALL RISEFALL_402 ( .Y(N_527), .IN1(N_524) );
INV INV_403 ( z74185_1zY2_OUT, z74185_1zY2_OUTxNOT );
DELAY DELAY_404 ( z74185_1zY2_OUTxNOT, z74185_1zY2_6K_WL_INV );
INV INV_405 ( z74185_1zY2_IN1, z74185_1zY2_6K_WL_INV );
XOR2 XOR2_406 ( z74185_1zY2_6K_WL_INV, N_531, N_581 );
OR4 OR4_407 ( N_531, N_541, N_554, N_567, N_577 );
AND6 AND6_408 ( N_532, N_533, N_535, N_536, N_537, N_538, N_539 );
INV INV_409 ( N_533, z74185_1zY2x1_OUT );
INV INV_410 ( N_535, B5 );
DELAY DELAY_411 ( N_536, B3 );
DELAY DELAY_412 ( N_537, B7 );
DELAY DELAY_413 ( N_538, B4 );
DELAY DELAY_414 ( N_539, B6 );

RISEFALL RISEFALL_415 ( .Y(N_541), .IN1(N_532) );
AND5 AND5_416 ( N_542, N_543, N_544, N_550, N_551, N_552 );
INV INV_417 ( N_543, z74185_1zY2x1_OUT );
INV INV_418 ( N_544, N_549 );
AND2 AND2_419 ( N_545, N_546, N_547 );
INV INV_420 ( N_546, B5 );
DELAY DELAY_421 ( N_547, B7 );

RISEFALL RISEFALL_422 ( .Y(N_549), .IN1(N_545) );
INV INV_423 ( N_550, B6 );
DELAY DELAY_424 ( N_551, B3 );
DELAY DELAY_425 ( N_552, B4 );

RISEFALL RISEFALL_426 ( .Y(N_554), .IN1(N_542) );
AND5 AND5_427 ( N_555, N_556, N_557, N_563, N_564, N_565 );
INV INV_428 ( N_556, z74185_1zY2x1_OUT );
INV INV_429 ( N_557, N_562 );
AND2 AND2_430 ( N_558, N_559, N_560 );
INV INV_431 ( N_559, B7 );
DELAY DELAY_432 ( N_560, B5 );

RISEFALL RISEFALL_433 ( .Y(N_562), .IN1(N_558) );
INV INV_434 ( N_563, B6 );
INV INV_435 ( N_564, B3 );
DELAY DELAY_436 ( N_565, B4 );

RISEFALL RISEFALL_437 ( .Y(N_567), .IN1(N_555) );
AND5 AND5_438 ( N_568, N_569, N_570, N_573, N_574, N_575 );
INV INV_439 ( N_569, z74185_1zY2x1_OUT );
INV INV_440 ( N_570, N_572 );

RISEFALL RISEFALL_441 ( .Y(N_572), .IN1(N_545) );
INV INV_442 ( N_573, B4 );
INV INV_443 ( N_574, B3 );
DELAY DELAY_444 ( N_575, B6 );

RISEFALL RISEFALL_445 ( .Y(N_577), .IN1(N_568) );
AND1 AND1_446 ( N_578, N_579 );
INV INV_447 ( N_579, z74185_1zY2x1_OUT );

RISEFALL RISEFALL_448 ( .Y(N_581), .IN1(N_578) );
DELAY DELAY_449 ( z74185_3z_36_OUT, z74185_3z_36_IN1 );
XOR2 XOR2_450 ( z74185_3z_36_IN1, N_583, N_610 );
OR3 OR3_451 ( N_583, N_591, N_599, N_607 );
AND5 AND5_452 ( N_584, N_585, N_586, N_587, N_588, N_589 );
INV INV_453 ( N_585, B7 );
DELAY DELAY_454 ( N_586, B3 );
DELAY DELAY_455 ( N_587, B5 );
DELAY DELAY_456 ( N_588, B4 );
DELAY DELAY_457 ( N_589, B6 );

RISEFALL RISEFALL_458 ( .Y(N_591), .IN1(N_584) );
AND5 AND5_459 ( N_592, N_593, N_594, N_595, N_596, N_597 );
INV INV_460 ( N_593, B6 );
INV INV_461 ( N_594, B4 );
INV INV_462 ( N_595, B5 );
INV INV_463 ( N_596, B3 );
DELAY DELAY_464 ( N_597, B7 );

RISEFALL RISEFALL_465 ( .Y(N_599), .IN1(N_592) );
AND5 AND5_466 ( N_600, N_601, N_602, N_603, N_604, N_605 );
INV INV_467 ( N_601, B2 );
INV INV_468 ( N_602, B6 );
INV INV_469 ( N_603, B4 );
INV INV_470 ( N_604, B5 );
DELAY DELAY_471 ( N_605, B7 );

RISEFALL RISEFALL_472 ( .Y(N_607), .IN1(N_600) );
AND1 AND1_473 ( N_608, gnd );

RISEFALL RISEFALL_474 ( .Y(N_610), .IN1(N_608) );
DELAY DELAY_475 ( z74185_3z_35_OUT, z74185_3z_35_IN1 );
XOR2 XOR2_476 ( z74185_3z_35_IN1, N_612, N_629 );
OR2 OR2_477 ( N_612, N_620, N_627 );
AND5 AND5_478 ( N_613, N_614, N_615, N_616, N_617, N_618 );
INV INV_479 ( N_614, B2 );
INV INV_480 ( N_615, B6 );
INV INV_481 ( N_616, B3 );
DELAY DELAY_482 ( N_617, B7 );
DELAY DELAY_483 ( N_618, B5 );

RISEFALL RISEFALL_484 ( .Y(N_620), .IN1(N_613) );
AND4 AND4_485 ( N_621, N_622, N_623, N_624, N_625 );
INV INV_486 ( N_622, B6 );
INV INV_487 ( N_623, B4 );
DELAY DELAY_488 ( N_624, B7 );
DELAY DELAY_489 ( N_625, B5 );

RISEFALL RISEFALL_490 ( .Y(N_627), .IN1(N_621) );

RISEFALL RISEFALL_491 ( .Y(N_629), .IN1(N_608) );
DELAY DELAY_492 ( z74185_3z_32_OUT, z74185_3z_32_IN1 );
XOR2 XOR2_493 ( z74185_3z_32_IN1, N_631, N_665 );
OR4 OR4_494 ( N_631, N_638, N_645, N_654, N_663 );
AND4 AND4_495 ( N_632, N_633, N_634, N_635, N_636 );
INV INV_496 ( N_633, B4 );
DELAY DELAY_497 ( N_634, B7 );
DELAY DELAY_498 ( N_635, B5 );
DELAY DELAY_499 ( N_636, B6 );

RISEFALL RISEFALL_500 ( .Y(N_638), .IN1(N_632) );
AND4 AND4_501 ( N_639, N_640, N_641, N_642, N_643 );
INV INV_502 ( N_640, B4 );
INV INV_503 ( N_641, B5 );
INV INV_504 ( N_642, B7 );
DELAY DELAY_505 ( N_643, B6 );

RISEFALL RISEFALL_506 ( .Y(N_645), .IN1(N_639) );
AND6 AND6_507 ( N_646, N_647, N_648, N_649, N_650, N_651, N_652 );
INV INV_508 ( N_647, B5 );
DELAY DELAY_509 ( N_648, B3 );
DELAY DELAY_510 ( N_649, B7 );
DELAY DELAY_511 ( N_650, B4 );
DELAY DELAY_512 ( N_651, B6 );
DELAY DELAY_513 ( N_652, B2 );

RISEFALL RISEFALL_514 ( .Y(N_654), .IN1(N_646) );
AND6 AND6_515 ( N_655, N_656, N_657, N_658, N_659, N_660, N_661 );
INV INV_516 ( N_656, B6 );
INV INV_517 ( N_657, B7 );
DELAY DELAY_518 ( N_658, B3 );
DELAY DELAY_519 ( N_659, B5 );
DELAY DELAY_520 ( N_660, B4 );
DELAY DELAY_521 ( N_661, B2 );

RISEFALL RISEFALL_522 ( .Y(N_663), .IN1(N_655) );

RISEFALL RISEFALL_523 ( .Y(N_665), .IN1(N_608) );
DELAY DELAY_524 ( z74185_3z_29_OUT, z74185_3z_29_IN1 );
XOR2 XOR2_525 ( z74185_3z_29_IN1, N_667, N_708 );
OR5 OR5_526 ( N_667, N_674, N_682, N_690, N_698, N_706 );
AND4 AND4_527 ( N_668, N_669, N_670, N_671, N_672 );
INV INV_528 ( N_669, B4 );
INV INV_529 ( N_670, B5 );
INV INV_530 ( N_671, B7 );
DELAY DELAY_531 ( N_672, B6 );

RISEFALL RISEFALL_532 ( .Y(N_674), .IN1(N_668) );
AND5 AND5_533 ( N_675, N_676, N_677, N_678, N_679, N_680 );
INV INV_534 ( N_676, B6 );
INV INV_535 ( N_677, B5 );
INV INV_536 ( N_678, B7 );
DELAY DELAY_537 ( N_679, B3 );
DELAY DELAY_538 ( N_680, B4 );

RISEFALL RISEFALL_539 ( .Y(N_682), .IN1(N_675) );
AND5 AND5_540 ( N_683, N_684, N_685, N_686, N_687, N_688 );
INV INV_541 ( N_684, B6 );
INV INV_542 ( N_685, B5 );
INV INV_543 ( N_686, B7 );
DELAY DELAY_544 ( N_687, B4 );
DELAY DELAY_545 ( N_688, B2 );

RISEFALL RISEFALL_546 ( .Y(N_690), .IN1(N_683) );
AND5 AND5_547 ( N_691, N_692, N_693, N_694, N_695, N_696 );
INV INV_548 ( N_692, B6 );
INV INV_549 ( N_693, B4 );
INV INV_550 ( N_694, B7 );
INV INV_551 ( N_695, B3 );
DELAY DELAY_552 ( N_696, B5 );

RISEFALL RISEFALL_553 ( .Y(N_698), .IN1(N_691) );
AND5 AND5_554 ( N_699, N_700, N_701, N_702, N_703, N_704 );
INV INV_555 ( N_700, B6 );
INV INV_556 ( N_701, B7 );
DELAY DELAY_557 ( N_702, B3 );
DELAY DELAY_558 ( N_703, B4 );
DELAY DELAY_559 ( N_704, B2 );

RISEFALL RISEFALL_560 ( .Y(N_706), .IN1(N_699) );

RISEFALL RISEFALL_561 ( .Y(N_708), .IN1(N_608) );
DELAY DELAY_562 ( z74185_1zY3x1_OUT, z74185_1zY3x1_IN1 );
XOR2 XOR2_563 ( z74185_1zY3x1_IN1, N_710, N_753 );
OR5 OR5_564 ( N_710, N_718, N_726, N_734, N_742, N_750 );
AND5 AND5_565 ( N_711, N_712, N_713, N_714, N_715, N_716 );
INV INV_566 ( N_712, B6 );
INV INV_567 ( N_713, B5 );
DELAY DELAY_568 ( N_714, B3 );
DELAY DELAY_569 ( N_715, B7 );
DELAY DELAY_570 ( N_716, B4 );

RISEFALL RISEFALL_571 ( .Y(N_718), .IN1(N_711) );
AND5 AND5_572 ( N_719, N_720, N_721, N_722, N_723, N_724 );
INV INV_573 ( N_720, B7 );
INV INV_574 ( N_721, B3 );
DELAY DELAY_575 ( N_722, B5 );
DELAY DELAY_576 ( N_723, B4 );
DELAY DELAY_577 ( N_724, B6 );

RISEFALL RISEFALL_578 ( .Y(N_726), .IN1(N_719) );
AND5 AND5_579 ( N_727, N_728, N_729, N_730, N_731, N_732 );
INV INV_580 ( N_728, B4 );
INV INV_581 ( N_729, B5 );
INV INV_582 ( N_730, B3 );
DELAY DELAY_583 ( N_731, B7 );
DELAY DELAY_584 ( N_732, B6 );

RISEFALL RISEFALL_585 ( .Y(N_734), .IN1(N_727) );
AND5 AND5_586 ( N_735, N_736, N_737, N_738, N_739, N_740 );
INV INV_587 ( N_736, B4 );
INV INV_588 ( N_737, B5 );
INV INV_589 ( N_738, B7 );
DELAY DELAY_590 ( N_739, B3 );
DELAY DELAY_591 ( N_740, B6 );

RISEFALL RISEFALL_592 ( .Y(N_742), .IN1(N_735) );
AND5 AND5_593 ( N_743, N_744, N_745, N_746, N_747, N_748 );
INV INV_594 ( N_744, B6 );
INV INV_595 ( N_745, B4 );
INV INV_596 ( N_746, B7 );
INV INV_597 ( N_747, B3 );
DELAY DELAY_598 ( N_748, B5 );

RISEFALL RISEFALL_599 ( .Y(N_750), .IN1(N_743) );
AND1 AND1_600 ( N_751, gnd );

RISEFALL RISEFALL_601 ( .Y(N_753), .IN1(N_751) );
DELAY DELAY_602 ( z74185_1zY1x1_OUT, z74185_1zY1x1_IN1 );
XOR2 XOR2_603 ( z74185_1zY1x1_IN1, N_755, N_782 );
OR3 OR3_604 ( N_755, N_763, N_771, N_779 );
AND5 AND5_605 ( N_756, N_757, N_758, N_759, N_760, N_761 );
INV INV_606 ( N_757, B4 );
INV INV_607 ( N_758, B7 );
DELAY DELAY_608 ( N_759, B3 );
DELAY DELAY_609 ( N_760, B5 );
DELAY DELAY_610 ( N_761, B6 );

RISEFALL RISEFALL_611 ( .Y(N_763), .IN1(N_756) );
AND5 AND5_612 ( N_764, N_765, N_766, N_767, N_768, N_769 );
INV INV_613 ( N_765, B4 );
INV INV_614 ( N_766, B3 );
DELAY DELAY_615 ( N_767, B7 );
DELAY DELAY_616 ( N_768, B5 );
DELAY DELAY_617 ( N_769, B6 );

RISEFALL RISEFALL_618 ( .Y(N_771), .IN1(N_764) );
AND5 AND5_619 ( N_772, N_773, N_774, N_775, N_776, N_777 );
INV INV_620 ( N_773, B6 );
INV INV_621 ( N_774, B7 );
INV INV_622 ( N_775, B3 );
DELAY DELAY_623 ( N_776, B5 );
DELAY DELAY_624 ( N_777, B4 );

RISEFALL RISEFALL_625 ( .Y(N_779), .IN1(N_772) );
AND1 AND1_626 ( N_780, gnd );

RISEFALL RISEFALL_627 ( .Y(N_782), .IN1(N_780) );
DELAY DELAY_628 ( z74185_3zY2x1_OUT, z74185_3zY2x1_IN1 );
XOR2 XOR2_629 ( z74185_3zY2x1_IN1, N_784, N_806 );
OR3 OR3_630 ( N_784, N_791, N_797, N_803 );
AND4 AND4_631 ( N_785, N_786, N_787, N_788, N_789 );
INV INV_632 ( N_786, B4 );
INV INV_633 ( N_787, B7 );
INV INV_634 ( N_788, B3 );
DELAY DELAY_635 ( N_789, B5 );

RISEFALL RISEFALL_636 ( .Y(N_791), .IN1(N_785) );
AND3 AND3_637 ( N_792, N_793, N_794, N_795 );
INV INV_638 ( N_793, B7 );
DELAY DELAY_639 ( N_794, B5 );
DELAY DELAY_640 ( N_795, B6 );

RISEFALL RISEFALL_641 ( .Y(N_797), .IN1(N_792) );
AND3 AND3_642 ( N_798, N_799, N_800, N_801 );
INV INV_643 ( N_799, B6 );
INV INV_644 ( N_800, B5 );
INV INV_645 ( N_801, B7 );

RISEFALL RISEFALL_646 ( .Y(N_803), .IN1(N_798) );
AND1 AND1_647 ( N_804, gnd );

RISEFALL RISEFALL_648 ( .Y(N_806), .IN1(N_804) );
DELAY DELAY_649 ( z74185_1zY2x1_OUT, z74185_1zY2x1_IN1 );
XOR2 XOR2_650 ( z74185_1zY2x1_IN1, N_808, N_826 );
OR2 OR2_651 ( N_808, N_816, N_823 );
AND5 AND5_652 ( N_809, N_810, N_811, N_812, N_813, N_814 );
INV INV_653 ( N_810, B6 );
INV INV_654 ( N_811, B4 );
INV INV_655 ( N_812, B5 );
DELAY DELAY_656 ( N_813, B3 );
DELAY DELAY_657 ( N_814, B7 );

RISEFALL RISEFALL_658 ( .Y(N_816), .IN1(N_809) );
AND4 AND4_659 ( N_817, N_818, N_819, N_820, N_821 );
INV INV_660 ( N_818, B4 );
INV INV_661 ( N_819, B7 );
DELAY DELAY_662 ( N_820, B5 );
DELAY DELAY_663 ( N_821, B6 );

RISEFALL RISEFALL_664 ( .Y(N_823), .IN1(N_817) );
AND1 AND1_665 ( N_824, gnd );

RISEFALL RISEFALL_666 ( .Y(N_826), .IN1(N_824) );

endmodule
___________________________________________________________________________________



Після створення нового проекту і компіляції отриманого файлу з розширенням *.vo компілятор видавав такі помилки :
1.
 

Виявилось що згенерований код на Verilog із стрічкою “`timescale 10 ps / 100 ps” не підтримується компілятором. Тобто при переводі проекту в Verilog code ця стрічка генерується але компілятором вона не підтримується, коли компілювати проект який написаний на Verilog коді і згенерований тим же компілятором. Вирішив просто закоментувати стрічку (перед стрічкою //).
2.



 Компілятор сказав що по стандарту Verilog він незнає що таке Delay, вірніше Delay має бути описаний як модуль, функція або блок параметрів. В принципі воно так і є Delay повинен був викликати функцію з файла binary_bcd_8.sdo, де взяти файл описують стрічки наведені нижче...

parameter SDFFILE = "binary_bcd_8.sdo";
initial $sdf_annotate(SDFFILE);
Оскільки файли існує і в ньому дійсно описано модуль Delay, але воно не працює. Був ще й інший варіант витягнути параметри Delay, він полягав в тому, що під час компіляції параметр налаштування Verilog Writer виставити так як на рис. 3

                                                               Рис. 3
Тобто згенерувати файл в якому буде описано все і проект і затримки які в проекті, але при цьому файл *.vo буде структурований не так як вказано вище, це означає що окрім стрічки наприклад ....
DELAY DELAY_21 ( z74185_2zY4_OUT, z74185_2zY4_IN1 );
... буде додана ще одна із параметром затримки. Але нам затримки не дуже то і зарас потрібні, нам треба витягнути з заданого файлу структуру проекта. Тому вирішено було стрічки ...
DELAY DELAY_21 ( z74185_2zY4_OUT, z74185_2zY4_IN1 );
..замінити на, або створити нову , а DELAY закоментувати а замість них написати іншу стрічку з тими ж самими іменами зв’язків ...
assign z74185_2zY4_OUT = z74185_2zY4_IN1;
оскільки z74185_2zY4_OUT та z74185_2zY4_IN1 описані в проекті як WIRE, то заміненою стрічкою ми просто обєднуємо зв’язки.
Те саме і стосується стрічок ...
RISEFALL RISEFALL_28 ( .Y(N_64), .IN1(N_56) );
замінемо на assign N_64 = N_56;
3.
Наступною помилкою компілятора була така “не знаю що таке “INV” ”, від слова “invertor”, тобто простий елемент NOT, в стандарті Verilog він точно є а ось “INV” точно то не знаю чи є . Тому всюди де зустрічається в файлі елемент “INV” було замінено на not.
Як результат отримаємо стрічку такого вигляду(як приклад):
not INV_25 ( N_57, z74185_1zY1_OUTxNOT );
4.
Те саме стосується і XOR2, XOR3, XOR4, XOR5 просто замінимо на xor:
xor  XOR2_22 ( z74185_2zY4_IN1, N_55, N_91 );
5.
Також поступимо із елементами OR2, OR3, OR4, OR5, просто замінимо на or
or OR5_23 ( N_55, N_64, N_71, N_77, N_83, N_88 );
6.
 

І з елементом AND2, AND3, AND4, AND5, та інші якщо вони є.
and AND3_24 ( N_56, N_57, N_59, N_61 );

Крім того хотів би акцентувати вашу увагу на тому що інколи компілятор створює елементи “пустушки” типу :
AND1 AND1_44 ( N_84, N_85 );
або
OR1 OR1_201 ( N_282, N_287 );
Оскільки AND і OR є функціями то в нашому випадку це не так, бо для таких функції потрібно хоча б дві вхідні змінні а у нас одна. Тому як і у випадку з DELAY вирішено було використати елемент “assign”.
Тобто знов ж таки переназначити зв’язки WIRE.
assign N_84 = N_85 ;
та
assign N_282 = N_287 ;

Також “assign” стосується і стрічок
//TRIBUF TRIBUF_2 ( .Y(out_2_0), .IN1(z74185_2zY4_OUT), .OE(vcc) );
//TRIBUF TRIBUF_4 ( .Y(out_3_0), .IN1(z74185_3zY4_OUT), .OE(vcc) );
//TRIBUF TRIBUF_6 ( .Y(out_2_1), .IN1(z74185_3zY1_OUT), .OE(vcc) );
//TRIBUF TRIBUF_8 ( .Y(out_2_2), .IN1(z74185_3zY2_OUT), .OE(vcc) );
//TRIBUF TRIBUF_10 ( .Y(out_2_3), .IN1(z74185_3zY3_OUT), .OE(vcc) );
//TRIBUF TRIBUF_12 ( .Y(out_3_1), .IN1(z74185_3zY5_OUT), .OE(vcc) );
//TRIBUF TRIBUF_14 ( .Y(out_1_0), .IN1(N_280), .OE(vcc) );
//TRIBUF TRIBUF_16 ( .Y(out_1_3), .IN1(z74185_2zY3_OUT), .OE(vcc) );
//TRIBUF TRIBUF_18 ( .Y(out_1_1), .IN1(z74185_2zY1_OUT), .OE(vcc) );
//TRIBUF TRIBUF_20 ( .Y(out_1_2), .IN1(z74185_2zY2_OUT), .OE(vcc) );
Я їх просто закоментував а замість них створив нові стрічки:
assign out_2_0 = z74185_2zY4_OUT;
assign out_3_0 = z74185_3zY4_OUT;
assign out_2_1 = z74185_3zY1_OUT;
assign out_2_2 = z74185_3zY2_OUT;
assign out_2_3 = z74185_3zY3_OUT;
assign out_3_1 = z74185_3zY5_OUT;
assign out_1_0 = N_280;
assign out_1_3 = z74185_2zY3_OUT;
assign out_1_1 = z74185_2zY1_OUT;
assign out_1_2 = z74185_2zY2_OUT;

 
Після нескладних вище наведених маніпуляцій з блокнотом я отримав такий новий код...
__________________________________________________________________ 
//// binary_bcd_8 (EPM3032ALC44-4)
//
// Copyright (C) 1988-2000 Altera Corporation
// Any megafunction design, and related net list (encrypted or decrypted),
// support information, device programming or simulation file, and any other
// associated documentation or information provided by Altera or a partner
// under Altera's Megafunction Partnership Program may be used only to
// program PLD devices (but not masked PLD devices) from Altera. Any other
// use of such megafunction design, net list, support information, device
// programming or simulation file, or any other related documentation or
// information is prohibited for any other purpose, including, but not
// limited to modification, reverse engineering, de-compiling, or use with
// any other silicon devices, unless such use is explicitly licensed under
// a separate agreement with Altera or a megafunction partner. Title to
// the intellectual property, including patents, copyrights, trademarks,
// trade secrets, or maskworks, embodied in any such megafunction design,
// net list, support information, device programming or simulation file, or
// any other related documentation or information provided by Altera or a
// megafunction partner, remains with Altera, the megafunction partner, or
// their respective licensors. No other licenses, including any licenses
// needed under any third party's intellectual property, are provided herein.
//
// MAX+plus II Version 10.0 RC2 9/14/2000
// Mon Sep 26 21:08:30 2011

//
//`timescale 10 ps / 100 ps


module minimaiz_blog_code (
B0,
B1,
B2,
B3,
B4,
B5,
B6,
B7,
out_1_0,
out_1_1,
out_1_2,
out_1_3,
out_2_0,
out_2_1,
out_2_2,
out_2_3,
out_3_0,
out_3_1);

input B0;
input B1;
input B2;
input B3;
input B4;
input B5;
input B6;
input B7;
output out_1_0;
output out_1_1;
output out_1_2;
output out_1_3;
output out_2_0;
output out_2_1;
output out_2_2;
output out_2_3;
output out_3_0;
output out_3_1;
supply0 gnd;
supply1 vcc;

//parameter SDFFILE = "binary_bcd_8.sdo";
//initial $sdf_annotate(SDFFILE);

wire
N_55, N_56, N_57, N_59, N_61, N_64, N_65, N_66, N_67, N_69, N_71, N_72,
N_73, N_74, N_75, N_77, N_78, N_79, N_80, N_81, N_83, N_84, N_85, N_88,
N_89, N_91, N_94, N_95, N_96, N_98, N_100, N_102, N_105, N_106, N_107,
N_108, N_109, N_110, N_112, N_113, N_114, N_116, N_117, N_118, N_120,
N_121, N_122, N_123, N_125, N_126, N_127, N_128, N_129, N_130, N_132,
N_133, N_135, N_138, N_139, N_140, N_143, N_144, N_145, N_148, N_149,
N_150, N_153, N_154, N_155, N_158, N_159, N_161, N_164, N_165, N_166,
N_168, N_169, N_170, N_172, N_173, N_174, N_175, N_176, N_177, N_179,
N_180, N_181, N_182, N_183, N_184, N_185, N_187, N_188, N_189, N_190,
N_191, N_193, N_194, N_195, N_196, N_197, N_198, N_199, N_201, N_202,
N_203, N_204, N_206, N_207, N_208, N_210, N_213, N_214, N_215, N_216,
N_217, N_218, N_219, N_221, N_222, N_223, N_224, N_225, N_226, N_227,
N_229, N_230, N_231, N_232, N_233, N_234, N_235, N_237, N_238, N_239,
N_240, N_241, N_242, N_244, N_245, N_246, N_247, N_248, N_249, N_250,
N_251, N_253, N_254, N_256, N_259, N_260, N_261, N_262, N_263, N_265,
N_266, N_267, N_268, N_269, N_271, N_272, N_273, N_274, N_275, N_277,
N_279, N_280, N_281, N_282, N_283, N_284, N_287, N_289, N_292, N_293,
N_294, N_295, N_296, N_297, N_298, N_300, N_301, N_302, N_303, N_304,
N_305, N_306, N_308, N_309, N_310, N_311, N_312, N_313, N_314, N_316,
N_317, N_318, N_319, N_320, N_321, N_322, N_324, N_325, N_327, N_330,
N_331, N_332, N_333, N_334, N_335, N_336, N_338, N_339, N_340, N_341,
N_342, N_343, N_344, N_346, N_347, N_348, N_349, N_350, N_351, N_352,
N_354, N_355, N_356, N_357, N_358, N_359, N_361, N_362, N_363, N_364,
N_366, N_367, N_368, N_370, N_371, N_372, N_373, N_375, N_377, N_380,
N_381, N_382, N_383, N_384, N_385, N_386, N_387, N_389, N_390, N_391,
N_392, N_393, N_394, N_395, N_397, N_398, N_399, N_400, N_402, N_403,
N_404, N_406, N_407, N_409, N_410, N_411, N_413, N_414, N_415, N_416,
N_417, N_418, N_420, N_421, N_423, N_424, N_426, N_427, N_428, N_430,
N_431, N_432, N_433, N_434, N_435, N_436, N_438, N_439, N_441, N_442,
N_444, N_445, N_446, N_448, N_449, N_450, N_452, N_453, N_455, N_457,
N_459, N_460, N_461, N_462, N_463, N_464, N_465, N_466, N_467, N_469,
N_471, N_472, N_473, N_476, N_480, N_481, N_482, N_484, N_485, N_486,
N_487, N_488, N_490, N_491, N_492, N_493, N_494, N_495, N_496, N_498,
N_499, N_500, N_501, N_503, N_504, N_505, N_506, N_508, N_509, N_510,
N_511, N_513, N_514, N_515, N_516, N_518, N_519, N_520, N_521, N_523,
N_524, N_525, N_527, N_531, N_532, N_533, N_535, N_536, N_537, N_538,
N_539, N_541, N_542, N_543, N_544, N_545, N_546, N_547, N_549, N_550,
N_551, N_552, N_554, N_555, N_556, N_557, N_558, N_559, N_560, N_562,
N_563, N_564, N_565, N_567, N_568, N_569, N_570, N_572, N_573, N_574,
N_575, N_577, N_578, N_579, N_581, N_583, N_584, N_585, N_586, N_587,
N_588, N_589, N_591, N_592, N_593, N_594, N_595, N_596, N_597, N_599,
N_600, N_601, N_602, N_603, N_604, N_605, N_607, N_608, N_610, N_612,
N_613, N_614, N_615, N_616, N_617, N_618, N_620, N_621, N_622, N_623,
N_624, N_625, N_627, N_629, N_631, N_632, N_633, N_634, N_635, N_636,
N_638, N_639, N_640, N_641, N_642, N_643, N_645, N_646, N_647, N_648,
N_649, N_650, N_651, N_652, N_654, N_655, N_656, N_657, N_658, N_659,
N_660, N_661, N_663, N_665, N_667, N_668, N_669, N_670, N_671, N_672,
N_674, N_675, N_676, N_677, N_678, N_679, N_680, N_682, N_683, N_684,
N_685, N_686, N_687, N_688, N_690, N_691, N_692, N_693, N_694, N_695,
N_696, N_698, N_699, N_700, N_701, N_702, N_703, N_704, N_706, N_708,
N_710, N_711, N_712, N_713, N_714, N_715, N_716, N_718, N_719, N_720,
N_721, N_722, N_723, N_724, N_726, N_727, N_728, N_729, N_730, N_731,
N_732, N_734, N_735, N_736, N_737, N_738, N_739, N_740, N_742, N_743,
N_744, N_745, N_746, N_747, N_748, N_750, N_751, N_753, N_755, N_756,
N_757, N_758, N_759, N_760, N_761, N_763, N_764, N_765, N_766, N_767,
N_768, N_769, N_771, N_772, N_773, N_774, N_775, N_776, N_777, N_779,
N_780, N_782, N_784, N_785, N_786, N_787, N_788, N_789, N_791, N_792,
N_793, N_794, N_795, N_797, N_798, N_799, N_800, N_801, N_803, N_804,
N_806, N_808, N_809, N_810, N_811, N_812, N_813, N_814, N_816, N_817,
N_818, N_819, N_820, N_821, N_823, N_824, N_826, z74185_1zY1_IN1, z74185_1zY1_OUT,
z74185_1zY1_OUTxNOT, z74185_1zY1_6K_WL_INV, z74185_1zY1x1_IN1, z74185_1zY1x1_OUT,
z74185_1zY2_IN1, z74185_1zY2_OUT, z74185_1zY2_OUTxNOT, z74185_1zY2_6K_WL_INV,
z74185_1zY2x1_IN1, z74185_1zY2x1_OUT, z74185_1zY3_IN1, z74185_1zY3_OUT,
z74185_1zY3x1_IN1, z74185_1zY3x1_OUT, z74185_2zY1_IN1, z74185_2zY1_OUT,
z74185_2zY2_IN1, z74185_2zY2_OUT, z74185_2zY3_IN1, z74185_2zY3_OUT, z74185_2zY4_IN1,
z74185_2zY4_OUT, z74185_3zY1_IN1, z74185_3zY1_OUT, z74185_3zY2_IN1, z74185_3zY2_OUT,
z74185_3zY2x1_IN1, z74185_3zY2x1_OUT, z74185_3zY3_IN1, z74185_3zY3_OUT,
z74185_3zY4_IN1, z74185_3zY4_OUT, z74185_3zY5_IN1, z74185_3zY5_OUT, z74185_3z_29_IN1,
z74185_3z_29_OUT, z74185_3z_32_IN1, z74185_3z_32_OUT, z74185_3z_35_IN1,
z74185_3z_35_OUT, z74185_3z_36_IN1, z74185_3z_36_OUT;

//TRIBUF TRIBUF_2 ( .Y(out_2_0), .IN1(z74185_2zY4_OUT), .OE(vcc) );
//TRIBUF TRIBUF_4 ( .Y(out_3_0), .IN1(z74185_3zY4_OUT), .OE(vcc) );
//TRIBUF TRIBUF_6 ( .Y(out_2_1), .IN1(z74185_3zY1_OUT), .OE(vcc) );
//TRIBUF TRIBUF_8 ( .Y(out_2_2), .IN1(z74185_3zY2_OUT), .OE(vcc) );
//TRIBUF TRIBUF_10 ( .Y(out_2_3), .IN1(z74185_3zY3_OUT), .OE(vcc) );
//TRIBUF TRIBUF_12 ( .Y(out_3_1), .IN1(z74185_3zY5_OUT), .OE(vcc) );
//TRIBUF TRIBUF_14 ( .Y(out_1_0), .IN1(N_280), .OE(vcc) );
//TRIBUF TRIBUF_16 ( .Y(out_1_3), .IN1(z74185_2zY3_OUT), .OE(vcc) );
//TRIBUF TRIBUF_18 ( .Y(out_1_1), .IN1(z74185_2zY1_OUT), .OE(vcc) );
//TRIBUF TRIBUF_20 ( .Y(out_1_2), .IN1(z74185_2zY2_OUT), .OE(vcc) );

assign out_2_0 = z74185_2zY4_OUT;
assign out_3_0 = z74185_3zY4_OUT;
assign out_2_1 = z74185_3zY1_OUT;
assign out_2_2 = z74185_3zY2_OUT;
assign out_2_3 = z74185_3zY3_OUT;
assign out_3_1 = z74185_3zY5_OUT;
assign out_1_0 = N_280;
assign out_1_3 = z74185_2zY3_OUT;
assign out_1_1 = z74185_2zY1_OUT;
assign out_1_2 = z74185_2zY2_OUT;

assign z74185_2zY4_OUT = z74185_2zY4_IN1 ;
xor XOR2_22 ( z74185_2zY4_IN1, N_55, N_91 );
or OR5_23 ( N_55, N_64, N_71, N_77, N_83, N_88 );
and AND3_24 ( N_56, N_57, N_59, N_61 );
not INV_25 ( N_57, z74185_1zY1_OUTxNOT );
assign N_59 = B1 ;
assign N_61 = B2 ;

//RISEFALL RISEFALL_28 ( .Y(N_64), .IN1(N_56) );
assign N_64 = N_56;
and AND3_29 ( N_65, N_66, N_67, N_69 );
not INV_30 ( N_66, B2 );
not INV_31 ( N_67, z74185_1zY2_OUTxNOT );
assign N_69 = z74185_1zY1_OUTxNOT ;

//RISEFALL RISEFALL_33 ( .Y(N_71), .IN1(N_65) );
assign N_71 = N_65;
and AND3_34 ( N_72, N_73, N_74, N_75 );
not INV_35 ( N_73, z74185_1zY1_OUTxNOT );
assign N_74 = B1 ;
assign N_75 = z74185_1zY2_OUTxNOT ;

//RISEFALL RISEFALL_38 ( .Y(N_77), .IN1(N_72) );
assign N_77 = N_72;
and AND3_39 ( N_78, N_79, N_80, N_81 );
not INV_40 ( N_79, z74185_1zY1_OUTxNOT );
assign N_80 = z74185_1zY2_OUTxNOT ;
assign N_81 = B2 ;

//RISEFALL RISEFALL_43 ( .Y(N_83), .IN1(N_78) );
assign N_83 = N_78;
assign N_84 = N_85 ;
assign N_85 = z74185_1zY3_OUT ;

//RISEFALL RISEFALL_46 ( .Y(N_88), .IN1(N_84) );
assign N_88 = N_84;
assign N_89 = gnd ;

//RISEFALL RISEFALL_48 ( .Y(N_91), .IN1(N_89) );
assign N_91 = N_89;
assign z74185_3zY4_OUT = z74185_3zY4_IN1 ;
xor XOR2_50 ( z74185_3zY4_IN1, N_94, N_135 );
or OR5_51 ( N_94, N_105, N_112, N_120, N_125, N_132 );
and AND4_52 ( N_95, N_96, N_98, N_100, N_102 );
not INV_53 ( N_96, B7 );
assign N_98 = B3 ;
assign N_100 = B5 ;
assign N_102 = B6 ;

//RISEFALL RISEFALL_57 ( .Y(N_105), .IN1(N_95) );
assign N_105 = N_95;
and AND4_58 ( N_106, N_107, N_108, N_109, N_110 );
not INV_59 ( N_107, B7 );
assign N_108 = B5 ;
assign N_109 = B6 ;
assign N_110 = B2 ;

//RISEFALL RISEFALL_63 ( .Y(N_112), .IN1(N_106) );
assign N_112 = N_106;
and AND4_64 ( N_113, N_114, N_116, N_117, N_118 );
not INV_65 ( N_114, B4 );
not INV_66 ( N_116, B5 );
not INV_67 ( N_117, B3 );
assign N_118 = B7 ;

//RISEFALL RISEFALL_69 ( .Y(N_120), .IN1(N_113) );
assign N_120 = N_113;
and AND2_70 ( N_121, N_122, N_123 );
not INV_71 ( N_122, B6 );
assign N_123 = B7 ;

//RISEFALL RISEFALL_73 ( .Y(N_125), .IN1(N_121) );
assign N_125 = N_121;
and AND4_74 ( N_126, N_127, N_128, N_129, N_130 );
not INV_75 ( N_127, B7 );
assign N_128 = B5 ;
assign N_129 = B4 ;
assign N_130 = B6 ;

//RISEFALL RISEFALL_79 ( .Y(N_132), .IN1(N_126) );
assign N_132 = N_126;
assign N_133 = gnd ;

//RISEFALL RISEFALL_81 ( .Y(N_135), .IN1(N_133) );
assign N_135 = N_133;
assign z74185_3zY1_OUT = z74185_3zY1_IN1 ;
xor XOR2_83 ( z74185_3zY1_IN1 , N_138, N_161 );
or OR4_84 ( N_138, N_143, N_148, N_153, N_158 );
assign N_139 = N_140 ;
assign N_140 = z74185_3z_36_OUT ;

//RISEFALL RISEFALL_87 ( .Y(N_143), .IN1(N_139) );
assign N_143 = N_139;
assign N_144 = N_145 ;
assign N_145 = z74185_3z_35_OUT ;

//RISEFALL RISEFALL_90 ( .Y(N_148), .IN1(N_144) );
assign N_148 = N_144;
assign N_149 = N_150 ;
assign N_150 = z74185_3z_32_OUT ;

//RISEFALL RISEFALL_93 ( .Y(N_153), .IN1(N_149) );
assign N_153 = N_149;
assign N_154 = N_155 ;
assign N_155 = z74185_3z_29_OUT ;

//RISEFALL RISEFALL_96 ( .Y(N_158), .IN1(N_154) );
assign N_158 = N_154;
assign N_159 = gnd ;

//RISEFALL RISEFALL_98 ( .Y(N_161), .IN1(N_159) );
assign N_161 = N_159;
assign z74185_3zY2_OUT = z74185_3zY2_IN1 ;
xor XOR2_100 ( z74185_3zY2_IN1, N_164, N_210 );
or OR4_101 ( N_164, N_172, N_179, N_193, N_206 );
and AND4_102 ( N_165, N_166, N_168, N_169, N_170 );
not INV_103 ( N_166, z74185_3zY2x1_OUT );
not INV_104 ( N_168, B4 );
assign N_169 = B7 ;
assign N_170 = B6 ;

//RISEFALL RISEFALL_107 ( .Y(N_172), .IN1(N_165) );
assign N_172 = N_165;
and AND4_108 ( N_173, N_174, N_175, N_176, N_177 );
not INV_109 ( N_174, z74185_3zY2x1_OUT );
not INV_110 ( N_175, B5 );
assign N_176 = B4 ;
assign N_177 = B6 ;

//RISEFALL RISEFALL_113 ( .Y(N_179), .IN1(N_173) );
assign N_179 = N_173;
and AND6_114 ( N_180, N_181, N_182, N_188, N_189, N_190, N_191 );
not INV_115 ( N_181, z74185_3zY2x1_OUT );
not INV_116 ( N_182, N_187 );
and AND2_117 ( N_183, N_184, N_185 );
not INV_118 ( N_184, B2 );
not INV_119 ( N_185, B3 );

//RISEFALL RISEFALL_120 ( .Y(N_187), .IN1(N_183) );
assign N_187 = N_183;
not INV_121 ( N_188, B6 );
assign N_189 = B7 ;
assign N_190 = B5 ;
assign N_191 = B4 ;

//RISEFALL RISEFALL_125 ( .Y(N_193), .IN1(N_180) );
assign N_193 = N_180;
and AND5_126 ( N_194, N_195, N_196, N_202, N_203, N_204 );
not INV_127 ( N_195, z74185_3zY2x1_OUT );
not INV_128 ( N_196, N_201 );
and AND2_129 ( N_197, N_198, N_199 );
assign N_198 = B3 ;
assign N_199 = B2 ;

//RISEFALL RISEFALL_132 ( .Y(N_201), .IN1(N_197) );
assign N_201 = N_197;
not INV_133 ( N_202, B4 );
not INV_134 ( N_203, B5 );
assign N_204 = B7 ;

//RISEFALL RISEFALL_136 ( .Y(N_206), .IN1(N_194) );
assign N_206 = N_194;
assign N_207 = N_208 ;
not INV_138 ( N_208, z74185_3zY2x1_OUT );

//RISEFALL RISEFALL_139 ( .Y(N_210), .IN1(N_207) );
assign N_210 = N_207;
assign z74185_3zY3_OUT = z74185_3zY3_IN1 ;
xor XOR2_141 ( z74185_3zY3_IN1, N_213, N_256 );
or OR5_142 ( N_213, N_221, N_229, N_237, N_244, N_253 );
and AND5_143 ( N_214, N_215, N_216, N_217, N_218, N_219 );
not INV_144 ( N_215, B6 );
assign N_216 = B3 ;
assign N_217 = B7 ;
assign N_218 = B5 ;
assign N_219 = B4 ;

//RISEFALL RISEFALL_149 ( .Y(N_221), .IN1(N_214) );
assign N_221 = N_214;
and AND5_150 ( N_222, N_223, N_224, N_225, N_226, N_227 );
not INV_151 ( N_223, B4 );
not INV_152 ( N_224, B5 );
not INV_153 ( N_225, B3 );
assign N_226 = B7 ;
assign N_227 = B6 ;

//RISEFALL RISEFALL_156 ( .Y(N_229), .IN1(N_222) );
assign N_229 = N_222;
and AND5_157 ( N_230, N_231, N_232, N_233, N_234, N_235 );
not INV_158 ( N_231, B6 );
assign N_232 = B7 ;
assign N_233 = B5 ;
assign N_234 = B4 ;
assign N_235 = B2 ;

//RISEFALL RISEFALL_163 ( .Y(N_237), .IN1(N_230) );
assign N_237 = N_230;
and AND4_164 ( N_238, N_239, N_240, N_241, N_242 );
not INV_165 ( N_239, B5 );
not INV_166 ( N_240, B7 );
assign N_241 = B4 ;
assign N_242 = B6 ;

//RISEFALL RISEFALL_169 ( .Y(N_244), .IN1(N_238) );
assign N_244 = N_238;
and AND6_170 ( N_245, N_246, N_247, N_248, N_249, N_250, N_251 );
not INV_171 ( N_246, B2 );
not INV_172 ( N_247, B4 );
not INV_173 ( N_248, B7 );
not INV_174 ( N_249, B3 );
assign N_250 = B5 ;
assign N_251 = B6 ;

//RISEFALL RISEFALL_177 ( .Y(N_253), .IN1(N_245) );
assign N_253 = N_245;
assign N_254 = gnd ;

//RISEFALL RISEFALL_179 ( .Y(N_256), .IN1(N_254) );
assign N_256 = N_254;
assign z74185_3zY5_OUT = z74185_3zY5_IN1 ;
xor XOR2_181 ( z74185_3zY5_IN1, N_259, N_279 );
or OR3_182 ( N_259, N_265, N_271, N_277 );
and AND3_183 ( N_260, N_261, N_262, N_263 );
assign N_261 = B7 ;
assign N_262 = B5 ;
assign N_263 = B6 ;

//RISEFALL RISEFALL_187 ( .Y(N_265), .IN1(N_260) );
assign N_265 = N_260;
and AND3_188 ( N_266, N_267, N_268, N_269 );
assign N_267 = B3 ;
assign N_268 = B7 ;
assign N_269 = B6 ;

//RISEFALL RISEFALL_192 ( .Y(N_271), .IN1(N_266) );
assign N_271 = N_266;
and AND3_193 ( N_272, N_273, N_274, N_275 );
assign N_273 = B7 ;
assign N_274 = B4 ;
assign N_275 = B6 ;

//RISEFALL RISEFALL_197 ( .Y(N_277), .IN1(N_272) );
assign N_277 = N_272;

//RISEFALL RISEFALL_198 ( .Y(N_279), .IN1(N_254) );
assign N_279 = N_254;
assign N_280 = N_281 ;
xor XOR2_200 ( N_281, N_282, N_289 );
assign N_282 = N_287 ;
assign N_283 = N_284 ;
assign N_284 = B0 ;

//RISEFALL RISEFALL_204 ( .Y(N_287), .IN1(N_283) );
assign N_287 = N_283;
//RISEFALL RISEFALL_205 ( .Y(N_289), .IN1(N_254) );
assign N_289 = N_254;
assign z74185_2zY3_OUT = z74185_2zY3_IN1 ;
xor XOR2_207 ( z74185_2zY3_IN1, N_292, N_327 );
or OR4_208 ( N_292, N_300, N_308, N_316, N_324 );
and AND5_209 ( N_293, N_294, N_295, N_296, N_297, N_298 );
assign N_294 = B1 ;
assign N_295 = z74185_1zY3_OUT ;
assign N_296 = z74185_1zY1_OUTxNOT ;
assign N_297 = z74185_1zY2_OUTxNOT ;
assign N_298 = B2 ;

//RISEFALL RISEFALL_215 ( .Y(N_300), .IN1(N_293) );
assign N_300 = N_293;
and AND5_216 ( N_301, N_302, N_303, N_304, N_305, N_306 );
not INV_217 ( N_302, z74185_1zY2_OUTxNOT );
not INV_218 ( N_303, z74185_1zY1_OUTxNOT );
not INV_219 ( N_304, z74185_1zY3_OUT );
not INV_220 ( N_305, B1 );
assign N_306 = B2 ;

//RISEFALL RISEFALL_222 ( .Y(N_308), .IN1(N_301) );
assign N_308 = N_301;
and AND5_223 ( N_309, N_310, N_311, N_312, N_313, N_314 );
not INV_224 ( N_310, B2 );
not INV_225 ( N_311, z74185_1zY2_OUTxNOT );
not INV_226 ( N_312, z74185_1zY3_OUT );
assign N_313 = B1 ;
assign N_314 = z74185_1zY1_OUTxNOT ;

//RISEFALL RISEFALL_229 ( .Y(N_316), .IN1(N_309) );
assign N_316 = N_309;
and AND5_230 ( N_317, N_318, N_319, N_320, N_321, N_322 );
not INV_231 ( N_318, B2 );
not INV_232 ( N_319, z74185_1zY1_OUTxNOT );
not INV_233 ( N_320, z74185_1zY3_OUT );
not INV_234 ( N_321, B1 );
assign N_322 = z74185_1zY2_OUTxNOT ;

//RISEFALL RISEFALL_236 ( .Y(N_324), .IN1(N_317) );
assign N_324 = N_317;
assign N_325 = gnd ;

//RISEFALL RISEFALL_238 ( .Y(N_327), .IN1(N_325) );
assign N_327 = N_325;
assign z74185_2zY1_OUT = z74185_2zY1_IN1 ;
xor XOR2_240 ( z74185_2zY1_IN1, N_330, N_377 );
or OR5_241 ( N_330, N_338, N_346, N_354, N_366, N_375 );
and AND5_242 ( N_331, N_332, N_333, N_334, N_335, N_336 );
not INV_243 ( N_332, B2 );
not INV_244 ( N_333, z74185_1zY2_OUTxNOT );
not INV_245 ( N_334, z74185_1zY1_OUTxNOT );
not INV_246 ( N_335, z74185_1zY3_OUT );
assign N_336 = B1 ;

//RISEFALL RISEFALL_248 ( .Y(N_338), .IN1(N_331) );
assign N_338 = N_331;
and AND5_249 ( N_339, N_340, N_341, N_342, N_343, N_344 );
not INV_250 ( N_340, z74185_1zY1_OUTxNOT );
not INV_251 ( N_341, z74185_1zY3_OUT );
not INV_252 ( N_342, B1 );
assign N_343 = z74185_1zY2_OUTxNOT ;
assign N_344 = B2 ;

//RISEFALL RISEFALL_255 ( .Y(N_346), .IN1(N_339) );
assign N_346 = N_339;
and AND5_256 ( N_347, N_348, N_349, N_350, N_351, N_352 );
not INV_257 ( N_348, B2 );
not INV_258 ( N_349, z74185_1zY2_OUTxNOT );
not INV_259 ( N_350, z74185_1zY3_OUT );
not INV_260 ( N_351, B1 );
assign N_352 = z74185_1zY1_OUTxNOT ;

//RISEFALL RISEFALL_262 ( .Y(N_354), .IN1(N_347) );
assign N_354 = N_347;
and AND4_263 ( N_355, N_356, N_362, N_363, N_364 );
not INV_264 ( N_356, N_361 );
and AND2_265 ( N_357, N_358, N_359 );
not INV_266 ( N_358, B2 );
not INV_267 ( N_359, z74185_1zY2_OUTxNOT );

//RISEFALL RISEFALL_268 ( .Y(N_361), .IN1(N_357) );
assign N_361 = N_357;
not INV_269 ( N_362, B1 );
assign N_363 = z74185_1zY3_OUT ;
assign N_364 = z74185_1zY1_OUTxNOT ;

//RISEFALL RISEFALL_272 ( .Y(N_366), .IN1(N_355) );
assign N_366 = N_355;
and AND4_273 ( N_367, N_368, N_371, N_372, N_373 );
not INV_274 ( N_368, N_370 );

//RISEFALL RISEFALL_275 ( .Y(N_370), .IN1(N_357) );
assign N_370 = N_357;
not INV_276 ( N_371, z74185_1zY3_OUT );
assign N_372 = B1 ;
assign N_373 = z74185_1zY1_OUTxNOT ;

//RISEFALL RISEFALL_279 ( .Y(N_375), .IN1(N_367) );
assign N_375 = N_367;
//RISEFALL RISEFALL_280 ( .Y(N_377), .IN1(N_325) );
assign N_377 = N_325;
assign z74185_2zY2_OUT = z74185_2zY2_IN1 ;
xor XOR2_282 ( z74185_2zY2_IN1, N_380, N_457 );
or OR4_283 ( N_380, N_402, N_413, N_430, N_448 );
and AND5_284 ( N_381, N_382, N_390, N_398, N_399, N_400 );
not INV_285 ( N_382, N_389 );
and AND4_286 ( N_383, N_384, N_385, N_386, N_387 );
not INV_287 ( N_384, z74185_1zY1_OUTxNOT );
not INV_288 ( N_385, z74185_1zY3_OUT );
not INV_289 ( N_386, B1 );
assign N_387 = z74185_1zY2_OUTxNOT ;

//RISEFALL RISEFALL_291 ( .Y(N_389), .IN1(N_383) );
assign N_389 = N_383;
not INV_292 ( N_390, N_397 );
and AND4_293 ( N_391, N_392, N_393, N_394, N_395 );
assign N_392 = B1 ;
assign N_393 = z74185_1zY3_OUT ;
assign N_394 = z74185_1zY1_OUTxNOT ;
assign N_395 = B2 ;

//RISEFALL RISEFALL_298 ( .Y(N_397), .IN1(N_391) );
assign N_397 = N_391;
not INV_299 ( N_398, z74185_1zY2_OUTxNOT );
assign N_399 = z74185_1zY3_OUT ;
assign N_400 = z74185_1zY1_OUTxNOT ;

//RISEFALL RISEFALL_302 ( .Y(N_402), .IN1(N_381) );
assign N_402 = N_381;
and AND4_303 ( N_403, N_404, N_407, N_410, N_411 );
not INV_304 ( N_404, N_406 );

//RISEFALL RISEFALL_305 ( .Y(N_406), .IN1(N_383) );
assign N_406 = N_383;
not INV_306 ( N_407, N_409 );

//RISEFALL RISEFALL_307 ( .Y(N_409), .IN1(N_391) );
assign N_409 = N_391;
not INV_308 ( N_410, z74185_1zY2_OUTxNOT );
assign N_411 = B2 ;

//RISEFALL RISEFALL_310 ( .Y(N_413), .IN1(N_403) );
assign N_413 = N_403;
and AND5_311 ( N_414, N_415, N_421, N_424, N_427, N_428 );
not INV_312 ( N_415, N_420 );
and AND2_313 ( N_416, N_417, N_418 );
not INV_314 ( N_417, z74185_1zY1_OUTxNOT );
not INV_315 ( N_418, z74185_1zY3_OUT );

//RISEFALL RISEFALL_316 ( .Y(N_420), .IN1(N_416) );
assign N_420 = N_416;
not INV_317 ( N_421, N_423 );

//RISEFALL RISEFALL_318 ( .Y(N_423), .IN1(N_383) );
assign N_423 = N_383;
not INV_319 ( N_424, N_426 );

//RISEFALL RISEFALL_320 ( .Y(N_426), .IN1(N_391) );
assign N_426 = N_391;
not INV_321 ( N_427, z74185_1zY2_OUTxNOT );
assign N_428 = B1 ;

//RISEFALL RISEFALL_323 ( .Y(N_430), .IN1(N_414) );
assign N_430 = N_414;
and AND5_324 ( N_431, N_432, N_439, N_442, N_445, N_446 );
not INV_325 ( N_432, N_438 );
and AND3_326 ( N_433, N_434, N_435, N_436 );
assign N_434 = B1 ;
assign N_435 = z74185_1zY3_OUT ;
assign N_436 = z74185_1zY1_OUTxNOT ;

//RISEFALL RISEFALL_330 ( .Y(N_438), .IN1(N_433) );
assign N_438 = N_433;
not INV_331 ( N_439, N_441 );

//RISEFALL RISEFALL_332 ( .Y(N_441), .IN1(N_383) );
assign N_441 = N_383;
not INV_333 ( N_442, N_444 );

//RISEFALL RISEFALL_334 ( .Y(N_444), .IN1(N_391) );
assign N_444 = N_391;
not INV_335 ( N_445, B2 );
assign N_446 = z74185_1zY2_OUTxNOT ;

//RISEFALL RISEFALL_337 ( .Y(N_448), .IN1(N_431) );
assign N_448 = N_431;
and AND2_338 ( N_449, N_450, N_453 );
not INV_339 ( N_450, N_452 );

//RISEFALL RISEFALL_340 ( .Y(N_452), .IN1(N_383) );
assign N_452 = N_383;
not INV_341 ( N_453, N_455 );

//RISEFALL RISEFALL_342 ( .Y(N_455), .IN1(N_391) );
assign N_455 = N_391;

//RISEFALL RISEFALL_343 ( .Y(N_457), .IN1(N_449) );
assign N_457 = N_449;
assign z74185_1zY3_OUT = z74185_1zY3_IN1 ;
xor XOR2_345 ( z74185_1zY3_IN1, N_459, N_476 );
assign N_459 = N_471 ;
assign N_460 = N_461 ;
not INV_348 ( N_461, N_469 );
and AND5_349 ( N_462, N_463, N_464, N_465, N_466, N_467 );
not INV_350 ( N_463, B4 );
assign N_464 = B3 ;
assign N_465 = B7 ;
assign N_466 = B5 ;
assign N_467 = B6 ;

//RISEFALL RISEFALL_355 ( .Y(N_469), .IN1(N_462) );
assign N_469 = N_462;

//RISEFALL RISEFALL_356 ( .Y(N_471), .IN1(N_460) );
assign N_471 = N_460;
assign N_472 = N_473 ;
not INV_358 ( N_473, z74185_1zY3x1_OUT );

//RISEFALL RISEFALL_359 ( .Y(N_476), .IN1(N_472) );
assign N_476 = N_472;
not INV_360 ( z74185_1zY1_OUT, z74185_1zY1_OUTxNOT );
assign z74185_1zY1_OUTxNOT = z74185_1zY1_6K_WL_INV ;
not INV_362 ( z74185_1zY1_IN1 , z74185_1zY1_6K_WL_INV) ;
xor XOR2_363 ( z74185_1zY1_6K_WL_INV, N_480, N_527 );
or OR4_364 ( N_480, N_490, N_503, N_513, N_523 );
and AND6_365 ( N_481, N_482, N_484, N_485, N_486, N_487, N_488 );
not INV_366 ( N_482, z74185_1zY1x1_OUT );
not INV_367 ( N_484, B4 );
not INV_368 ( N_485, B5 );
not INV_369 ( N_486, B7 );
not INV_370 ( N_487, B3 );
assign N_488 = B6 ;

//RISEFALL RISEFALL_372 ( .Y(N_490), .IN1(N_481) );
assign N_490 = N_481;
and AND5_373 ( N_491, N_492, N_493, N_499, N_500, N_501 );
not INV_374 ( N_492, z74185_1zY1x1_OUT );
not INV_375 ( N_493, N_498 );
and AND2_376 ( N_494, N_495, N_496 );
not INV_377 ( N_495, B4 );
assign N_496 = B6 ;

//RISEFALL RISEFALL_379 ( .Y(N_498), .IN1(N_494) );
assign N_498 = N_494;
not INV_380 ( N_499, B5 );
not INV_381 ( N_500, B3 );
assign N_501 = B7 ;

//RISEFALL RISEFALL_383 ( .Y(N_503), .IN1(N_491) );
assign N_503 = N_491;
and AND5_384 ( N_504, N_505, N_506, N_509, N_510, N_511 );
not INV_385 ( N_505, z74185_1zY1x1_OUT );
not INV_386 ( N_506, N_508 );

//RISEFALL RISEFALL_387 ( .Y(N_508), .IN1(N_494) );
assign N_508 = N_494;
not INV_388 ( N_509, B5 );
not INV_389 ( N_510, B7 );
assign N_511 = B3 ;

//RISEFALL RISEFALL_391 ( .Y(N_513), .IN1(N_504) );
assign N_513 = N_504;
and AND5_392 ( N_514, N_515, N_516, N_519, N_520, N_521 );
not INV_393 ( N_515, z74185_1zY1x1_OUT );
not INV_394 ( N_516, N_518 );

//RISEFALL RISEFALL_395 ( .Y(N_518), .IN1(N_494) );
assign N_518 = N_494;
assign N_519 = B3 ;
assign N_520 = B7 ;
assign N_521 = B5 ;

//RISEFALL RISEFALL_399 ( .Y(N_523), .IN1(N_514) );
assign N_523 = N_514;
assign N_524 = N_525 ;
not INV_401 ( N_525, z74185_1zY1x1_OUT );

//RISEFALL RISEFALL_402 ( .Y(N_527), .IN1(N_524) );
assign N_527 = N_524;
not INV_403 ( z74185_1zY2_OUT, z74185_1zY2_OUTxNOT );
assign z74185_1zY2_OUTxNOT = z74185_1zY2_6K_WL_INV ;
not INV_405 ( z74185_1zY2_IN1, z74185_1zY2_6K_WL_INV );
xor XOR2_406 ( z74185_1zY2_6K_WL_INV, N_531, N_581 );
or OR4_407 ( N_531, N_541, N_554, N_567, N_577 );
and AND6_408 ( N_532, N_533, N_535, N_536, N_537, N_538, N_539 );
not INV_409 ( N_533, z74185_1zY2x1_OUT );
not INV_410 ( N_535, B5 );
assign N_536 = B3 ;
assign N_537 = B7 ;
assign N_538 = B4 ;
assign N_539 = B6 ;

//RISEFALL RISEFALL_415 ( .Y(N_541), .IN1(N_532) );
assign N_541 = N_532;
and AND5_416 ( N_542, N_543, N_544, N_550, N_551, N_552 );
not INV_417 ( N_543, z74185_1zY2x1_OUT );
not INV_418 ( N_544, N_549 );
and AND2_419 ( N_545, N_546, N_547 );
not INV_420 ( N_546, B5 );
assign N_547 = B7 ;

//RISEFALL RISEFALL_422 ( .Y(N_549), .IN1(N_545) );
assign N_549 = N_545;
not INV_423 ( N_550, B6 );
assign N_551 = B3 ;
assign N_552 = B4 ;

//RISEFALL RISEFALL_426 ( .Y(N_554), .IN1(N_542) );
assign N_554 = N_542;
and AND5_427 ( N_555, N_556, N_557, N_563, N_564, N_565 );
not INV_428 ( N_556, z74185_1zY2x1_OUT );
not INV_429 ( N_557, N_562 );
and AND2_430 ( N_558, N_559, N_560 );
not INV_431 ( N_559, B7 );
assign N_560 = B5 ;

//RISEFALL RISEFALL_433 ( .Y(N_562), .IN1(N_558) );
assign N_562 = N_558;
not INV_434 ( N_563, B6 );
not INV_435 ( N_564, B3 );
assign N_565 = B4 ;

//RISEFALL RISEFALL_437 ( .Y(N_567), .IN1(N_555) );
assign N_567 = N_555;
and AND5_438 ( N_568, N_569, N_570, N_573, N_574, N_575 );
not INV_439 ( N_569, z74185_1zY2x1_OUT );
not INV_440 ( N_570, N_572 );

//RISEFALL RISEFALL_441 ( .Y(N_572), .IN1(N_545) );
assign N_572 = N_545;
not INV_442 ( N_573, B4 );
not INV_443 ( N_574, B3 );
assign N_575 = B6 ;

//RISEFALL RISEFALL_445 ( .Y(N_577), .IN1(N_568) );
assign N_577 = N_568;
assign N_578 = N_579 ;
not INV_447 ( N_579, z74185_1zY2x1_OUT );

//RISEFALL RISEFALL_448 ( .Y(N_581), .IN1(N_578) );
assign N_581 = N_578;
assign z74185_3z_36_OUT = z74185_3z_36_IN1 ;
xor XOR2_450 ( z74185_3z_36_IN1, N_583, N_610 );
or OR3_451 ( N_583, N_591, N_599, N_607 );
and AND5_452 ( N_584, N_585, N_586, N_587, N_588, N_589 );
not INV_453 ( N_585, B7 );
assign N_586 = B3 ;
assign N_587 = B5 ;
assign N_588 = B4 ;
assign N_589 = B6 ;

//RISEFALL RISEFALL_458 ( .Y(N_591), .IN1(N_584) );
assign N_591 = N_584;
and AND5_459 ( N_592, N_593, N_594, N_595, N_596, N_597 );
not INV_460 ( N_593, B6 );
not INV_461 ( N_594, B4 );
not INV_462 ( N_595, B5 );
not INV_463 ( N_596, B3 );
assign N_597 = B7 ;

//RISEFALL RISEFALL_465 ( .Y(N_599), .IN1(N_592) );
assign N_599 = N_592;
and AND5_466 ( N_600, N_601, N_602, N_603, N_604, N_605 );
not INV_467 ( N_601, B2 );
not INV_468 ( N_602, B6 );
not INV_469 ( N_603, B4 );
not INV_470 ( N_604, B5 );
assign N_605 = B7 ;

//RISEFALL RISEFALL_472 ( .Y(N_607), .IN1(N_600) );
assign N_607 = N_600;
assign N_608 = gnd ;

//RISEFALL RISEFALL_474 ( .Y(N_610), .IN1(N_608) );
assign N_610 = N_608;
assign z74185_3z_35_OUT = z74185_3z_35_IN1 ;
xor XOR2_476 ( z74185_3z_35_IN1, N_612, N_629 );
or OR2_477 ( N_612, N_620, N_627 );
and AND5_478 ( N_613, N_614, N_615, N_616, N_617, N_618 );
not INV_479 ( N_614, B2 );
not INV_480 ( N_615, B6 );
not INV_481 ( N_616, B3 );
assign N_617 = B7 ;
assign N_618 = B5 ;

//RISEFALL RISEFALL_484 ( .Y(N_620), .IN1(N_613) );
assign N_620 = N_613;
and AND4_485 ( N_621, N_622, N_623, N_624, N_625 );
not INV_486 ( N_622, B6 );
not INV_487 ( N_623, B4 );
assign N_624 = B7 ;
assign N_625 = B5 ;

//RISEFALL RISEFALL_490 ( .Y(N_627), .IN1(N_621) );
assign N_627 = N_621;
//RISEFALL RISEFALL_491 ( .Y(N_629), .IN1(N_608) );
assign N_629 = N_608;
assign z74185_3z_32_OUT = z74185_3z_32_IN1 ;
xor XOR2_493 ( z74185_3z_32_IN1, N_631, N_665 );
or OR4_494 ( N_631, N_638, N_645, N_654, N_663 );
and AND4_495 ( N_632, N_633, N_634, N_635, N_636 );
not INV_496 ( N_633, B4 );
assign N_634 = B7 ;
assign N_635 = B5 ;
assign N_636 = B6 ;

//RISEFALL RISEFALL_500 ( .Y(N_638), .IN1(N_632) );
assign N_638 = N_632;
and AND4_501 ( N_639, N_640, N_641, N_642, N_643 );
not INV_502 ( N_640, B4 );
not INV_503 ( N_641, B5 );
not INV_504 ( N_642, B7 );
assign N_643 = B6 ;

//RISEFALL RISEFALL_506 ( .Y(N_645), .IN1(N_639) );
assign N_645 = N_639;
and AND6_507 ( N_646, N_647, N_648, N_649, N_650, N_651, N_652 );
not INV_508 ( N_647, B5 );
assign N_648 = B3 ;
assign N_649 = B7 ;
assign N_650 = B4 ;
assign N_651 = B6 ;
assign N_652 = B2 ;

//RISEFALL RISEFALL_514 ( .Y(N_654), .IN1(N_646) );
assign N_654 = N_646;
and AND6_515 ( N_655, N_656, N_657, N_658, N_659, N_660, N_661 );
not INV_516 ( N_656, B6 );
not INV_517 ( N_657, B7 );
assign N_658 = B3 ;
assign N_659 = B5 ;
assign N_660 = B4 ;
assign N_661 = B2 ;

//RISEFALL RISEFALL_522 ( .Y(N_663), .IN1(N_655) );
assign N_663 = N_655;
//RISEFALL RISEFALL_523 ( .Y(N_665), .IN1(N_608) );
assign N_665 = N_608;
assign z74185_3z_29_OUT = z74185_3z_29_IN1 ;
xor XOR2_525 ( z74185_3z_29_IN1, N_667, N_708 );
or OR5_526 ( N_667, N_674, N_682, N_690, N_698, N_706 );
and AND4_527 ( N_668, N_669, N_670, N_671, N_672 );
not INV_528 ( N_669, B4 );
not INV_529 ( N_670, B5 );
not INV_530 ( N_671, B7 );
assign N_672 = B6 ;

//RISEFALL RISEFALL_532 ( .Y(N_674), .IN1(N_668) );
assign N_674 = N_668;
and AND5_533 ( N_675, N_676, N_677, N_678, N_679, N_680 );
not INV_534 ( N_676, B6 );
not INV_535 ( N_677, B5 );
not INV_536 ( N_678, B7 );
assign N_679 = B3 ;
assign N_680 = B4 ;

//RISEFALL RISEFALL_539 ( .Y(N_682), .IN1(N_675) );
assign N_682 = N_675;
and AND5_540 ( N_683, N_684, N_685, N_686, N_687, N_688 );
not INV_541 ( N_684, B6 );
not INV_542 ( N_685, B5 );
not INV_543 ( N_686, B7 );
assign N_687 = B4 ;
assign N_688 = B2 ;

//RISEFALL RISEFALL_546 ( .Y(N_690), .IN1(N_683) );
assign N_690 = N_683;
and AND5_547 ( N_691, N_692, N_693, N_694, N_695, N_696 );
not INV_548 ( N_692, B6 );
not INV_549 ( N_693, B4 );
not INV_550 ( N_694, B7 );
not INV_551 ( N_695, B3 );
assign N_696 = B5 ;

//RISEFALL RISEFALL_553 ( .Y(N_698), .IN1(N_691) );
assign N_698 = N_691;
and AND5_554 ( N_699, N_700, N_701, N_702, N_703, N_704 );
not INV_555 ( N_700, B6 );
not INV_556 ( N_701, B7 );
assign N_702 = B3 ;
assign N_703 = B4 ;
assign N_704 = B2 ;

//RISEFALL RISEFALL_560 ( .Y(N_706), .IN1(N_699) );
assign N_706 = N_699;
//RISEFALL RISEFALL_561 ( .Y(N_708), .IN1(N_608) );
assign N_708 = N_608;
assign z74185_1zY3x1_OUT = z74185_1zY3x1_IN1 ;
xor XOR2_563 ( z74185_1zY3x1_IN1, N_710, N_753 );
or OR5_564 ( N_710, N_718, N_726, N_734, N_742, N_750 );
and AND5_565 ( N_711, N_712, N_713, N_714, N_715, N_716 );
not INV_566 ( N_712, B6 );
not INV_567 ( N_713, B5 );
assign N_714 = B3 ;
assign N_715 = B7 ;
assign N_716 = B4 ;

//RISEFALL RISEFALL_571 ( .Y(N_718), .IN1(N_711) );
assign N_718 = N_711;
and AND5_572 ( N_719, N_720, N_721, N_722, N_723, N_724 );
not INV_573 ( N_720, B7 );
not INV_574 ( N_721, B3 );
assign N_722 = B5 ;
assign N_723 = B4 ;
assign N_724 = B6 ;

//RISEFALL RISEFALL_578 ( .Y(N_726), .IN1(N_719) );
assign N_726 = N_719;
and AND5_579 ( N_727, N_728, N_729, N_730, N_731, N_732 );
not INV_580 ( N_728, B4 );
not INV_581 ( N_729, B5 );
not INV_582 ( N_730, B3 );
assign N_731 = B7 ;
assign N_732 = B6 ;

//RISEFALL RISEFALL_585 ( .Y(N_734), .IN1(N_727) );
assign N_734 = N_727;
and AND5_586 ( N_735, N_736, N_737, N_738, N_739, N_740 );
not INV_587 ( N_736, B4 );
not INV_588 ( N_737, B5 );
not INV_589 ( N_738, B7 );
assign N_739 = B3 ;
assign N_740 = B6 ;

//RISEFALL RISEFALL_592 ( .Y(N_742), .IN1(N_735) );
assign N_742 = N_735;
and AND5_593 ( N_743, N_744, N_745, N_746, N_747, N_748 );
not INV_594 ( N_744, B6 );
not INV_595 ( N_745, B4 );
not INV_596 ( N_746, B7 );
not INV_597 ( N_747, B3 );
assign N_748 = B5 ;

//RISEFALL RISEFALL_599 ( .Y(N_750), .IN1(N_743) );
assign N_750 = N_743;
assign N_751 = gnd ;

//RISEFALL RISEFALL_601 ( .Y(N_753), .IN1(N_751) );
assign N_753 = N_751;
assign z74185_1zY1x1_OUT = z74185_1zY1x1_IN1 ;
xor XOR2_603 ( z74185_1zY1x1_IN1, N_755, N_782 );
or OR3_604 ( N_755, N_763, N_771, N_779 );
and AND5_605 ( N_756, N_757, N_758, N_759, N_760, N_761 );
not INV_606 ( N_757, B4 );
not INV_607 ( N_758, B7 );
assign N_759 = B3 ;
assign N_760 = B5 ;
assign N_761 = B6 ;

//RISEFALL RISEFALL_611 ( .Y(N_763), .IN1(N_756) );
assign N_763 = N_756;
and AND5_612 ( N_764, N_765, N_766, N_767, N_768, N_769 );
not INV_613 ( N_765, B4 );
not INV_614 ( N_766, B3 );
assign N_767 = B7 ;
assign N_768 = B5 ;
assign N_769 = B6 ;

//RISEFALL RISEFALL_618 ( .Y(N_771), .IN1(N_764) );
assign N_771 = N_764;
and AND5_619 ( N_772, N_773, N_774, N_775, N_776, N_777 );
not INV_620 ( N_773, B6 );
not INV_621 ( N_774, B7 );
not INV_622 ( N_775, B3 );
assign N_776 = B5 ;
assign N_777 = B4 ;

//RISEFALL RISEFALL_625 ( .Y(N_779), .IN1(N_772) );
assign N_779 = N_772;
assign N_780 = gnd ;

//RISEFALL RISEFALL_627 ( .Y(N_782), .IN1(N_780) );
assign N_782 = N_780;
assign z74185_3zY2x1_OUT = z74185_3zY2x1_IN1 ;
xor XOR2_629 ( z74185_3zY2x1_IN1, N_784, N_806 );
or OR3_630 ( N_784, N_791, N_797, N_803 );
and AND4_631 ( N_785, N_786, N_787, N_788, N_789 );
not INV_632 ( N_786, B4 );
not INV_633 ( N_787, B7 );
not INV_634 ( N_788, B3 );
assign N_789 = B5 ;

//RISEFALL RISEFALL_636 ( .Y(N_791), .IN1(N_785) );
assign N_791 = N_785;
and AND3_637 ( N_792, N_793, N_794, N_795 );
not INV_638 ( N_793, B7 );
assign N_794 = B5 ;
assign N_795 = B6 ;

//RISEFALL RISEFALL_641 ( .Y(N_797), .IN1(N_792) );
assign N_797 = N_792;
and AND3_642 ( N_798, N_799, N_800, N_801 );
not INV_643 ( N_799, B6 );
not INV_644 ( N_800, B5 );
not INV_645 ( N_801, B7 );

//RISEFALL RISEFALL_646 ( .Y(N_803), .IN1(N_798) );
assign N_803 = N_798;
assign N_804 = gnd ;

//RISEFALL RISEFALL_648 ( .Y(N_806), .IN1(N_804) );
assign N_806 = N_804;
assign z74185_1zY2x1_OUT = z74185_1zY2x1_IN1 ;
xor XOR2_650 ( z74185_1zY2x1_IN1, N_808, N_826 );
or OR2_651 ( N_808, N_816, N_823 );
and AND5_652 ( N_809, N_810, N_811, N_812, N_813, N_814 );
not INV_653 ( N_810, B6 );
not INV_654 ( N_811, B4 );
not INV_655 ( N_812, B5 );
assign N_813 = B3 ;
assign N_814 = B7 ;

//RISEFALL RISEFALL_658 ( .Y(N_816), .IN1(N_809) );
assign N_816 = N_809;
and AND4_659 ( N_817, N_818, N_819, N_820, N_821 );
not INV_660 ( N_818, B4 );
not INV_661 ( N_819, B7 );
assign N_820 = B5 ;
assign N_821 = B6 ;

//RISEFALL RISEFALL_664 ( .Y(N_823), .IN1(N_817) );
assign N_823 = N_817;
assign N_824 = gnd ;

//RISEFALL RISEFALL_666 ( .Y(N_826), .IN1(N_824) );
assign N_826 = N_824;
endmodule

__________________________________________________________________ 

Мабуть все, далі можна сміло компілювати отриманий код, створивши новий проект .
І ось який результат компіляції я отримав.


Ну і нарешті результати симуляції проекту з яких видно що отриманий із внесенням деяких змін код, працює!!!!