diff --git a/.github/SUMMARY.md b/.github/SUMMARY.md new file mode 100644 index 00000000..d25d2b2e --- /dev/null +++ b/.github/SUMMARY.md @@ -0,0 +1,56 @@ +# Summary + +[Порядок выполнения лабораторных работ для групп](index.md) +[Что такое Язык Описания Аппаратуры](Introduction/What%20is%20HDL.md) +[Как работает ПЛИС](Introduction/How%20FPGA%20works.md) + +--- + +# Цикл лабораторных работ + +- [Лабораторная №1. Сумматор](Labs/01.%20Adder/README.md) +- [Лабораторная №2. АЛУ](Labs/02.%20Arithmetic-logic%20unit/README.md) +- [Лабораторная №3. Регистровый файл и внешняя память](Labs/03.%20Register%20file%20and%20memory/README.md) +- [Лабораторная №4. Простейшее программируемое устройство](Labs/04.%20Primitive%20programmable%20device/README.md) +- [Лабораторная №5. Основной дешифратор](Labs/05.%20Main%20decoder/README.md) +- [Лабораторная №6. Тракт данных](Labs/06.%20Datapath/README.md) +- [Лабораторная №7. Внешняя память]() +- [Лабораторная №8. Блок загрузки и сохранения](Labs/08.%20Load-store%20unit/README.md) +- [Лабораторная №9. Интеграция LSU](Labs/09.%20LSU%20Integration/README.md) +- [Лабораторная №10. Подсистема прерываний](Labs/10.%20Interrupt%20subsystem/README.md) +- [Лабораторная №11. Интеграция подсистемы прерываний](Labs/11.%20Interrupt%20integration/README.md) +- [Лабораторная №12. Периферийные устройства](Labs/12.%20Peripheral%20units/README.md) +- [Лабораторная №13. Программирование](Labs/13.%20Programming/README.md) + +--- + +# Базовые структуры языка SystemVerilog + +- [Модули](Basic%20Verilog%20structures/Modules.md) +- [Мультиплексоры](Basic%20Verilog%20structures/Multiplexors.md) +- [Регистры](Basic%20Verilog%20structures/Registers.md) +- [Конкатенация](Basic%20Verilog%20structures/Concatenation.md) +- [Контроллеры](Basic%20Verilog%20structures/Controllers.md) +- [Тестовое окружение](Basic%20Verilog%20structures/Testbench.md) + +--- + +# Основы Vivado + +- [Руководство по установке Vivado](Vivado%20Basics/Install%20Vivado.md) +- [Создание проекта в Vivado](Vivado%20Basics/Vivado%20trainer.md) +- [Структура директорий в проекте Vivado](Vivado%20Basics/Folder%20Structure%20In%20The%20Project.md) +- [Как сгенерировать схему](Vivado%20Basics/How%20to%20open%20a%20schematic.md) +- [Ошибки элаборации](Vivado%20Basics/Elaboration%20failed.md) +- [Шаги имплементации](Vivado%20Basics/Implementation%20steps.md) +- [Запуск симуляции](Vivado%20Basics/Run%20Simulation.md) +- [Руководство по поиску ошибок](Vivado%20Basics/Debug%20manual.md) +- [Руководство по прошивке ПЛИС](Vivado%20Basics/Program%20nexys%20a7.md) +- [Заголовочные файлы в Verilog](Vivado%20Basics/Verilog%20Header.md) +- [Как добавить файл, инициализирующий память](Vivado%20Basics/How%20to%20add%20a%20mem-file.md) + +# Остальное + +- [RV32I - Стандартный набор целочисленных инструкций RISC-V](Other/rv32i.md) +- [Список типичных ошибок при работе с Vivado и SystemVerilog](Other/FAQ.md) +- [Студенческий сервер](Other/Students%20server.md) diff --git a/.github/book.toml b/.github/book.toml new file mode 100644 index 00000000..b194b678 --- /dev/null +++ b/.github/book.toml @@ -0,0 +1,6 @@ +[book] +authors = ["Andrei Solodovnikov"] +language = "ru" +multilingual = true +src = "./" +title = "Архитектуры процессорных систем" diff --git a/.github/index.md b/.github/index.md new file mode 100644 index 00000000..5ca4d322 --- /dev/null +++ b/.github/index.md @@ -0,0 +1,49 @@ +# Курс лабораторных работ + +## Полезное + +- [Студенческий сервер](Other/Students%20server.md) +- [Создание базового проекта с прошивкой ПЛИС в Vivado](Vivado%20Basics/Vivado%20trainer.md) +- [Базовые конструкции Verilog](Basic%20Verilog%20structures/) +- [Список типичных ошибок в Vivado и SystemVerilog](Other/FAQ.md) +- [Тестовое окружение](Basic%20Verilog%20structures/Testbench.md) + +## Порядок выполнения лабораторных работ для групп + +### ИБ, ИКТ, КТ, РТ + +1. Сумматор ([01. Adder](Labs/01.%20Adder)) +2. АЛУ ([02. Arithmetic-logic unit](Labs/02.%20Arithmetic-logic%20unit)) +3. Регистровый файл и внешняя память ([03. Register file and memory](Labs/03.%20Register%20file%20and%20memory)) +4. Простейшее программируемое устройство ([04. Primitive programmable device](Labs/04.%20Primitive%20programmable%20device)) + +### ПИН, ПМ + +1. Сумматор ([01. Adder](Labs/01.%20Adder)) +2. АЛУ ([02. Arithmetic-logic unit](Labs/02.%20Arithmetic-logic%20unit)) +3. Регистровый файл и внешняя память ([03. Register file and memory](Labs/03.%20Register%20file%20and%20memory)) +4. Простейшее программируемое устройство ([04. Primitive programmable device](Labs/04.%20Primitive%20programmable%20device)) +5. Основной дешифратор ([05. Main decoder](Labs/05.%20Main%20decoder)) +6. + 1. Тракт данных ([06. Datapath](Labs/06.%20Datapath)) + 2. Интеграция блока загрузки и сохранения ([09. LSU Integration](Labs/09.%20LSU%20Integration)) + 3. Интеграция подсистемы прерываний ([11. Interrupt Integration](Labs/11.%20Interrupt%20integration)) +7. Периферийные устройства ([12. Peripheral units](Labs/12.%20Peripheral%20units)) +8. Программирование ([13. Programming](Labs/13.%20Programming)) + +### ИВТ + +1. АЛУ ([02. Arithmetic-logic unit](Labs/02.%20Arithmetic-logic%20unit)) +2. + 1. Память ([03. Register file and memory](Labs/03.%20Register%20file%20and%20memory)), + 2. Простейшее программируемое устройство ([04. Primitive programmable device](Labs/04.%20Primitive%20programmable%20device)) +3. Основной дешифратор ([05. Main decoder](Labs/05.%20Main%20decoder)) +4. Тракт данных ([06. Datapath](Labs/06.%20Datapath)) +5. + 1. Модуль загрузки и сохранения ([08. Load-store unit](Labs/08.%20Load-store%20unit)) + 2. Интеграция блока загрузки и сохранения ([09. LSU Integration](Labs/09.%20LSU%20Integration)) +6. + 1. Контроллер прерываний ([10. Interrupt subsystem](Labs/10.%20Interrupt%20subsystem)) + 2. Интеграция подсистемы прерываний ([11. Interrupt Integration](Labs/11.%20Interrupt%20integration)) +7. Периферийные устройства ([12. Peripheral units](Labs/12.%20Peripheral%20units)) +8. Программирование ([13. Programming](Labs/13.%20Programming)) diff --git a/.github/prepare.sh b/.github/prepare.sh new file mode 100644 index 00000000..355a9883 --- /dev/null +++ b/.github/prepare.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +mkdir src +cp .github/book.toml .github/SUMMARY.md .github/index.md ./ \ No newline at end of file diff --git a/.github/workflows/mdbook.yml b/.github/workflows/mdbook.yml new file mode 100644 index 00000000..a2a8855c --- /dev/null +++ b/.github/workflows/mdbook.yml @@ -0,0 +1,62 @@ +# Sample workflow for building and deploying a mdBook site to GitHub Pages +# +# To get started with mdBook see: https://rust-lang.github.io/mdBook/index.html +# +name: Deploy mdBook site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + env: + MDBOOK_VERSION: 0.4.21 + steps: + - uses: actions/checkout@v3 + - name: Install mdBook + run: | + chmod +x .github/prepare.sh + .github/prepare.sh + mkdir bin + curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.34/mdbook-v0.4.34-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin + bin/mdbook build + - name: Setup Pages + id: pages + uses: actions/configure-pages@v3 + - name: Build with mdBook + run: bin/mdbook build + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: ./book + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.pic/Labs/lab_12_periph/fig_01.drawio.png b/.pic/Labs/lab_12_periph/fig_01.drawio.png index a3e120cf..5d7c321e 100644 Binary files a/.pic/Labs/lab_12_periph/fig_01.drawio.png and b/.pic/Labs/lab_12_periph/fig_01.drawio.png differ diff --git a/.pic/Labs/lab_12_periph/fig_02.drawio.png b/.pic/Labs/lab_12_periph/fig_02.drawio.png deleted file mode 100644 index f6f0a74b..00000000 Binary files a/.pic/Labs/lab_12_periph/fig_02.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_12_periph/fig_02.png b/.pic/Labs/lab_12_periph/fig_02.png new file mode 100644 index 00000000..2ed48165 Binary files /dev/null and b/.pic/Labs/lab_12_periph/fig_02.png differ diff --git a/.pic/Labs/lab_12_periph/fig_02.xlsx b/.pic/Labs/lab_12_periph/fig_02.xlsx new file mode 100644 index 00000000..406047ec Binary files /dev/null and b/.pic/Labs/lab_12_periph/fig_02.xlsx differ diff --git a/.pic/Other/Further readings/arm.jpg b/.pic/Other/Further readings/arm.jpg new file mode 100644 index 00000000..61a3c02f Binary files /dev/null and b/.pic/Other/Further readings/arm.jpg differ diff --git a/.pic/Other/Further readings/code.jpg b/.pic/Other/Further readings/code.jpg new file mode 100644 index 00000000..fdfff9c8 Binary files /dev/null and b/.pic/Other/Further readings/code.jpg differ diff --git a/.pic/Other/Further readings/digitaldesign.png b/.pic/Other/Further readings/digitaldesign.png new file mode 100644 index 00000000..cf132a32 Binary files /dev/null and b/.pic/Other/Further readings/digitaldesign.png differ diff --git a/.pic/Other/Further readings/harris.png b/.pic/Other/Further readings/harris.png new file mode 100644 index 00000000..340215bf Binary files /dev/null and b/.pic/Other/Further readings/harris.png differ diff --git a/.pic/Other/Further readings/manga.jpg b/.pic/Other/Further readings/manga.jpg new file mode 100644 index 00000000..0d793202 Binary files /dev/null and b/.pic/Other/Further readings/manga.jpg differ diff --git a/.pic/Other/Further readings/orlov.jpg b/.pic/Other/Further readings/orlov.jpg new file mode 100644 index 00000000..0ea25fe6 Binary files /dev/null and b/.pic/Other/Further readings/orlov.jpg differ diff --git a/.pic/Other/Further readings/patterson1.jpg b/.pic/Other/Further readings/patterson1.jpg new file mode 100644 index 00000000..937b1885 Binary files /dev/null and b/.pic/Other/Further readings/patterson1.jpg differ diff --git a/.pic/Other/Further readings/patterson2.jpg b/.pic/Other/Further readings/patterson2.jpg new file mode 100644 index 00000000..2b90cd52 Binary files /dev/null and b/.pic/Other/Further readings/patterson2.jpg differ diff --git a/.pic/Other/Further readings/svbook.png b/.pic/Other/Further readings/svbook.png new file mode 100644 index 00000000..c132c1d1 Binary files /dev/null and b/.pic/Other/Further readings/svbook.png differ diff --git a/.pic/Other/Further readings/tanenbaum.jpg b/.pic/Other/Further readings/tanenbaum.jpg new file mode 100644 index 00000000..4b0ef1ee Binary files /dev/null and b/.pic/Other/Further readings/tanenbaum.jpg differ diff --git a/.pic/Other/Further readings/vt.jpg b/.pic/Other/Further readings/vt.jpg new file mode 100644 index 00000000..17fc9870 Binary files /dev/null and b/.pic/Other/Further readings/vt.jpg differ diff --git a/Basic Verilog structures/Controllers.md b/Basic Verilog structures/Controllers.md index c124fa71..a5666c72 100644 --- a/Basic Verilog structures/Controllers.md +++ b/Basic Verilog structures/Controllers.md @@ -2,7 +2,7 @@ Для того, чтобы лучше понять, что от вас требуется в рамках лабораторной работы по периферийным устройствам, рассмотрим процесс разработки структурной схемы (не SystemVerilog-описания) для контроллера светодиодов. -В первую очередь, здесь будет продублирована выдержка из спецификации на этот контроллер (общая часть раздела "[Описание контроллеров периферийных устройств](../../Labs/7.%20Peripheral%20units/README.md#описание-контроллеров-периферийных-устройств)", а также подраздел "[Светодиоды](../../Labs/7.%20Peripheral%20units/README.md#светодиоды)"): +В первую очередь, здесь будет продублирована выдержка из спецификации на этот контроллер (общая часть раздела "[Описание контроллеров периферийных устройств](../Labs/12.%20Peripheral%20units/README.md#описание-контроллеров-периферийных-устройств)", а также подраздел "[Светодиоды](../Labs/12.%20Peripheral%20units/README.md#светодиоды)"): ## Спецификация контроллера @@ -28,7 +28,7 @@ В случае отсутствия **запроса на чтения**, на выход `read_data_o` должно подаваться значение `32'hfa11_1eaf`. Это никак не повлияет на работу процессора, но будет удобно в процессе отладки на временной диаграмме (тоже самое было сделано в процессе разработки памяти данных). -Если пришел **запрос на запись** или **чтение**, это еще не значит, что контроллер должен его выполнить. В случае, если запрос происходит по адресу, не поддерживающему этот запрос (например **запрос на запись** по адресу поддерживающему только чтение или наоборот), данный запрос должен игнорироваться, а на выходе `read_data_o` должно появиться значение `32'hdead_beef`. +Если пришел **запрос на запись** или **чтение**, это еще не значит, что контроллер должен его выполнить. В случае, если запрос происходит по адресу, не поддерживающему этот запрос (например **запрос на запись** по адресу поддерживающему только чтение), данный запрос должен игнорироваться. В случае **запроса на чтение** по недоступному адресу, на выходе `read_data_o` должно появиться значение `32'hdead_beef`. К примеру, в случае запроса на чтение по адресу `0x0100004` (четвертый байт в адресном пространстве периферийного устройства "переключатели"), на выходе `read_data_o` должно оказаться значение `32'hdead_beef`. В случае отсутствия запроса на чтение (`req_i == 0` или `write_enable_i == 1`), на выходе `read_data_o` контроллера переключателей должно оказаться значение `32'hfa11_1eaf`. diff --git a/Basic Verilog structures/Multiplexors.md b/Basic Verilog structures/Multiplexors.md index 94e82243..0d30009b 100644 --- a/Basic Verilog structures/Multiplexors.md +++ b/Basic Verilog structures/Multiplexors.md @@ -124,7 +124,7 @@ end ```SystemVerilog logic Y; -always @(*) begin +always_comb begin case(S) // Описываем блок case, где значение сигнала S // будет сравниваться с различными возможными его значениями 1'b0: Y <= D0; // Если S==0, то Y = D0 diff --git a/Labs/01. Adder/board files/README.md b/Labs/01. Adder/board files/README.md index e67ef715..2964d509 100644 --- a/Labs/01. Adder/board files/README.md +++ b/Labs/01. Adder/board files/README.md @@ -4,20 +4,20 @@ После этого наше устройство будет выглядеть так: -![../../../.pic/Labs/board%20files/board%20files/nexys_adder1.png](../../../.pic/Labs/board%20files/board%20files/nexys_adder1.png) +![../../../.pic/Labs/board%20files/nexys_adder1.png](../../../.pic/Labs/board%20files/nexys_adder1.png) Подключенное окружение позволяет производить ввод входных значений (А, В и Pin) с помощью переключателей (номер переключателя отображен на самом краю платы), расположенных на плате. Операнд А задается переключателями 15-8, В: 7-0, Pin: тактовая кнопка BTND (нижняя из 5-ти, расположенных вместе в форме крестовины). Семисегментные индикаторы в шестнадцатиричном формате отображают на левом блоке слагаемые А и В, а на правом - результат сложения. На светодиодах, расположенных над переключателями отображается результат в двоичном формате. Управление сумматором через плату -![../../../.pic/Labs/board%20files/board%20files/nexys_adder2.png](../../../.pic/Labs/board%20files/board%20files/nexys_adder2.png) +![../../../.pic/Labs/board%20files/nexys_adder2.png](../../../.pic/Labs/board%20files/nexys_adder2.png) Для прошивки ПЛИС подключите утройство через USB, включите питание переключателем, выполните синтез и имплементацию вашего дизайна и сгенерируйте битстрим. Если на этом этапе у вас возникают ошибки, постарайтесь исправить из с помощью [`инструкции по работе с ошибками синтеза`](../../../Vivado%20Basics/Elaboration%20failed.md). После этого выберите в левом меню `Open Target` - `Auto Connect`, затем `Program Device` и ваше устройство прошьется. Генерация битстрима -![../../../.pic/Labs/board%20files/board%20files/Program_Device1.png](../../../.pic/Labs/board%20files/board%20files/Program_Device1.png) +![../../../.pic/Labs/board%20files/Program_Device1.png](../../../.pic/Labs/board%20files/Program_Device1.png) Прошивка ПЛИС -![../../../.pic/Labs/board%20files/board%20files/Program_Device2.png](../../../.pic/Labs/board%20files/board%20files/Program_Device2.png) +![../../../.pic/Labs/board%20files/Program_Device2.png](../../../.pic/Labs/board%20files/Program_Device2.png) Попробуйте выставить на переключателях различные слагаемые, убедитесь, что все работает исправно и сдавайте работу. diff --git a/Labs/01. Adder/board files/nexys_adder.sv b/Labs/01. Adder/board files/nexys_adder.sv index f4c69aca..0847b5d0 100644 --- a/Labs/01. Adder/board files/nexys_adder.sv +++ b/Labs/01. Adder/board files/nexys_adder.sv @@ -30,12 +30,12 @@ reg [15:0] LEDr; fulladder32 DUT ( - .A (A), - .B (B), - .Pin (Pin), + .a_i (A), + .b_i (B), + .carry_i (Pin), - .S (S), - .Pout (Pout) + .sum_o (S), + .carry_o (Pout) ); assign B = {24'b0,SW[7:0]}; @@ -127,4 +127,4 @@ always @(posedge CLK100) begin end end -endmodule \ No newline at end of file +endmodule diff --git a/Labs/01. Adder/tb_fulladder32.sv b/Labs/01. Adder/tb_fulladder32.sv index d2b597f5..79b2ea52 100644 --- a/Labs/01. Adder/tb_fulladder32.sv +++ b/Labs/01. Adder/tb_fulladder32.sv @@ -20,7 +20,7 @@ ////////////////////////////////////////////////////////////////////////////////// module tb_fulladder32(); - +`define __debug__ parameter TIME_OPERATION = 100; parameter TEST_VALUES = 3000; diff --git a/Labs/02. Arithmetic-logic unit/README.md b/Labs/02. Arithmetic-logic unit/README.md index 4ef7d13f..6adc74b9 100644 --- a/Labs/02. Arithmetic-logic unit/README.md +++ b/Labs/02. Arithmetic-logic unit/README.md @@ -32,11 +32,11 @@ На рис. 1 изображен пример АЛУ, используемый в книге "Цифровая схемотехника и архитектура компьютера" Харрис и Харрис. На входы `A` и `B` поступают операнды с разрядностью *N*. На трехбитный вход `F` подается код операции. Например, если туда подать `000`, то на выходе `Y` появится результат операции *логическое И* между битами операндов `A` и `B`. Если на `F` подать `010`, то на выходе появится результат сложения. Это лишь пример, разрядность и коды могут отличаться в зависимости от количества выполняемых операций и архитектуры. -Существует несколько подходов к реализации АЛУ, отличающиеся внутренней организацией. Некоторые из подходов освещаются на [`лекции 3`](../../Lectures/03.%20Digital%20arithmetics.md). В лабораторных работах применяется повсеместно используемый подход мультиплексирования операций, то есть подключения нескольких операционных устройств (которые выполняют какие-то операции, например сложения, логическое И и т.п.) к мультиплексору, который будет передавать результат нужного операционного устройства на выходы АЛУ. +Существует несколько подходов к реализации АЛУ, отличающиеся внутренней организацией. В лабораторных работах применяется повсеместно используемый подход мультиплексирования операций, то есть подключения нескольких операционных устройств (которые выполняют какие-то операции, например сложения, логическое И и т.п.) к мультиплексору, который будет передавать результат нужного операционного устройства на выходы АЛУ. Рассмотрим на примере все того же АЛУ MIPS из книги Харрисов. На рис. 2, в левой его части, изображена внутренняя организация этого АЛУ, справа – таблица соответствия кодов операциям. На выходе схемы (внизу) стоит четырехвходовый мультиплексор, управляемый двумя из трех битов `F`. К его входам подключены *N* логических И (побитовое И *N*-разрядных операндов), *N* логических ИЛИ, *N*-разрядный сумматор и Zero Extend – устройство делающее из однобитного числа *N*-битное число, дополняя нулями слева. -К одному из входов этих операционных устройств подключен `A` без изменений, а ко второму подключен выход двухвходового мультиплексора, управляемого оставшимся битом *F*. То есть `F[2]` определяет, что будет вторым операндом: `B` или `~B`. Вдобавок `F[2]` подается на входной перенос сумматора, то есть, когда `F[2] == 1` на выходе сумматора появляется результат операции `A + ~B + 1`, что (с учетом [дополнительного кода](https://ru.wikipedia.org/wiki/Дополнительный_код)) эквивалентно `A – B` (о сумматорах, входных переносах и вычитании на [`лекции 3`](../../Lectures/03.%20Digital%20arithmetics.md)). +К одному из входов этих операционных устройств подключен `A` без изменений, а ко второму подключен выход двухвходового мультиплексора, управляемого оставшимся битом *F*. То есть `F[2]` определяет, что будет вторым операндом: `B` или `~B`. Вдобавок `F[2]` подается на входной перенос сумматора, то есть, когда `F[2] == 1` на выходе сумматора появляется результат операции `A + ~B + 1`, что (с учетом [дополнительного кода](https://ru.wikipedia.org/wiki/Дополнительный_код)) эквивалентно `A – B`. ![../../.pic/Labs/lab_02_alu/fig_02.png](../../.pic/Labs/lab_02_alu/fig_02.png) diff --git a/Labs/02. Arithmetic-logic unit/board files/README.md b/Labs/02. Arithmetic-logic unit/board files/README.md index 6a404b85..1117c3cc 100644 --- a/Labs/02. Arithmetic-logic unit/board files/README.md +++ b/Labs/02. Arithmetic-logic unit/board files/README.md @@ -4,20 +4,20 @@ После этого наше устройство будет выглядеть так: -![../../../.pic/Labs/board%20files/board%20files/alu_9.png](../../../.pic/Labs/board%20files/board%20files/alu_9.png) +![../../../.pic/Labs/board%20files/alu_9.png](../../../.pic/Labs/board%20files/alu_9.png) Подключенное окружение позволяет производить ввод входных значений (А и В) и управляющего сигнала (ALUOp) с помощью переключателей (номер переключателя отображен на самом краю платы), расположенных на плате. А: 15-11, В: 10-6, ALUOp: 4-0, а переключатель №5 активирует семисегментные индикаторы, на которых отображается на левом блоке операнды А и В, а на правом - ALUOp. На светодиодах, расположенных над переключателями отображается выходное значение в двоичном формате, а 15-й светодиод отвечает за сигнал `Flag` Управление АЛУ через плату -![../../../.pic/Labs/board%20files/board%20files/nexys_alu.png](../../../.pic/Labs/board%20files/board%20files/nexys_alu.png) +![../../../.pic/Labs/board%20files/nexys_alu.png](../../../.pic/Labs/board%20files/nexys_alu.png) Для прошивки ПЛИС подключите утройство через USB, включите питание переключателем, выполните синтез и имплементацию вашего дизайна и сгенерируйте битстрим. Если на этом этапе у вас возникают ошибки, постарайтесь исправить из с помощью [`инструкции по работе с ошибками синтеза`](../../../Vivado%20Basics/Synthesis%20failed.md). После этого выберите в левом меню `Open Target` - `Auto Connect`, затем `Program Device` и ваше устройство прошьется. Генерация битстрима -![../../../.pic/Labs/board%20files/board%20files/Program_Device1.png](../../../.pic/Labs/board%20files/board%20files/Program_Device1.png) +![../../../.pic/Labs/board%20files/Program_Device1.png](../../../.pic/Labs/board%20files/Program_Device1.png) Прошивка ПЛИС -![../../../.pic/Labs/board%20files/board%20files/Program_Device2.png](../../../.pic/Labs/board%20files/board%20files/Program_Device2.png) +![../../../.pic/Labs/board%20files/Program_Device2.png](../../../.pic/Labs/board%20files/Program_Device2.png) Попробуйте выставить на переключателях различные опкоды, такие как сложение, вычитание, сдвиг и сравнения, убедитесь, что все работает исправно и сдавайте работу. diff --git a/Labs/02. Arithmetic-logic unit/board files/nexys_alu.sv b/Labs/02. Arithmetic-logic unit/board files/nexys_alu.sv index 85a2bf67..82db55ca 100644 --- a/Labs/02. Arithmetic-logic unit/board files/nexys_alu.sv +++ b/Labs/02. Arithmetic-logic unit/board files/nexys_alu.sv @@ -26,12 +26,12 @@ reg minus; alu_riscv DUT ( - .ALUOp (operator_i), - .A (operand_a_i), - .B (operand_b_i), + .alu_op_i (operator_i), + .a_i (operand_a_i), + .b_i (operand_b_i), - .Result (result_o), - .Flag (comparison_result_o) + .result_o (result_o), + .flag_o (comparison_result_o) ); assign operator_i = SW[4:0]; @@ -93,4 +93,4 @@ always @(posedge CLK100) begin end end -endmodule \ No newline at end of file +endmodule diff --git a/Labs/02. Arithmetic-logic unit/tb_miriscv_alu.sv b/Labs/02. Arithmetic-logic unit/tb_miriscv_alu.sv index e7369f90..5bb02a3e 100644 --- a/Labs/02. Arithmetic-logic unit/tb_miriscv_alu.sv +++ b/Labs/02. Arithmetic-logic unit/tb_miriscv_alu.sv @@ -60,6 +60,7 @@ reg [102:0] running_line; initial begin + running_line <= 0; $display( "\nStart test: \n\n==========================\nCLICK THE BUTTON 'Run All'\n==========================\n"); $stop(); for ( i = 0; i < TEST_VALUES; i = i + 1 ) begin @@ -10097,7 +10098,7 @@ initial line_dump = { 103'h3f27ac46eaaae4027700000000, 103'h16570085a76566615400000000, 103'h3cfd0b67e68d12a83e00000000, -103'h32d7053ffce4132de500000000, +103'hxxxxxxxxxxxxxxxxx000000000, 103'h073ec21038e11e95ca00000000 }; diff --git a/Labs/03. Register file and memory/README.md b/Labs/03. Register file and memory/README.md index 3c2d6250..d893f762 100644 --- a/Labs/03. Register file and memory/README.md +++ b/Labs/03. Register file and memory/README.md @@ -49,7 +49,7 @@ - установить сигнал `write_enable` в состояние разрешения записи (как правило это 1) и - дождаться нужного фронта `clk` — в этот момент данные будут записаны по указанному адресу. При этом, на выходе `read_data` будут старые данные, хранящиеся по адресу `addr`. На одном такте происходит одновременное считывание информации и запись новой. -Так же возможна реализация, в которой вход `read_data` и выход `write_data` объединены в единый вход/выход `data`. В этом случае операции чтения и записи разделены во времени и используют для этого один единый порт ввода-вывода (`inout`, двунаправленный порт) `data`. +Так же возможна реализация, в которой вход `write_data` и выход `read_data` объединены в единый вход/выход `data`. В этом случае операции чтения и записи разделены во времени и используют для этого один единый порт ввода-вывода (`inout`, двунаправленный порт) `data`. ![../../.pic/Labs/lab_03_memory/fig_01.drawio.png](../../.pic/Labs/lab_03_memory/fig_01.drawio.png) @@ -223,14 +223,13 @@ mоdulе instr_mеm( ); ``` - -Из [теории про память](#теория-про-память) вы могли догадаться, что такой модуль описывает память ёмкостью `4 GiB`. Однако в реальности, наша память будет куда меньше (в ПЛИС попросту не хватит ресурсов на реализацию памяти подобного объёма). На практике, внутри данного модуля вы должны будете реализовать память с 1024-мя 32-битными ячейками. +Не смотря на разрядность адреса, на практике, внутри данного модуля вы должны будете реализовать память с 1024-мя 32-битными ячейками (в ПЛИС попросту не хватит ресурсов на реализации памяти с 232 ячеек). При этом по спецификации процессор RISC-V использует память с побайтовой адресацией. Байтовая адресация означает, что процессор способен обращаться к отдельным байтам в памяти (за каждым байтом памяти закреплен свой индивидуальный адрес). -Однако, если у памяти будут 32-рязрядные ячейки, доступ к конкретному байту будет осложнен, ведь каждая ячейка — это 4 байта. Как получить данные третьего байта памяти? Если обратиться к третьей ячейке в массиве — придут данные 12-15-ых байт байт (поскольку каждая ячейка содержит по 4 байта). Чтобы получить данные третьего байта, необходимо разделить пришедший адрес на 4 (отбросив остаток от деления). `3 / 4 = 0` — и действительно, если обратиться к нулевой ячейке памяти — будут получены данные 3-го, 2-го, 1-го и 0-го байт. То что помимо значения третьего байта есть еще данные других байт нас в данный момент не интересует, важна только сама возможность указать адрес конкретного байта. +Однако, если у памяти будут 32-рязрядные ячейки, доступ к конкретному байту будет осложнен, ведь каждая ячейка — это 4 байта. Как получить данные третьего байта памяти? Если обратиться к третьей ячейке в массиве — придут данные 12-15-ых байт (поскольку каждая ячейка содержит по 4 байта). Чтобы получить данные третьего байта, необходимо разделить пришедший адрес на 4 (отбросив остаток от деления). `3 / 4 = 0` — и действительно, если обратиться к нулевой ячейке памяти — будут получены данные 3-го, 2-го, 1-го и 0-го байт. То что помимо значения третьего байта есть еще данные других байт нас в данный момент не интересует, важна только сама возможность указать адрес конкретного байта. -Деление на `2n` можно осуществить отбросив `n` младших бит числа. Таким образом на выход память инструкций должна выдавать данные, расположенные по адресу addr_i[31:2]; +Деление на 2n можно осуществить отбросив `n` младших бит числа. Таким образом на выход память инструкций должна выдавать данные, расположенные по адресу addr_i[31:2]; Обращение в память по адресам, превышающим `4095` должно выдавать значение `32'd0`. Почему именно `4095`? `4095 / 4 = 1023` — индекс последней ячейки памяти. @@ -346,7 +345,7 @@ mоdulе rf_r𝚒sсv( 1. В `Design Sources` проекта создайте `SystemVerilog`-файл `rf_riscv.sv`. 2. Опишите в нем модуль регистрового файла с таким же именем и портами, как указано в задании. 1. Обратите внимание, что имя памяти (не название модуля, а имя объекта памяти внутри модуля) должно быть `rf_mem`. Такое имя необходимо для корректной работы верификационного окружения. - 2. В отличии от памяти инструкций и данных, ячейки памяти регистрового файла должны быть 32-битными (а на 8-битными). Это означает, что реализация портов чтения и записи будет проще. + 2. Как и у памяти инструкций, порты чтения регистрового файла должны быть **асинхронными**. 3. Не забывайте, что у вас 2 порта на чтение и 1 порт на запись, при этом каждый порт не зависит от остальных (в модуле 3 независимых входа адреса). 4. Чтение из нулевого регистра (чтение по адресу 0) всегда должно возвращать нулевое значение. Этого можно добиться двумя путями: 1. Путем добавления мультиплексора перед выходным сигналом чтения (мультиплексор будет определять, пойдут ли на выход данные из ячейки регистрового файла, либо в случае если адрес равен нулю, на выход пойдет константа ноль). diff --git a/Labs/03. Register file and memory/program.txt b/Labs/03. Register file and memory/program.txt index 402227d7..b45a373e 100644 --- a/Labs/03. Register file and memory/program.txt +++ b/Labs/03. Register file and memory/program.txt @@ -1,1024 +1,1024 @@ -52 -60 -b0 -46 -30 -17 -7e -9f -4c -7e -61 -9f -ae -95 -82 -26 -28 -5a -e9 -80 -d6 -a0 -91 -92 -ac -df -34 -37 -de -9c -2b -a0 -18 -03 -27 -bf -76 -59 -9f -69 -05 -24 -0d -f9 -ec -a7 -b1 -16 -f1 -f8 -95 -e3 -35 -c8 -9f -77 -82 -65 -df -ae -12 -cd -2b -97 -cd -da -dd -2f -d5 -66 -9b -77 -f9 -c0 -9d -7d -27 -db -a4 -1f -ab -92 -0c -40 -6f -01 -8d -76 -47 -35 -5d -0b -79 -f2 -37 -78 -b7 -6c -4f -91 -18 -9f -a2 -4c -b4 -6e -14 -da -90 -09 -d2 -f9 -87 -5c -96 -db -bc -39 -b7 -5f -13 -d8 -fc -8a -af -0e -53 -68 -78 -19 -f2 -f4 -61 -de -bd -44 -9d -25 -ae -37 -d1 -23 -ca -d8 -52 -e1 -35 -31 -09 -55 -b2 -3a -f8 -6e -64 -fc -ea -5f -58 -47 -26 -d8 -73 -62 -ac -f7 -ab -32 -51 -d1 -3c -b2 -28 -70 -d0 -c3 -2f -85 -a2 -97 -5d -94 -a9 -27 -a0 -31 -f4 -4e -55 -78 -78 -28 -11 -78 -f7 -db -ea -33 -c4 -03 -05 -78 -ab -02 -70 -91 -e4 -be -fa -43 -4d -19 -98 -ad -c1 -1e -8c -d3 -82 -c1 -95 -a6 -7d -3b -c0 -20 -9c -59 -46 -54 -d9 -1b -e8 -37 -5d -77 -b8 -bd -fc -a3 -a6 -ee -c0 -7e -ee -ee -d6 -ee -56 -9d -1f -30 -c7 -ce -6a -05 -b4 -d1 -16 -ab -83 -76 -d2 -f5 -be -c4 -cd -f7 -0a -e6 -e5 -82 -9f -b2 -5c -e0 -30 -1d -fb -ff -10 -30 -90 -90 -20 -ea -99 -04 -64 -60 -92 -1b -dc -aa -ef -c5 -66 -8b -6f -40 -45 -14 -05 -66 -49 -51 -fa -56 -84 -38 -fd -d1 -e3 -c5 -35 -09 -6c -31 -9b -ee -3e -3f -36 -8a -22 -da -e8 -d8 -55 -33 -ee -ca -82 -27 -1b -71 -1e -e8 -6b -ad -c8 -77 -e0 -dc -b1 -8e -a6 -60 -cf -4e -9b -d1 -0c -d3 -bf -f1 -61 -ea -0c -b0 -18 -d8 -6c -24 -f3 -77 -3d -5d -f4 -aa -f9 -28 -12 -86 -01 -b0 -74 -35 -51 -ee -07 -65 -ba -d2 -cc -7c -42 -40 -db -33 -05 -aa -f6 -90 -05 -94 -3f -95 -39 -3b -b4 -41 -84 -85 -72 -ad -12 -95 -5c -da -dd -48 -48 -b4 -b4 -af -96 -33 -cb -c0 -0b -48 -12 -99 -ab -28 -8c -19 -87 -c9 -35 -35 -84 -f2 -05 -f9 -af -ea -01 -8a -13 -97 -4a -b7 -be -cd -d9 -9f -7a -c5 -41 -33 -43 -93 -2b -6a -6e -c6 -0c -6b -c4 -f3 -4f -0d -5e -b7 -ae -70 -e5 -14 -31 -68 -fc -3d -ee -3e -ee -1f -d5 -8e -3f -9a -ff -b0 -ae -b6 -21 -60 -4b -87 -a8 -d7 -06 -0c -5d -1d -17 -45 -28 -d0 -4d -58 -3e -5d -b0 -f6 -79 -99 -34 -2c -c9 -64 -06 -32 -7c -0a -ef -cc -3b -57 -09 -20 -3c -45 -77 -44 -4e -f8 -f8 -05 -b3 -55 -95 -7d -5d -53 -60 -82 -f1 -fa -86 -51 -f0 -7d -c4 -c5 -e4 -67 -3f -08 -5a -23 -c6 -ff -d9 -b4 -b5 -64 -66 -c5 -a8 -bd -49 -b4 -e4 -81 -5a -29 -56 -3c -97 -6c -d0 -83 -fa -50 -8b -80 -9c -eb -93 -32 -55 -30 -b6 -88 -4c -3a -fb -8c -65 -c9 -60 -46 -db -1a -37 -db -58 -36 -13 -f5 -00 -d2 -36 -ae -f3 -2a -61 -2c -02 -4c -d4 -4f -7e -02 -67 -3a -d8 -87 -59 -d3 -81 -bb -54 -15 -51 -8c -66 -f9 -74 -0b -d2 -95 -bc -47 -75 -d7 -1d -32 -27 -c9 -aa -bd -24 -98 -7b -14 -5f -ea -77 -e0 -97 -eb -88 -8f -11 -b5 -ee -e6 -df -01 -62 -ef -a3 -3f -33 -bd -a2 -19 -12 -04 -f4 -8c -22 -26 -7f -bf -6d -fa -1c -84 -fd -66 -f6 -3c -9f -8e -f9 -48 -6a -5e -09 -52 -6e -e2 -71 -ec -a2 -00 -09 -29 -23 -f8 -d7 -27 -af -88 -b8 -ef -8c -c1 -d3 -2f -74 -ce -2e -47 -a5 -7a -a9 -0b -17 -c0 -42 -61 -9c -dd -5c -8c -42 -92 -4f -73 -3b -fa -98 -ff -4d -1c -18 -0a -88 -cb -b1 -e7 -00 -28 -70 -62 -af -6c -73 -b1 -9d -31 -a1 -bf -89 -ae -1f -4a -c2 -ee -90 -9c -3c -d1 -76 -95 -d2 -72 -42 -2b -8a -b6 -7d -83 -9c -bb -c5 -a0 -ad -57 -44 -65 -1d -ae -f5 -d0 -a7 -bf -cb -e6 -47 -47 -e1 -a1 -40 -da -2a -20 -4c -d3 -91 -63 -b0 -94 -34 -4f -3c -05 -0d -c8 -c4 -25 -1f -0a -b1 -0c -44 -f2 -a4 -8d -aa -9b -f3 -c8 -2f -f4 -5a -ac -e3 -ef -fe -41 -f8 -9e -b5 -91 -0b -f0 -a9 -9d -42 -fa -d2 -36 -c0 -bd -29 -77 -8d -3e -a4 -93 -7d -59 -7b -33 -9d -03 -52 -94 -c8 -89 -67 -b3 -20 -be -c6 -72 -d0 -85 -28 -f2 -b2 -2f -ee -06 -b9 -6f -af -f6 -c6 -40 -c2 -7e -3e -e9 -0f -a4 -ca -33 -6c -98 -99 -2e -1b -1c -8d -fc -ce -73 -a9 -42 -d2 -4c -e8 -58 -e5 -e6 -78 -0c -44 -43 -3e -7f -d3 -58 -1f -8e -96 -0d -09 -7e -61 -76 -4e -f5 -87 -84 -da -0c -cb -46 -74 -f4 -5d -c7 -43 -9c -fd -ff -5f -b9 -c1 -b5 -7c -ba -c2 -40 -c8 -40 -0e -79 -67 -9b -84 -43 -36 -8e -11 -eb -18 -57 -f6 -38 -25 -82 -d2 -3d -9d -bc -15 -d4 -0a -70 -77 -37 -be -c6 -f4 -2d -bc -f1 -b0 -eb -a8 -d4 -9f -4f -f9 -5f -b5 -6a -73 -60 -fe -2d -0a -48 -74 -9b -c5 -d0 -03 -df -cc -04 -ef -90 -1a -12 -e6 -11 -74 -aa -2a -5f -ea -ef -93 -3d \ No newline at end of file +524c0895 +609b1f05 +b0d46df9 +46589375 +30106d7c +1761e8dc +7ed462df +9f9e3372 +4c5d513d +7e5bbd27 +61247ecd +9f2e7769 +ae8e2ca4 +95cde8e2 +82db2a72 +26305738 +28010642 +5aaceccc +e968983b +80da9a7d +d6beaa62 +a02d7563 +91de7c57 +92305096 +aca9e314 +df2452e6 +341ec4b3 +378c48a1 +deb5b026 +9c657151 +2bc150fd +a0bb897b +18527f25 +03b1d063 +27e0aaa4 +bf16c9c4 +7622635f +59f47b9a +9f8dbcd6 +69fae7d9 +05b44de3 +249e8233 +0d7a8c7f +f96061d7 +ec26457e +a771ef2e +b12bf050 +16d1cd9e +f1fe9ebf +f85bc148 +95b248b4 +e3f150ca +358c33f3 +c8ece2ff +9fa937db +773d18bb +82fd9d29 +65f22290 +df7e59b3 +ae62d28d +129f682e +cdab29fb +2b5efbe9 +9792231f +cd015090 +dab076fc +ddccd5eb +2fde1f10 +d562779e +66785313 +9b69c0e8 +779dc2bc +f9449c65 +c04acb7c +9dba6fcd +7d9b6a42 +276653b4 +db64a937 +a4602749 +1f734980 +ab444018 +92896900 +0c7975c9 +4080e414 +6fd149e0 +01c43356 +8da9eb7c +766b855c +4735d719 +35e7d477 +5d58d24f +0b91b876 +79660392 +f26db461 +37d6e5f0 +7863c03f +b7eed8d8 +6cf3ced2 +4fab0bce +917d0f57 +186a8639 +9f59ab48 +a2960b17 +4c5cc01b +b4bb98c4 +6ecc5501 +14ed44b8 +da9d0ca8 +90ef3346 +09f152fb +d2ac6b5f +f9e9c6de +8796464e +5ca09ff4 +96be3b7a +db65d059 +bc45c829 +392da269 +b7fc3339 +5faf9279 +132dece5 +d84f249a +fca54a87 +8a14765a +afb85e51 +0ef64c83 +536bab14 +68f35cdb +788d73fb +19b493e4 +f289684e +f4be169b +61e06b30 +dec0c039 +bd1c3761 +4419dbf6 +9d829efe +256adac2 +ae28273e +373ec50b +d12dc034 +239f287b +ca115890 +d81641b8 +52750d5f +e1f82223 +358cb5c8 +3148919b +096d8ace +555f6c38 +b2b7ab11 +3ad93c12 +f84d3a8e +6e7dcef9 +6496de5b +fc92883b +ea11546d +5faa2e62 +583be754 +472ff4f3 +268b7dfa +d8678232 +73820769 +6287b0da +ac560283 +f741cde7 +ab01e1c8 +32a3124d +515f0b14 +d17a18be +3c9c3360 +b2560f69 +28dad67e +707165b7 +d0cb8ade +c3b5b60e +2f7cf14c +85c2ab8f +a20d00b1 +972da3d8 +5dd86dcf +94bbccc4 +a9efef06 +27b47e27 +a0371c12 +31d58f93 +f44ca9cb +4e0f6a17 +5527c1e5 +78da95fc +784236af +28c48487 +117352d6 +784d55bb +f7cb0520 +dbac5a16 +ea692831 +332d1050 +c498a64b +03d25f20 +05c23907 +7869caf7 +ab46851e +02c467c4 +707b5224 +911746af +e4b39e48 +bec11fe0 +fa464e16 +439ef837 +4d433836 +19d58312 +98224d2b +ad91000b +c1c49b16 +1e3954b8 +8c8aed72 +d3a4226a +82b1c8d7 +c12a97f0 +959e82b9 +a6e4bf52 +7db53527 +3bb80797 +c0fb4e8d +20c2ca81 +9c567d73 +590a8e4d +4693b83c +54aec375 +d9be20e9 +1b8dbe6f +e86984d5 +3775ad6c +5d403878 +77674a1a +b8b00f25 +bdbc0764 +fc2e2ecd +a30d7b2e +a6657fbb +ee97c41a +c06f7857 +7e1cab47 +eee304e4 +ee59420e +d6414b43 +ee1bbbc5 +56e40aaf +9d53437d +1f0d5780 +30ff8dc4 +c7d472e9 +ce21e664 +6a977ebb +05bd7a23 +524c0895 +609b1f05 +b0d46df9 +46589375 +30106d7c +1761e8dc +7ed462df +9f9e3372 +4c5d513d +7e5bbd27 +61247ecd +9f2e7769 +ae8e2ca4 +95cde8e2 +82db2a72 +26305738 +28010642 +5aaceccc +e968983b +80da9a7d +d6beaa62 +a02d7563 +91de7c57 +92305096 +aca9e314 +df2452e6 +341ec4b3 +378c48a1 +deb5b026 +9c657151 +2bc150fd +a0bb897b +18527f25 +03b1d063 +27e0aaa4 +bf16c9c4 +7622635f +59f47b9a +9f8dbcd6 +69fae7d9 +05b44de3 +249e8233 +0d7a8c7f +f96061d7 +ec26457e +a771ef2e +b12bf050 +16d1cd9e +f1fe9ebf +f85bc148 +95b248b4 +e3f150ca +358c33f3 +c8ece2ff +9fa937db +773d18bb +82fd9d29 +65f22290 +df7e59b3 +ae62d28d +129f682e +cdab29fb +2b5efbe9 +9792231f +cd015090 +dab076fc +ddccd5eb +2fde1f10 +d562779e +66785313 +9b69c0e8 +779dc2bc +f9449c65 +c04acb7c +9dba6fcd +7d9b6a42 +276653b4 +db64a937 +a4602749 +1f734980 +ab444018 +92896900 +0c7975c9 +4080e414 +6fd149e0 +01c43356 +8da9eb7c +766b855c +4735d719 +35e7d477 +5d58d24f +0b91b876 +79660392 +f26db461 +37d6e5f0 +7863c03f +b7eed8d8 +6cf3ced2 +4fab0bce +917d0f57 +186a8639 +9f59ab48 +a2960b17 +4c5cc01b +b4bb98c4 +6ecc5501 +14ed44b8 +da9d0ca8 +90ef3346 +09f152fb +d2ac6b5f +f9e9c6de +8796464e +5ca09ff4 +96be3b7a +db65d059 +bc45c829 +392da269 +b7fc3339 +5faf9279 +132dece5 +d84f249a +fca54a87 +8a14765a +afb85e51 +0ef64c83 +536bab14 +68f35cdb +788d73fb +19b493e4 +f289684e +f4be169b +61e06b30 +dec0c039 +bd1c3761 +4419dbf6 +9d829efe +256adac2 +ae28273e +373ec50b +d12dc034 +239f287b +ca115890 +d81641b8 +52750d5f +e1f82223 +358cb5c8 +3148919b +096d8ace +555f6c38 +b2b7ab11 +3ad93c12 +f84d3a8e +6e7dcef9 +6496de5b +fc92883b +ea11546d +5faa2e62 +583be754 +472ff4f3 +268b7dfa +d8678232 +73820769 +6287b0da +ac560283 +f741cde7 +ab01e1c8 +32a3124d +515f0b14 +d17a18be +3c9c3360 +b2560f69 +28dad67e +707165b7 +d0cb8ade +c3b5b60e +2f7cf14c +85c2ab8f +a20d00b1 +972da3d8 +5dd86dcf +94bbccc4 +a9efef06 +27b47e27 +a0371c12 +31d58f93 +f44ca9cb +4e0f6a17 +5527c1e5 +78da95fc +784236af +28c48487 +117352d6 +784d55bb +f7cb0520 +dbac5a16 +ea692831 +332d1050 +c498a64b +03d25f20 +05c23907 +7869caf7 +ab46851e +02c467c4 +707b5224 +911746af +e4b39e48 +bec11fe0 +fa464e16 +439ef837 +4d433836 +19d58312 +98224d2b +ad91000b +c1c49b16 +1e3954b8 +8c8aed72 +d3a4226a +82b1c8d7 +c12a97f0 +959e82b9 +a6e4bf52 +7db53527 +3bb80797 +c0fb4e8d +20c2ca81 +9c567d73 +590a8e4d +4693b83c +54aec375 +d9be20e9 +1b8dbe6f +e86984d5 +3775ad6c +5d403878 +77674a1a +b8b00f25 +bdbc0764 +fc2e2ecd +a30d7b2e +a6657fbb +ee97c41a +c06f7857 +7e1cab47 +eee304e4 +ee59420e +d6414b43 +ee1bbbc5 +56e40aaf +9d53437d +1f0d5780 +30ff8dc4 +c7d472e9 +ce21e664 +6a977ebb +05bd7a23 +524c0895 +609b1f05 +b0d46df9 +46589375 +30106d7c +1761e8dc +7ed462df +9f9e3372 +4c5d513d +7e5bbd27 +61247ecd +9f2e7769 +ae8e2ca4 +95cde8e2 +82db2a72 +26305738 +28010642 +5aaceccc +e968983b +80da9a7d +d6beaa62 +a02d7563 +91de7c57 +92305096 +aca9e314 +df2452e6 +341ec4b3 +378c48a1 +deb5b026 +9c657151 +2bc150fd +a0bb897b +18527f25 +03b1d063 +27e0aaa4 +bf16c9c4 +7622635f +59f47b9a +9f8dbcd6 +69fae7d9 +05b44de3 +249e8233 +0d7a8c7f +f96061d7 +ec26457e +a771ef2e +b12bf050 +16d1cd9e +f1fe9ebf +f85bc148 +95b248b4 +e3f150ca +358c33f3 +c8ece2ff +9fa937db +773d18bb +82fd9d29 +65f22290 +df7e59b3 +ae62d28d +129f682e +cdab29fb +2b5efbe9 +9792231f +cd015090 +dab076fc +ddccd5eb +2fde1f10 +d562779e +66785313 +9b69c0e8 +779dc2bc +f9449c65 +c04acb7c +9dba6fcd +7d9b6a42 +276653b4 +db64a937 +a4602749 +1f734980 +ab444018 +92896900 +0c7975c9 +4080e414 +6fd149e0 +01c43356 +8da9eb7c +766b855c +4735d719 +35e7d477 +5d58d24f +0b91b876 +79660392 +f26db461 +37d6e5f0 +7863c03f +b7eed8d8 +6cf3ced2 +4fab0bce +917d0f57 +186a8639 +9f59ab48 +a2960b17 +4c5cc01b +b4bb98c4 +6ecc5501 +14ed44b8 +da9d0ca8 +90ef3346 +09f152fb +d2ac6b5f +f9e9c6de +8796464e +5ca09ff4 +96be3b7a +db65d059 +bc45c829 +392da269 +b7fc3339 +5faf9279 +132dece5 +d84f249a +fca54a87 +8a14765a +afb85e51 +0ef64c83 +536bab14 +68f35cdb +788d73fb +19b493e4 +f289684e +f4be169b +61e06b30 +dec0c039 +bd1c3761 +4419dbf6 +9d829efe +256adac2 +ae28273e +373ec50b +d12dc034 +239f287b +ca115890 +d81641b8 +52750d5f +e1f82223 +358cb5c8 +3148919b +096d8ace +555f6c38 +b2b7ab11 +3ad93c12 +f84d3a8e +6e7dcef9 +6496de5b +fc92883b +ea11546d +5faa2e62 +583be754 +472ff4f3 +268b7dfa +d8678232 +73820769 +6287b0da +ac560283 +f741cde7 +ab01e1c8 +32a3124d +515f0b14 +d17a18be +3c9c3360 +b2560f69 +28dad67e +707165b7 +d0cb8ade +c3b5b60e +2f7cf14c +85c2ab8f +a20d00b1 +972da3d8 +5dd86dcf +94bbccc4 +a9efef06 +27b47e27 +a0371c12 +31d58f93 +f44ca9cb +4e0f6a17 +5527c1e5 +78da95fc +784236af +28c48487 +117352d6 +784d55bb +f7cb0520 +dbac5a16 +ea692831 +332d1050 +c498a64b +03d25f20 +05c23907 +7869caf7 +ab46851e +02c467c4 +707b5224 +911746af +e4b39e48 +bec11fe0 +fa464e16 +439ef837 +4d433836 +19d58312 +98224d2b +ad91000b +c1c49b16 +1e3954b8 +8c8aed72 +d3a4226a +82b1c8d7 +c12a97f0 +959e82b9 +a6e4bf52 +7db53527 +3bb80797 +c0fb4e8d +20c2ca81 +9c567d73 +590a8e4d +4693b83c +54aec375 +d9be20e9 +1b8dbe6f +e86984d5 +3775ad6c +5d403878 +77674a1a +b8b00f25 +bdbc0764 +fc2e2ecd +a30d7b2e +a6657fbb +ee97c41a +c06f7857 +7e1cab47 +eee304e4 +ee59420e +d6414b43 +ee1bbbc5 +56e40aaf +9d53437d +1f0d5780 +30ff8dc4 +c7d472e9 +ce21e664 +6a977ebb +05bd7a23 +524c0895 +609b1f05 +b0d46df9 +46589375 +30106d7c +1761e8dc +7ed462df +9f9e3372 +4c5d513d +7e5bbd27 +61247ecd +9f2e7769 +ae8e2ca4 +95cde8e2 +82db2a72 +26305738 +28010642 +5aaceccc +e968983b +80da9a7d +d6beaa62 +a02d7563 +91de7c57 +92305096 +aca9e314 +df2452e6 +341ec4b3 +378c48a1 +deb5b026 +9c657151 +2bc150fd +a0bb897b +18527f25 +03b1d063 +27e0aaa4 +bf16c9c4 +7622635f +59f47b9a +9f8dbcd6 +69fae7d9 +05b44de3 +249e8233 +0d7a8c7f +f96061d7 +ec26457e +a771ef2e +b12bf050 +16d1cd9e +f1fe9ebf +f85bc148 +95b248b4 +e3f150ca +358c33f3 +c8ece2ff +9fa937db +773d18bb +82fd9d29 +65f22290 +df7e59b3 +ae62d28d +129f682e +cdab29fb +2b5efbe9 +9792231f +cd015090 +dab076fc +ddccd5eb +2fde1f10 +d562779e +66785313 +9b69c0e8 +779dc2bc +f9449c65 +c04acb7c +9dba6fcd +7d9b6a42 +276653b4 +db64a937 +a4602749 +1f734980 +ab444018 +92896900 +0c7975c9 +4080e414 +6fd149e0 +01c43356 +8da9eb7c +766b855c +4735d719 +35e7d477 +5d58d24f +0b91b876 +79660392 +f26db461 +37d6e5f0 +7863c03f +b7eed8d8 +6cf3ced2 +4fab0bce +917d0f57 +186a8639 +9f59ab48 +a2960b17 +4c5cc01b +b4bb98c4 +6ecc5501 +14ed44b8 +da9d0ca8 +90ef3346 +09f152fb +d2ac6b5f +f9e9c6de +8796464e +5ca09ff4 +96be3b7a +db65d059 +bc45c829 +392da269 +b7fc3339 +5faf9279 +132dece5 +d84f249a +fca54a87 +8a14765a +afb85e51 +0ef64c83 +536bab14 +68f35cdb +788d73fb +19b493e4 +f289684e +f4be169b +61e06b30 +dec0c039 +bd1c3761 +4419dbf6 +9d829efe +256adac2 +ae28273e +373ec50b +d12dc034 +239f287b +ca115890 +d81641b8 +52750d5f +e1f82223 +358cb5c8 +3148919b +096d8ace +555f6c38 +b2b7ab11 +3ad93c12 +f84d3a8e +6e7dcef9 +6496de5b +fc92883b +ea11546d +5faa2e62 +583be754 +472ff4f3 +268b7dfa +d8678232 +73820769 +6287b0da +ac560283 +f741cde7 +ab01e1c8 +32a3124d +515f0b14 +d17a18be +3c9c3360 +b2560f69 +28dad67e +707165b7 +d0cb8ade +c3b5b60e +2f7cf14c +85c2ab8f +a20d00b1 +972da3d8 +5dd86dcf +94bbccc4 +a9efef06 +27b47e27 +a0371c12 +31d58f93 +f44ca9cb +4e0f6a17 +5527c1e5 +78da95fc +784236af +28c48487 +117352d6 +784d55bb +f7cb0520 +dbac5a16 +ea692831 +332d1050 +c498a64b +03d25f20 +05c23907 +7869caf7 +ab46851e +02c467c4 +707b5224 +911746af +e4b39e48 +bec11fe0 +fa464e16 +439ef837 +4d433836 +19d58312 +98224d2b +ad91000b +c1c49b16 +1e3954b8 +8c8aed72 +d3a4226a +82b1c8d7 +c12a97f0 +959e82b9 +a6e4bf52 +7db53527 +3bb80797 +c0fb4e8d +20c2ca81 +9c567d73 +590a8e4d +4693b83c +54aec375 +d9be20e9 +1b8dbe6f +e86984d5 +3775ad6c +5d403878 +77674a1a +b8b00f25 +bdbc0764 +fc2e2ecd +a30d7b2e +a6657fbb +ee97c41a +c06f7857 +7e1cab47 +eee304e4 +ee59420e +d6414b43 +ee1bbbc5 +56e40aaf +9d53437d +1f0d5780 +30ff8dc4 +c7d472e9 +ce21e664 +6a977ebb +05bd7a23 \ No newline at end of file diff --git a/Labs/03. Register file and memory/tb_data_mem.sv b/Labs/03. Register file and memory/tb_data_mem.sv index 7ed55ff4..1f1e686c 100644 --- a/Labs/03. Register file and memory/tb_data_mem.sv +++ b/Labs/03. Register file and memory/tb_data_mem.sv @@ -21,8 +21,9 @@ module tb_data_mem(); -parameter ADDR_SIZE = 4096; -parameter TIME_OPERATION = 50; +parameter ADDR_SIZE = 16384; +parameter TIME_OPERATION = 20; +parameter STEP = 8; logic CLK; logic REQ; @@ -41,9 +42,7 @@ parameter TIME_OPERATION = 50; ); logic [31:0] RDa; - integer i, err_count = 0; - assign A = i; parameter CLK_FREQ_MHz = 100; @@ -57,7 +56,7 @@ parameter TIME_OPERATION = 50; $display( "\nStart test: \n\n==========================\nCLICK THE BUTTON 'Run All'\n==========================\n"); $stop(); REQ = 1; WE = 0; - i = 1; #10; + i = 0; #10; if (RD !== 32'hx) begin $display("The data memory should not be initialized by the $readmemh function"); err_count = err_count + 1; @@ -67,8 +66,8 @@ parameter TIME_OPERATION = 50; WE = 1; WD = $urandom; end - for (i = 0; i < (ADDR_SIZE+1); i = i + 1) begin - if (i != (ADDR_SIZE+1)) begin + for (i = 0; i < (ADDR_SIZE+STEP); i = i + 1 + $urandom() % STEP) begin + if (i < (ADDR_SIZE)) begin REQ = |($urandom %10); WE = 0; #TIME_OPERATION; @@ -87,10 +86,11 @@ parameter TIME_OPERATION = 50; end end else begin + WE = 0; REQ = 1; #TIME_OPERATION; if (RD !== 32'd3735928559) begin - $display("When reading (write_enable_i = %h) at an address greater than 4095, it should return dead_beef yor data: %h_%h, time: %t", WE, RD[31:16],RD[15:0], $time); + $display("When reading (write_enable_i = %h) at address greater than 16383 (current addr = %d), it should return dead_beef, but your data: %h_%h, time: %t", WE, A, RD[31:16],RD[15:0], $time); err_count = err_count + 1; end end @@ -98,29 +98,34 @@ parameter TIME_OPERATION = 50; end #TIME_OPERATION; REQ = 1; - WE = 1; - #TIME_OPERATION; - for (i = 0; i < 8; i = i + 4) begin - WD = i? 32'hfecd_ba98: 32'h7654_3210; - #TIME_OPERATION; - end WE = 0; - i = 2; #TIME_OPERATION; - if (RD !== 32'hba98_7654) begin - $display("data is being written to the cell incorrectly. RAM [0:7] must be 0x0123456789abcdef, time: %t", $time); + for (i = 0; i < 4; i = i + 1) begin + if(i==0) begin + repeat(2)@(posedge CLK); + #1; RDa = RD; + end else + if(RD !== RDa) begin + $display("incorrect conversion of the reading address = %h, time: %t", A, $time); err_count = err_count + 1; + end + #TIME_OPERATION; end - @(posedge CLK) - i = 0; + i = 0; WE = 0; REQ = 1; + @(posedge CLK); @(negedge CLK); - if (RD !== 32'hba98_7654) begin + i = 4; + #1; RDa = RD; + @(posedge CLK); #1; + if (RD == RDa) begin $display("reading from data memory must be synchronous, time: %t", $time); err_count = err_count + 1; end - @(posedge CLK); #5; - if (RD !== 32'h7654_3210) begin - $display("synchronous data memory read error, time: %t", $time); + @(posedge CLK); + i = {14{1'b1}}; + repeat(2) @(posedge CLK); + if (RD === 'd3735928559) begin + $display("incorrect reading from address = %d, data = %h", A, RD); err_count = err_count + 1; end $display("Number of errors: %d", err_count); diff --git a/Labs/03. Register file and memory/tb_instr_mem.sv b/Labs/03. Register file and memory/tb_instr_mem.sv index 4a7ba636..8ae6722a 100644 --- a/Labs/03. Register file and memory/tb_instr_mem.sv +++ b/Labs/03. Register file and memory/tb_instr_mem.sv @@ -21,41 +21,35 @@ module tb_instr_mem(); -parameter ADDR_SIZE = 1021; -parameter TIME_OPERATION = 100; +parameter ADDR_SIZE = 4096; +parameter TIME_OPERATION = 10; +parameter STEP = 8; - wire [31:0] A; - wire [31:0] RD; - wire [31:0] RDref; + logic [31:0] addr; + logic [31:0] RD; + logic [31:0] RDref; - instr_mem_ref8 DUTref( - .A(A), - .RD(RDref) + instr_mem_ref DUTref( + .addr_i(addr), + .read_data_o(RDref) ); instr_mem DUT ( - .addr_i(A), + .addr_i(addr), .read_data_o(RD) ); integer i, err_count = 0; - assign A = i; + assign addr = i; initial begin $timeformat (-9, 2, "ns"); $display( "\nStart test: \n\n==========================\nCLICK THE BUTTON 'Run All'\n==========================\n"); $stop(); - for (i = 0; i < ADDR_SIZE; i = i + 1) begin + for (i = 0; i < ADDR_SIZE + STEP; i = i + 1 + $urandom() % STEP) begin #TIME_OPERATION; if ( RD !== RDref) begin - $display("time = %0t, address %h. Invalid data %h, correct data %h", $time, A, RD, RDref); - err_count = err_count + 1; - end - end - for (i = 1021; i < 1024; i = i + 1) begin - #TIME_OPERATION; - if ( RD !== 32'b0) begin - $display("time = %0t, ERROR! Addr = %d", $time, A, " %h != 0", RD); + $display("time = %0t, address %d. Invalid data %h, correct data %h", $time, addr, RD, RDref); err_count = err_count + 1; end end @@ -66,8290 +60,32 @@ parameter TIME_OPERATION = 100; endmodule +module instr_mem_ref( + input [31:0] addr_i, + output logic [31:0] read_data_o + ); -(* STRUCTURAL_NETLIST = "yes" *) -module instr_mem_ref8 - (A, - RD); - input [31:0]A; - output [31:0]RD; +`define akjsdnnaskjdn $clog2(128) +`define cdyfguvhbjnmk $clog2(`akjsdnnaskjdn) +`define qwenklfsaklasd $clog2(`cdyfguvhbjnmk) +`define asdasdhkjasdsa (34 >> `cdyfguvhbjnmk) - wire [31:0]A; - wire [9:0]A_IBUF; - wire [31:0]RD; - wire [31:0]RD_OBUF; - wire \RD_OBUF[0]_inst_i_10_n_0 ; - wire \RD_OBUF[0]_inst_i_11_n_0 ; - wire \RD_OBUF[0]_inst_i_12_n_0 ; - wire \RD_OBUF[0]_inst_i_13_n_0 ; - wire \RD_OBUF[0]_inst_i_2_n_0 ; - wire \RD_OBUF[0]_inst_i_3_n_0 ; - wire \RD_OBUF[0]_inst_i_4_n_0 ; - wire \RD_OBUF[0]_inst_i_5_n_0 ; - wire \RD_OBUF[0]_inst_i_6_n_0 ; - wire \RD_OBUF[0]_inst_i_7_n_0 ; - wire \RD_OBUF[0]_inst_i_8_n_0 ; - wire \RD_OBUF[0]_inst_i_9_n_0 ; - wire \RD_OBUF[10]_inst_i_10_n_0 ; - wire \RD_OBUF[10]_inst_i_11_n_0 ; - wire \RD_OBUF[10]_inst_i_2_n_0 ; - wire \RD_OBUF[10]_inst_i_3_n_0 ; - wire \RD_OBUF[10]_inst_i_4_n_0 ; - wire \RD_OBUF[10]_inst_i_5_n_0 ; - wire \RD_OBUF[10]_inst_i_6_n_0 ; - wire \RD_OBUF[10]_inst_i_7_n_0 ; - wire \RD_OBUF[10]_inst_i_8_n_0 ; - wire \RD_OBUF[10]_inst_i_9_n_0 ; - wire \RD_OBUF[11]_inst_i_10_n_0 ; - wire \RD_OBUF[11]_inst_i_11_n_0 ; - wire \RD_OBUF[11]_inst_i_2_n_0 ; - wire \RD_OBUF[11]_inst_i_3_n_0 ; - wire \RD_OBUF[11]_inst_i_4_n_0 ; - wire \RD_OBUF[11]_inst_i_5_n_0 ; - wire \RD_OBUF[11]_inst_i_6_n_0 ; - wire \RD_OBUF[11]_inst_i_7_n_0 ; - wire \RD_OBUF[11]_inst_i_8_n_0 ; - wire \RD_OBUF[11]_inst_i_9_n_0 ; - wire \RD_OBUF[12]_inst_i_10_n_0 ; - wire \RD_OBUF[12]_inst_i_11_n_0 ; - wire \RD_OBUF[12]_inst_i_2_n_0 ; - wire \RD_OBUF[12]_inst_i_3_n_0 ; - wire \RD_OBUF[12]_inst_i_4_n_0 ; - wire \RD_OBUF[12]_inst_i_5_n_0 ; - wire \RD_OBUF[12]_inst_i_6_n_0 ; - wire \RD_OBUF[12]_inst_i_7_n_0 ; - wire \RD_OBUF[12]_inst_i_8_n_0 ; - wire \RD_OBUF[12]_inst_i_9_n_0 ; - wire \RD_OBUF[13]_inst_i_2_n_0 ; - wire \RD_OBUF[13]_inst_i_3_n_0 ; - wire \RD_OBUF[13]_inst_i_4_n_0 ; - wire \RD_OBUF[13]_inst_i_5_n_0 ; - wire \RD_OBUF[13]_inst_i_6_n_0 ; - wire \RD_OBUF[13]_inst_i_7_n_0 ; - wire \RD_OBUF[13]_inst_i_8_n_0 ; - wire \RD_OBUF[14]_inst_i_10_n_0 ; - wire \RD_OBUF[14]_inst_i_11_n_0 ; - wire \RD_OBUF[14]_inst_i_2_n_0 ; - wire \RD_OBUF[14]_inst_i_3_n_0 ; - wire \RD_OBUF[14]_inst_i_4_n_0 ; - wire \RD_OBUF[14]_inst_i_5_n_0 ; - wire \RD_OBUF[14]_inst_i_6_n_0 ; - wire \RD_OBUF[14]_inst_i_7_n_0 ; - wire \RD_OBUF[14]_inst_i_8_n_0 ; - wire \RD_OBUF[14]_inst_i_9_n_0 ; - wire \RD_OBUF[15]_inst_i_10_n_0 ; - wire \RD_OBUF[15]_inst_i_11_n_0 ; - wire \RD_OBUF[15]_inst_i_12_n_0 ; - wire \RD_OBUF[15]_inst_i_13_n_0 ; - wire \RD_OBUF[15]_inst_i_2_n_0 ; - wire \RD_OBUF[15]_inst_i_3_n_0 ; - wire \RD_OBUF[15]_inst_i_4_n_0 ; - wire \RD_OBUF[15]_inst_i_5_n_0 ; - wire \RD_OBUF[15]_inst_i_6_n_0 ; - wire \RD_OBUF[15]_inst_i_7_n_0 ; - wire \RD_OBUF[15]_inst_i_8_n_0 ; - wire \RD_OBUF[15]_inst_i_9_n_0 ; - wire \RD_OBUF[16]_inst_i_10_n_0 ; - wire \RD_OBUF[16]_inst_i_11_n_0 ; - wire \RD_OBUF[16]_inst_i_2_n_0 ; - wire \RD_OBUF[16]_inst_i_3_n_0 ; - wire \RD_OBUF[16]_inst_i_4_n_0 ; - wire \RD_OBUF[16]_inst_i_5_n_0 ; - wire \RD_OBUF[16]_inst_i_6_n_0 ; - wire \RD_OBUF[16]_inst_i_7_n_0 ; - wire \RD_OBUF[16]_inst_i_8_n_0 ; - wire \RD_OBUF[16]_inst_i_9_n_0 ; - wire \RD_OBUF[17]_inst_i_10_n_0 ; - wire \RD_OBUF[17]_inst_i_11_n_0 ; - wire \RD_OBUF[17]_inst_i_2_n_0 ; - wire \RD_OBUF[17]_inst_i_3_n_0 ; - wire \RD_OBUF[17]_inst_i_4_n_0 ; - wire \RD_OBUF[17]_inst_i_5_n_0 ; - wire \RD_OBUF[17]_inst_i_6_n_0 ; - wire \RD_OBUF[17]_inst_i_7_n_0 ; - wire \RD_OBUF[17]_inst_i_8_n_0 ; - wire \RD_OBUF[17]_inst_i_9_n_0 ; - wire \RD_OBUF[18]_inst_i_10_n_0 ; - wire \RD_OBUF[18]_inst_i_11_n_0 ; - wire \RD_OBUF[18]_inst_i_2_n_0 ; - wire \RD_OBUF[18]_inst_i_3_n_0 ; - wire \RD_OBUF[18]_inst_i_4_n_0 ; - wire \RD_OBUF[18]_inst_i_5_n_0 ; - wire \RD_OBUF[18]_inst_i_6_n_0 ; - wire \RD_OBUF[18]_inst_i_7_n_0 ; - wire \RD_OBUF[18]_inst_i_8_n_0 ; - wire \RD_OBUF[18]_inst_i_9_n_0 ; - wire \RD_OBUF[19]_inst_i_10_n_0 ; - wire \RD_OBUF[19]_inst_i_11_n_0 ; - wire \RD_OBUF[19]_inst_i_2_n_0 ; - wire \RD_OBUF[19]_inst_i_3_n_0 ; - wire \RD_OBUF[19]_inst_i_4_n_0 ; - wire \RD_OBUF[19]_inst_i_5_n_0 ; - wire \RD_OBUF[19]_inst_i_6_n_0 ; - wire \RD_OBUF[19]_inst_i_7_n_0 ; - wire \RD_OBUF[19]_inst_i_8_n_0 ; - wire \RD_OBUF[19]_inst_i_9_n_0 ; - wire \RD_OBUF[1]_inst_i_10_n_0 ; - wire \RD_OBUF[1]_inst_i_11_n_0 ; - wire \RD_OBUF[1]_inst_i_12_n_0 ; - wire \RD_OBUF[1]_inst_i_13_n_0 ; - wire \RD_OBUF[1]_inst_i_2_n_0 ; - wire \RD_OBUF[1]_inst_i_3_n_0 ; - wire \RD_OBUF[1]_inst_i_4_n_0 ; - wire \RD_OBUF[1]_inst_i_5_n_0 ; - wire \RD_OBUF[1]_inst_i_6_n_0 ; - wire \RD_OBUF[1]_inst_i_7_n_0 ; - wire \RD_OBUF[1]_inst_i_8_n_0 ; - wire \RD_OBUF[1]_inst_i_9_n_0 ; - wire \RD_OBUF[20]_inst_i_10_n_0 ; - wire \RD_OBUF[20]_inst_i_11_n_0 ; - wire \RD_OBUF[20]_inst_i_2_n_0 ; - wire \RD_OBUF[20]_inst_i_3_n_0 ; - wire \RD_OBUF[20]_inst_i_4_n_0 ; - wire \RD_OBUF[20]_inst_i_5_n_0 ; - wire \RD_OBUF[20]_inst_i_6_n_0 ; - wire \RD_OBUF[20]_inst_i_7_n_0 ; - wire \RD_OBUF[20]_inst_i_8_n_0 ; - wire \RD_OBUF[20]_inst_i_9_n_0 ; - wire \RD_OBUF[21]_inst_i_2_n_0 ; - wire \RD_OBUF[21]_inst_i_3_n_0 ; - wire \RD_OBUF[21]_inst_i_4_n_0 ; - wire \RD_OBUF[21]_inst_i_5_n_0 ; - wire \RD_OBUF[21]_inst_i_6_n_0 ; - wire \RD_OBUF[21]_inst_i_7_n_0 ; - wire \RD_OBUF[21]_inst_i_8_n_0 ; - wire \RD_OBUF[22]_inst_i_10_n_0 ; - wire \RD_OBUF[22]_inst_i_11_n_0 ; - wire \RD_OBUF[22]_inst_i_2_n_0 ; - wire \RD_OBUF[22]_inst_i_3_n_0 ; - wire \RD_OBUF[22]_inst_i_4_n_0 ; - wire \RD_OBUF[22]_inst_i_5_n_0 ; - wire \RD_OBUF[22]_inst_i_6_n_0 ; - wire \RD_OBUF[22]_inst_i_7_n_0 ; - wire \RD_OBUF[22]_inst_i_8_n_0 ; - wire \RD_OBUF[22]_inst_i_9_n_0 ; - wire \RD_OBUF[23]_inst_i_10_n_0 ; - wire \RD_OBUF[23]_inst_i_11_n_0 ; - wire \RD_OBUF[23]_inst_i_12_n_0 ; - wire \RD_OBUF[23]_inst_i_13_n_0 ; - wire \RD_OBUF[23]_inst_i_2_n_0 ; - wire \RD_OBUF[23]_inst_i_3_n_0 ; - wire \RD_OBUF[23]_inst_i_4_n_0 ; - wire \RD_OBUF[23]_inst_i_5_n_0 ; - wire \RD_OBUF[23]_inst_i_6_n_0 ; - wire \RD_OBUF[23]_inst_i_7_n_0 ; - wire \RD_OBUF[23]_inst_i_8_n_0 ; - wire \RD_OBUF[23]_inst_i_9_n_0 ; - wire \RD_OBUF[24]_inst_i_10_n_0 ; - wire \RD_OBUF[24]_inst_i_11_n_0 ; - wire \RD_OBUF[24]_inst_i_2_n_0 ; - wire \RD_OBUF[24]_inst_i_3_n_0 ; - wire \RD_OBUF[24]_inst_i_4_n_0 ; - wire \RD_OBUF[24]_inst_i_5_n_0 ; - wire \RD_OBUF[24]_inst_i_6_n_0 ; - wire \RD_OBUF[24]_inst_i_7_n_0 ; - wire \RD_OBUF[24]_inst_i_8_n_0 ; - wire \RD_OBUF[24]_inst_i_9_n_0 ; - wire \RD_OBUF[25]_inst_i_10_n_0 ; - wire \RD_OBUF[25]_inst_i_11_n_0 ; - wire \RD_OBUF[25]_inst_i_2_n_0 ; - wire \RD_OBUF[25]_inst_i_3_n_0 ; - wire \RD_OBUF[25]_inst_i_4_n_0 ; - wire \RD_OBUF[25]_inst_i_5_n_0 ; - wire \RD_OBUF[25]_inst_i_6_n_0 ; - wire \RD_OBUF[25]_inst_i_7_n_0 ; - wire \RD_OBUF[25]_inst_i_8_n_0 ; - wire \RD_OBUF[25]_inst_i_9_n_0 ; - wire \RD_OBUF[26]_inst_i_10_n_0 ; - wire \RD_OBUF[26]_inst_i_11_n_0 ; - wire \RD_OBUF[26]_inst_i_2_n_0 ; - wire \RD_OBUF[26]_inst_i_3_n_0 ; - wire \RD_OBUF[26]_inst_i_4_n_0 ; - wire \RD_OBUF[26]_inst_i_5_n_0 ; - wire \RD_OBUF[26]_inst_i_6_n_0 ; - wire \RD_OBUF[26]_inst_i_7_n_0 ; - wire \RD_OBUF[26]_inst_i_8_n_0 ; - wire \RD_OBUF[26]_inst_i_9_n_0 ; - wire \RD_OBUF[27]_inst_i_10_n_0 ; - wire \RD_OBUF[27]_inst_i_11_n_0 ; - wire \RD_OBUF[27]_inst_i_2_n_0 ; - wire \RD_OBUF[27]_inst_i_3_n_0 ; - wire \RD_OBUF[27]_inst_i_4_n_0 ; - wire \RD_OBUF[27]_inst_i_5_n_0 ; - wire \RD_OBUF[27]_inst_i_6_n_0 ; - wire \RD_OBUF[27]_inst_i_7_n_0 ; - wire \RD_OBUF[27]_inst_i_8_n_0 ; - wire \RD_OBUF[27]_inst_i_9_n_0 ; - wire \RD_OBUF[28]_inst_i_10_n_0 ; - wire \RD_OBUF[28]_inst_i_11_n_0 ; - wire \RD_OBUF[28]_inst_i_2_n_0 ; - wire \RD_OBUF[28]_inst_i_3_n_0 ; - wire \RD_OBUF[28]_inst_i_4_n_0 ; - wire \RD_OBUF[28]_inst_i_5_n_0 ; - wire \RD_OBUF[28]_inst_i_6_n_0 ; - wire \RD_OBUF[28]_inst_i_7_n_0 ; - wire \RD_OBUF[28]_inst_i_8_n_0 ; - wire \RD_OBUF[28]_inst_i_9_n_0 ; - wire \RD_OBUF[29]_inst_i_2_n_0 ; - wire \RD_OBUF[29]_inst_i_3_n_0 ; - wire \RD_OBUF[29]_inst_i_5_n_0 ; - wire \RD_OBUF[29]_inst_i_7_n_0 ; - wire \RD_OBUF[2]_inst_i_10_n_0 ; - wire \RD_OBUF[2]_inst_i_11_n_0 ; - wire \RD_OBUF[2]_inst_i_12_n_0 ; - wire \RD_OBUF[2]_inst_i_13_n_0 ; - wire \RD_OBUF[2]_inst_i_2_n_0 ; - wire \RD_OBUF[2]_inst_i_3_n_0 ; - wire \RD_OBUF[2]_inst_i_4_n_0 ; - wire \RD_OBUF[2]_inst_i_5_n_0 ; - wire \RD_OBUF[2]_inst_i_6_n_0 ; - wire \RD_OBUF[2]_inst_i_7_n_0 ; - wire \RD_OBUF[2]_inst_i_8_n_0 ; - wire \RD_OBUF[2]_inst_i_9_n_0 ; - wire \RD_OBUF[30]_inst_i_10_n_0 ; - wire \RD_OBUF[30]_inst_i_11_n_0 ; - wire \RD_OBUF[30]_inst_i_2_n_0 ; - wire \RD_OBUF[30]_inst_i_3_n_0 ; - wire \RD_OBUF[30]_inst_i_4_n_0 ; - wire \RD_OBUF[30]_inst_i_5_n_0 ; - wire \RD_OBUF[30]_inst_i_6_n_0 ; - wire \RD_OBUF[30]_inst_i_7_n_0 ; - wire \RD_OBUF[30]_inst_i_8_n_0 ; - wire \RD_OBUF[30]_inst_i_9_n_0 ; - wire \RD_OBUF[31]_inst_i_10_n_0 ; - wire \RD_OBUF[31]_inst_i_11_n_0 ; - wire \RD_OBUF[31]_inst_i_12_n_0 ; - wire \RD_OBUF[31]_inst_i_13_n_0 ; - wire \RD_OBUF[31]_inst_i_3_n_0 ; - wire \RD_OBUF[31]_inst_i_4_n_0 ; - wire \RD_OBUF[31]_inst_i_5_n_0 ; - wire \RD_OBUF[31]_inst_i_6_n_0 ; - wire \RD_OBUF[31]_inst_i_7_n_0 ; - wire \RD_OBUF[31]_inst_i_8_n_0 ; - wire \RD_OBUF[31]_inst_i_9_n_0 ; - wire \RD_OBUF[3]_inst_i_10_n_0 ; - wire \RD_OBUF[3]_inst_i_11_n_0 ; - wire \RD_OBUF[3]_inst_i_12_n_0 ; - wire \RD_OBUF[3]_inst_i_13_n_0 ; - wire \RD_OBUF[3]_inst_i_2_n_0 ; - wire \RD_OBUF[3]_inst_i_3_n_0 ; - wire \RD_OBUF[3]_inst_i_4_n_0 ; - wire \RD_OBUF[3]_inst_i_5_n_0 ; - wire \RD_OBUF[3]_inst_i_6_n_0 ; - wire \RD_OBUF[3]_inst_i_7_n_0 ; - wire \RD_OBUF[3]_inst_i_8_n_0 ; - wire \RD_OBUF[3]_inst_i_9_n_0 ; - wire \RD_OBUF[4]_inst_i_10_n_0 ; - wire \RD_OBUF[4]_inst_i_11_n_0 ; - wire \RD_OBUF[4]_inst_i_12_n_0 ; - wire \RD_OBUF[4]_inst_i_13_n_0 ; - wire \RD_OBUF[4]_inst_i_2_n_0 ; - wire \RD_OBUF[4]_inst_i_3_n_0 ; - wire \RD_OBUF[4]_inst_i_4_n_0 ; - wire \RD_OBUF[4]_inst_i_5_n_0 ; - wire \RD_OBUF[4]_inst_i_6_n_0 ; - wire \RD_OBUF[4]_inst_i_7_n_0 ; - wire \RD_OBUF[4]_inst_i_8_n_0 ; - wire \RD_OBUF[4]_inst_i_9_n_0 ; - wire \RD_OBUF[5]_inst_i_2_n_0 ; - wire \RD_OBUF[5]_inst_i_3_n_0 ; - wire \RD_OBUF[5]_inst_i_4_n_0 ; - wire \RD_OBUF[5]_inst_i_5_n_0 ; - wire \RD_OBUF[6]_inst_i_10_n_0 ; - wire \RD_OBUF[6]_inst_i_11_n_0 ; - wire \RD_OBUF[6]_inst_i_12_n_0 ; - wire \RD_OBUF[6]_inst_i_13_n_0 ; - wire \RD_OBUF[6]_inst_i_2_n_0 ; - wire \RD_OBUF[6]_inst_i_3_n_0 ; - wire \RD_OBUF[6]_inst_i_4_n_0 ; - wire \RD_OBUF[6]_inst_i_5_n_0 ; - wire \RD_OBUF[6]_inst_i_6_n_0 ; - wire \RD_OBUF[6]_inst_i_7_n_0 ; - wire \RD_OBUF[6]_inst_i_8_n_0 ; - wire \RD_OBUF[6]_inst_i_9_n_0 ; - wire \RD_OBUF[7]_inst_i_10_n_0 ; - wire \RD_OBUF[7]_inst_i_11_n_0 ; - wire \RD_OBUF[7]_inst_i_12_n_0 ; - wire \RD_OBUF[7]_inst_i_13_n_0 ; - wire \RD_OBUF[7]_inst_i_2_n_0 ; - wire \RD_OBUF[7]_inst_i_3_n_0 ; - wire \RD_OBUF[7]_inst_i_4_n_0 ; - wire \RD_OBUF[7]_inst_i_5_n_0 ; - wire \RD_OBUF[7]_inst_i_6_n_0 ; - wire \RD_OBUF[7]_inst_i_7_n_0 ; - wire \RD_OBUF[7]_inst_i_8_n_0 ; - wire \RD_OBUF[7]_inst_i_9_n_0 ; - wire \RD_OBUF[8]_inst_i_10_n_0 ; - wire \RD_OBUF[8]_inst_i_11_n_0 ; - wire \RD_OBUF[8]_inst_i_2_n_0 ; - wire \RD_OBUF[8]_inst_i_3_n_0 ; - wire \RD_OBUF[8]_inst_i_4_n_0 ; - wire \RD_OBUF[8]_inst_i_5_n_0 ; - wire \RD_OBUF[8]_inst_i_6_n_0 ; - wire \RD_OBUF[8]_inst_i_7_n_0 ; - wire \RD_OBUF[8]_inst_i_8_n_0 ; - wire \RD_OBUF[8]_inst_i_9_n_0 ; - wire \RD_OBUF[9]_inst_i_10_n_0 ; - wire \RD_OBUF[9]_inst_i_11_n_0 ; - wire \RD_OBUF[9]_inst_i_2_n_0 ; - wire \RD_OBUF[9]_inst_i_3_n_0 ; - wire \RD_OBUF[9]_inst_i_4_n_0 ; - wire \RD_OBUF[9]_inst_i_5_n_0 ; - wire \RD_OBUF[9]_inst_i_6_n_0 ; - wire \RD_OBUF[9]_inst_i_7_n_0 ; - wire \RD_OBUF[9]_inst_i_8_n_0 ; - wire \RD_OBUF[9]_inst_i_9_n_0 ; - wire g0_b0__0_n_0; - wire g0_b0__1_n_0; - wire g0_b0__2_n_0; - wire g0_b0_n_0; - wire g0_b1__0_n_0; - wire g0_b1__1_n_0; - wire g0_b1__2_n_0; - wire g0_b1_n_0; - wire g0_b2__0_n_0; - wire g0_b2__1_n_0; - wire g0_b2__2_n_0; - wire g0_b2_n_0; - wire g0_b3__0_n_0; - wire g0_b3__1_n_0; - wire g0_b3__2_n_0; - wire g0_b3_n_0; - wire g0_b4__0_n_0; - wire g0_b4__1_n_0; - wire g0_b4__2_n_0; - wire g0_b4_n_0; - wire g0_b5__0_n_0; - wire g0_b5__1_n_0; - wire g0_b5__2_n_0; - wire g0_b5_n_0; - wire g0_b6__0_n_0; - wire g0_b6__1_n_0; - wire g0_b6__2_n_0; - wire g0_b6_n_0; - wire g0_b7__0_n_0; - wire g0_b7__1_n_0; - wire g0_b7__2_n_0; - wire g0_b7_n_0; - wire g10_b0__0_n_0; - wire g10_b0__1_n_0; - wire g10_b0__2_n_0; - wire g10_b0_n_0; - wire g10_b1__0_n_0; - wire g10_b1__1_n_0; - wire g10_b1__2_n_0; - wire g10_b1_n_0; - wire g10_b2__0_n_0; - wire g10_b2__1_n_0; - wire g10_b2__2_n_0; - wire g10_b2_n_0; - wire g10_b3__0_n_0; - wire g10_b3__1_n_0; - wire g10_b3__2_n_0; - wire g10_b3_n_0; - wire g10_b4__0_n_0; - wire g10_b4__1_n_0; - wire g10_b4__2_n_0; - wire g10_b4_n_0; - wire g10_b6__0_n_0; - wire g10_b6__1_n_0; - wire g10_b6__2_n_0; - wire g10_b6_n_0; - wire g10_b7__0_n_0; - wire g10_b7__1_n_0; - wire g10_b7__2_n_0; - wire g10_b7_n_0; - wire g11_b0__0_n_0; - wire g11_b0__1_n_0; - wire g11_b0__2_n_0; - wire g11_b0_n_0; - wire g11_b1__0_n_0; - wire g11_b1__1_n_0; - wire g11_b1__2_n_0; - wire g11_b1_n_0; - wire g11_b2__0_n_0; - wire g11_b2__1_n_0; - wire g11_b2__2_n_0; - wire g11_b2_n_0; - wire g11_b3__0_n_0; - wire g11_b3__1_n_0; - wire g11_b3__2_n_0; - wire g11_b3_n_0; - wire g11_b4__0_n_0; - wire g11_b4__1_n_0; - wire g11_b4__2_n_0; - wire g11_b4_n_0; - wire g11_b6__0_n_0; - wire g11_b6__1_n_0; - wire g11_b6__2_n_0; - wire g11_b6_n_0; - wire g11_b7__0_n_0; - wire g11_b7__1_n_0; - wire g11_b7__2_n_0; - wire g11_b7_n_0; - wire g12_b0__0_n_0; - wire g12_b0__1_n_0; - wire g12_b0__2_n_0; - wire g12_b0_n_0; - wire g12_b1__0_n_0; - wire g12_b1__1_n_0; - wire g12_b1__2_n_0; - wire g12_b1_n_0; - wire g12_b2__0_n_0; - wire g12_b2__1_n_0; - wire g12_b2__2_n_0; - wire g12_b2_n_0; - wire g12_b3__0_n_0; - wire g12_b3__1_n_0; - wire g12_b3__2_n_0; - wire g12_b3_n_0; - wire g12_b4__0_n_0; - wire g12_b4__1_n_0; - wire g12_b4__2_n_0; - wire g12_b4_n_0; - wire g12_b6__0_n_0; - wire g12_b6__1_n_0; - wire g12_b6__2_n_0; - wire g12_b6_n_0; - wire g12_b7__0_n_0; - wire g12_b7__1_n_0; - wire g12_b7__2_n_0; - wire g12_b7_n_0; - wire g13_b0__0_n_0; - wire g13_b0__1_n_0; - wire g13_b0__2_n_0; - wire g13_b0_n_0; - wire g13_b1__0_n_0; - wire g13_b1__1_n_0; - wire g13_b1__2_n_0; - wire g13_b1_n_0; - wire g13_b2__0_n_0; - wire g13_b2__1_n_0; - wire g13_b2__2_n_0; - wire g13_b2_n_0; - wire g13_b3__0_n_0; - wire g13_b3__1_n_0; - wire g13_b3__2_n_0; - wire g13_b3_n_0; - wire g13_b4__0_n_0; - wire g13_b4__1_n_0; - wire g13_b4__2_n_0; - wire g13_b4_n_0; - wire g13_b6__0_n_0; - wire g13_b6__1_n_0; - wire g13_b6__2_n_0; - wire g13_b6_n_0; - wire g13_b7__0_n_0; - wire g13_b7__1_n_0; - wire g13_b7__2_n_0; - wire g13_b7_n_0; - wire g14_b0__0_n_0; - wire g14_b0__1_n_0; - wire g14_b0__2_n_0; - wire g14_b0_n_0; - wire g14_b1__0_n_0; - wire g14_b1__1_n_0; - wire g14_b1__2_n_0; - wire g14_b1_n_0; - wire g14_b2__0_n_0; - wire g14_b2__1_n_0; - wire g14_b2__2_n_0; - wire g14_b2_n_0; - wire g14_b3__0_n_0; - wire g14_b3__1_n_0; - wire g14_b3__2_n_0; - wire g14_b3_n_0; - wire g14_b4__0_n_0; - wire g14_b4__1_n_0; - wire g14_b4__2_n_0; - wire g14_b4_n_0; - wire g14_b6__0_n_0; - wire g14_b6__1_n_0; - wire g14_b6__2_n_0; - wire g14_b6_n_0; - wire g14_b7__0_n_0; - wire g14_b7__1_n_0; - wire g14_b7__2_n_0; - wire g14_b7_n_0; - wire g15_b0__0_n_0; - wire g15_b0__1_n_0; - wire g15_b0__2_n_0; - wire g15_b0_n_0; - wire g15_b1__0_n_0; - wire g15_b1__1_n_0; - wire g15_b1__2_n_0; - wire g15_b1_n_0; - wire g15_b2__0_n_0; - wire g15_b2__1_n_0; - wire g15_b2__2_n_0; - wire g15_b2_n_0; - wire g15_b3__0_n_0; - wire g15_b3__1_n_0; - wire g15_b3__2_n_0; - wire g15_b3_n_0; - wire g15_b4__0_n_0; - wire g15_b4__1_n_0; - wire g15_b4__2_n_0; - wire g15_b4_n_0; - wire g15_b6__0_n_0; - wire g15_b6__1_n_0; - wire g15_b6__2_n_0; - wire g15_b6_n_0; - wire g15_b7__0_n_0; - wire g15_b7__1_n_0; - wire g15_b7__2_n_0; - wire g15_b7_i_1__0_n_0; - wire g15_b7_i_1__1_n_0; - wire g15_b7_i_2__0_n_0; - wire g15_b7_i_2_n_0; - wire g15_b7_i_3_n_0; - wire g15_b7_i_4_n_0; - wire g15_b7_i_5_n_0; - wire g15_b7_n_0; - wire g1_b0__0_n_0; - wire g1_b0__1_n_0; - wire g1_b0__2_n_0; - wire g1_b0_n_0; - wire g1_b1__0_n_0; - wire g1_b1__1_n_0; - wire g1_b1__2_n_0; - wire g1_b1_n_0; - wire g1_b2__0_n_0; - wire g1_b2__1_n_0; - wire g1_b2__2_n_0; - wire g1_b2_n_0; - wire g1_b3__0_n_0; - wire g1_b3__1_n_0; - wire g1_b3__2_n_0; - wire g1_b3_n_0; - wire g1_b4__0_n_0; - wire g1_b4__1_n_0; - wire g1_b4__2_n_0; - wire g1_b4_n_0; - wire g1_b5__0_n_0; - wire g1_b5__1_n_0; - wire g1_b5__2_n_0; - wire g1_b5_n_0; - wire g1_b6__0_n_0; - wire g1_b6__1_n_0; - wire g1_b6__2_n_0; - wire g1_b6_n_0; - wire g1_b7__0_n_0; - wire g1_b7__1_n_0; - wire g1_b7__2_n_0; - wire g1_b7_n_0; - wire g2_b0__0_n_0; - wire g2_b0__1_n_0; - wire g2_b0__2_n_0; - wire g2_b0_n_0; - wire g2_b1__0_n_0; - wire g2_b1__1_n_0; - wire g2_b1__2_n_0; - wire g2_b1_n_0; - wire g2_b2__0_n_0; - wire g2_b2__1_n_0; - wire g2_b2__2_n_0; - wire g2_b2_n_0; - wire g2_b3__0_n_0; - wire g2_b3__1_n_0; - wire g2_b3__2_n_0; - wire g2_b3_n_0; - wire g2_b4__0_n_0; - wire g2_b4__1_n_0; - wire g2_b4__2_n_0; - wire g2_b4_n_0; - wire g2_b5__0_n_0; - wire g2_b5__1_n_0; - wire g2_b5__2_n_0; - wire g2_b5_n_0; - wire g2_b6__0_n_0; - wire g2_b6__1_n_0; - wire g2_b6__2_n_0; - wire g2_b6_n_0; - wire g2_b7__0_n_0; - wire g2_b7__1_n_0; - wire g2_b7__2_n_0; - wire g2_b7_n_0; - wire g3_b0__0_n_0; - wire g3_b0__1_n_0; - wire g3_b0__2_n_0; - wire g3_b0_n_0; - wire g3_b1__0_n_0; - wire g3_b1__1_n_0; - wire g3_b1__2_n_0; - wire g3_b1_n_0; - wire g3_b2__0_n_0; - wire g3_b2__1_n_0; - wire g3_b2__2_n_0; - wire g3_b2_n_0; - wire g3_b3__0_n_0; - wire g3_b3__1_n_0; - wire g3_b3__2_n_0; - wire g3_b3_n_0; - wire g3_b4__0_n_0; - wire g3_b4__1_n_0; - wire g3_b4__2_n_0; - wire g3_b4_n_0; - wire g3_b5__0_n_0; - wire g3_b5__1_n_0; - wire g3_b5__2_n_0; - wire g3_b5_n_0; - wire g3_b6__0_n_0; - wire g3_b6__1_n_0; - wire g3_b6__2_n_0; - wire g3_b6_n_0; - wire g3_b7__0_n_0; - wire g3_b7__1_n_0; - wire g3_b7__2_n_0; - wire g3_b7_n_0; - wire g4_b0__0_n_0; - wire g4_b0__1_n_0; - wire g4_b0__2_n_0; - wire g4_b0_n_0; - wire g4_b1__0_n_0; - wire g4_b1__1_n_0; - wire g4_b1__2_n_0; - wire g4_b1_n_0; - wire g4_b2__0_n_0; - wire g4_b2__1_n_0; - wire g4_b2__2_n_0; - wire g4_b2_n_0; - wire g4_b3__0_n_0; - wire g4_b3__1_n_0; - wire g4_b3__2_n_0; - wire g4_b3_n_0; - wire g4_b4__0_n_0; - wire g4_b4__1_n_0; - wire g4_b4__2_n_0; - wire g4_b4_n_0; - wire g4_b5__0_n_0; - wire g4_b5__1_n_0; - wire g4_b5__2_n_0; - wire g4_b5_n_0; - wire g4_b6__0_n_0; - wire g4_b6__1_n_0; - wire g4_b6__2_n_0; - wire g4_b6_n_0; - wire g4_b7__0_n_0; - wire g4_b7__1_n_0; - wire g4_b7__2_n_0; - wire g4_b7_n_0; - wire g5_b0__0_n_0; - wire g5_b0__1_n_0; - wire g5_b0__2_n_0; - wire g5_b0_n_0; - wire g5_b1__0_n_0; - wire g5_b1__1_n_0; - wire g5_b1__2_n_0; - wire g5_b1_n_0; - wire g5_b2__0_n_0; - wire g5_b2__1_n_0; - wire g5_b2__2_n_0; - wire g5_b2_n_0; - wire g5_b3__0_n_0; - wire g5_b3__1_n_0; - wire g5_b3__2_n_0; - wire g5_b3_n_0; - wire g5_b4__0_n_0; - wire g5_b4__1_n_0; - wire g5_b4__2_n_0; - wire g5_b4_n_0; - wire g5_b5__0_n_0; - wire g5_b5__1_n_0; - wire g5_b5__2_n_0; - wire g5_b5_n_0; - wire g5_b6__0_n_0; - wire g5_b6__1_n_0; - wire g5_b6__2_n_0; - wire g5_b6_n_0; - wire g5_b7__0_n_0; - wire g5_b7__1_n_0; - wire g5_b7__2_n_0; - wire g5_b7_n_0; - wire g6_b0__0_n_0; - wire g6_b0__1_n_0; - wire g6_b0__2_n_0; - wire g6_b0_n_0; - wire g6_b1__0_n_0; - wire g6_b1__1_n_0; - wire g6_b1__2_n_0; - wire g6_b1_n_0; - wire g6_b2__0_n_0; - wire g6_b2__1_n_0; - wire g6_b2__2_n_0; - wire g6_b2_n_0; - wire g6_b3__0_n_0; - wire g6_b3__1_n_0; - wire g6_b3__2_n_0; - wire g6_b3_n_0; - wire g6_b4__0_n_0; - wire g6_b4__1_n_0; - wire g6_b4__2_n_0; - wire g6_b4_n_0; - wire g6_b5__0_n_0; - wire g6_b5__1_n_0; - wire g6_b5__2_n_0; - wire g6_b5_n_0; - wire g6_b6__0_n_0; - wire g6_b6__1_n_0; - wire g6_b6__2_n_0; - wire g6_b6_n_0; - wire g6_b7__0_n_0; - wire g6_b7__1_n_0; - wire g6_b7__2_n_0; - wire g6_b7_n_0; - wire g7_b0__0_n_0; - wire g7_b0__1_n_0; - wire g7_b0__2_n_0; - wire g7_b0_n_0; - wire g7_b1__0_n_0; - wire g7_b1__1_n_0; - wire g7_b1__2_n_0; - wire g7_b1_n_0; - wire g7_b2__0_n_0; - wire g7_b2__1_n_0; - wire g7_b2__2_n_0; - wire g7_b2_n_0; - wire g7_b3__0_n_0; - wire g7_b3__1_n_0; - wire g7_b3__2_n_0; - wire g7_b3_n_0; - wire g7_b4__0_n_0; - wire g7_b4__1_n_0; - wire g7_b4__2_n_0; - wire g7_b4_n_0; - wire g7_b5__0_n_0; - wire g7_b5__1_n_0; - wire g7_b5__2_n_0; - wire g7_b5_n_0; - wire g7_b6__0_n_0; - wire g7_b6__1_n_0; - wire g7_b6__2_n_0; - wire g7_b6_n_0; - wire g7_b7__0_n_0; - wire g7_b7__1_n_0; - wire g7_b7__2_n_0; - wire g7_b7_n_0; - wire g8_b0__0_n_0; - wire g8_b0__1_n_0; - wire g8_b0__2_n_0; - wire g8_b0_n_0; - wire g8_b1__0_n_0; - wire g8_b1__1_n_0; - wire g8_b1__2_n_0; - wire g8_b1_n_0; - wire g8_b2__0_n_0; - wire g8_b2__1_n_0; - wire g8_b2__2_n_0; - wire g8_b2_n_0; - wire g8_b3__0_n_0; - wire g8_b3__1_n_0; - wire g8_b3__2_n_0; - wire g8_b3_n_0; - wire g8_b4__0_n_0; - wire g8_b4__1_n_0; - wire g8_b4__2_n_0; - wire g8_b4_n_0; - wire g8_b6__0_n_0; - wire g8_b6__1_n_0; - wire g8_b6__2_n_0; - wire g8_b6_n_0; - wire g8_b7__0_n_0; - wire g8_b7__1_n_0; - wire g8_b7__2_n_0; - wire g8_b7_n_0; - wire g9_b0__0_n_0; - wire g9_b0__1_n_0; - wire g9_b0__2_n_0; - wire g9_b0_n_0; - wire g9_b1__0_n_0; - wire g9_b1__1_n_0; - wire g9_b1__2_n_0; - wire g9_b1_n_0; - wire g9_b2__0_n_0; - wire g9_b2__1_n_0; - wire g9_b2__2_n_0; - wire g9_b2_n_0; - wire g9_b3__0_n_0; - wire g9_b3__1_n_0; - wire g9_b3__2_n_0; - wire g9_b3_n_0; - wire g9_b4__0_n_0; - wire g9_b4__1_n_0; - wire g9_b4__2_n_0; - wire g9_b4_n_0; - wire g9_b6__0_n_0; - wire g9_b6__1_n_0; - wire g9_b6__2_n_0; - wire g9_b6_n_0; - wire g9_b7__0_n_0; - wire g9_b7__1_n_0; - wire g9_b7__2_n_0; - wire g9_b7_n_0; - wire [9:1]sel; +reg [31:0] RAM [0:1023]; +initial $readmemh("program.txt", RAM); - IBUF \A_IBUF[0]_inst - (.I(A[0]), - .O(A_IBUF[0])); - IBUF \A_IBUF[1]_inst - (.I(A[1]), - .O(A_IBUF[1])); - IBUF \A_IBUF[2]_inst - (.I(A[2]), - .O(A_IBUF[2])); - IBUF \A_IBUF[3]_inst - (.I(A[3]), - .O(A_IBUF[3])); - IBUF \A_IBUF[4]_inst - (.I(A[4]), - .O(A_IBUF[4])); - IBUF \A_IBUF[5]_inst - (.I(A[5]), - .O(A_IBUF[5])); - IBUF \A_IBUF[6]_inst - (.I(A[6]), - .O(A_IBUF[6])); - IBUF \A_IBUF[7]_inst - (.I(A[7]), - .O(A_IBUF[7])); - IBUF \A_IBUF[8]_inst - (.I(A[8]), - .O(A_IBUF[8])); - IBUF \A_IBUF[9]_inst - (.I(A[9]), - .O(A_IBUF[9])); - OBUF \RD_OBUF[0]_inst - (.I(RD_OBUF[0]), - .O(RD[0])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[0]_inst_i_1 - (.I0(\RD_OBUF[0]_inst_i_2_n_0 ), - .I1(\RD_OBUF[0]_inst_i_3_n_0 ), - .I2(A_IBUF[9]), - .I3(\RD_OBUF[0]_inst_i_4_n_0 ), - .I4(A_IBUF[8]), - .I5(\RD_OBUF[0]_inst_i_5_n_0 ), - .O(RD_OBUF[0])); - MUXF7 \RD_OBUF[0]_inst_i_10 - (.I0(g4_b0_n_0), - .I1(g5_b0_n_0), - .O(\RD_OBUF[0]_inst_i_10_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[0]_inst_i_11 - (.I0(g6_b0_n_0), - .I1(g7_b0_n_0), - .O(\RD_OBUF[0]_inst_i_11_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[0]_inst_i_12 - (.I0(g0_b0_n_0), - .I1(g1_b0_n_0), - .O(\RD_OBUF[0]_inst_i_12_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[0]_inst_i_13 - (.I0(g2_b0_n_0), - .I1(g3_b0_n_0), - .O(\RD_OBUF[0]_inst_i_13_n_0 ), - .S(A_IBUF[6])); - MUXF8 \RD_OBUF[0]_inst_i_2 - (.I0(\RD_OBUF[0]_inst_i_6_n_0 ), - .I1(\RD_OBUF[0]_inst_i_7_n_0 ), - .O(\RD_OBUF[0]_inst_i_2_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[0]_inst_i_3 - (.I0(\RD_OBUF[0]_inst_i_8_n_0 ), - .I1(\RD_OBUF[0]_inst_i_9_n_0 ), - .O(\RD_OBUF[0]_inst_i_3_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[0]_inst_i_4 - (.I0(\RD_OBUF[0]_inst_i_10_n_0 ), - .I1(\RD_OBUF[0]_inst_i_11_n_0 ), - .O(\RD_OBUF[0]_inst_i_4_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[0]_inst_i_5 - (.I0(\RD_OBUF[0]_inst_i_12_n_0 ), - .I1(\RD_OBUF[0]_inst_i_13_n_0 ), - .O(\RD_OBUF[0]_inst_i_5_n_0 ), - .S(A_IBUF[7])); - MUXF7 \RD_OBUF[0]_inst_i_6 - (.I0(g12_b0_n_0), - .I1(g13_b0_n_0), - .O(\RD_OBUF[0]_inst_i_6_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[0]_inst_i_7 - (.I0(g14_b0_n_0), - .I1(g15_b0_n_0), - .O(\RD_OBUF[0]_inst_i_7_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[0]_inst_i_8 - (.I0(g8_b0_n_0), - .I1(g9_b0_n_0), - .O(\RD_OBUF[0]_inst_i_8_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[0]_inst_i_9 - (.I0(g10_b0_n_0), - .I1(g11_b0_n_0), - .O(\RD_OBUF[0]_inst_i_9_n_0 ), - .S(A_IBUF[6])); - OBUF \RD_OBUF[10]_inst - (.I(RD_OBUF[10]), - .O(RD[10])); - MUXF7 \RD_OBUF[10]_inst_i_1 - (.I0(\RD_OBUF[10]_inst_i_2_n_0 ), - .I1(\RD_OBUF[10]_inst_i_3_n_0 ), - .O(RD_OBUF[10]), - .S(\RD_OBUF[15]_inst_i_2_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[10]_inst_i_10 - (.I0(g11_b2__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b2__2_n_0), - .O(\RD_OBUF[10]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[10]_inst_i_11 - (.I0(g9_b2__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b2__2_n_0), - .O(\RD_OBUF[10]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[10]_inst_i_2 - (.I0(\RD_OBUF[10]_inst_i_4_n_0 ), - .I1(\RD_OBUF[10]_inst_i_5_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[10]_inst_i_6_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[10]_inst_i_7_n_0 ), - .O(\RD_OBUF[10]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[10]_inst_i_3 - (.I0(\RD_OBUF[10]_inst_i_8_n_0 ), - .I1(\RD_OBUF[10]_inst_i_9_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[10]_inst_i_10_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[10]_inst_i_11_n_0 ), - .O(\RD_OBUF[10]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[10]_inst_i_4 - (.I0(g7_b2__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b2__2_n_0), - .O(\RD_OBUF[10]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[10]_inst_i_5 - (.I0(g5_b2__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b2__2_n_0), - .O(\RD_OBUF[10]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[10]_inst_i_6 - (.I0(g3_b2__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b2__2_n_0), - .O(\RD_OBUF[10]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[10]_inst_i_7 - (.I0(g1_b2__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b2__2_n_0), - .O(\RD_OBUF[10]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[10]_inst_i_8 - (.I0(g15_b2__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b2__2_n_0), - .O(\RD_OBUF[10]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[10]_inst_i_9 - (.I0(g13_b2__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b2__2_n_0), - .O(\RD_OBUF[10]_inst_i_9_n_0 )); - OBUF \RD_OBUF[11]_inst - (.I(RD_OBUF[11]), - .O(RD[11])); - MUXF7 \RD_OBUF[11]_inst_i_1 - (.I0(\RD_OBUF[11]_inst_i_2_n_0 ), - .I1(\RD_OBUF[11]_inst_i_3_n_0 ), - .O(RD_OBUF[11]), - .S(\RD_OBUF[15]_inst_i_2_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[11]_inst_i_10 - (.I0(g11_b3__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b3__2_n_0), - .O(\RD_OBUF[11]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[11]_inst_i_11 - (.I0(g9_b3__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b3__2_n_0), - .O(\RD_OBUF[11]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[11]_inst_i_2 - (.I0(\RD_OBUF[11]_inst_i_4_n_0 ), - .I1(\RD_OBUF[11]_inst_i_5_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[11]_inst_i_6_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[11]_inst_i_7_n_0 ), - .O(\RD_OBUF[11]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[11]_inst_i_3 - (.I0(\RD_OBUF[11]_inst_i_8_n_0 ), - .I1(\RD_OBUF[11]_inst_i_9_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[11]_inst_i_10_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[11]_inst_i_11_n_0 ), - .O(\RD_OBUF[11]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[11]_inst_i_4 - (.I0(g7_b3__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b3__2_n_0), - .O(\RD_OBUF[11]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[11]_inst_i_5 - (.I0(g5_b3__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b3__2_n_0), - .O(\RD_OBUF[11]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[11]_inst_i_6 - (.I0(g3_b3__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b3__2_n_0), - .O(\RD_OBUF[11]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[11]_inst_i_7 - (.I0(g1_b3__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b3__2_n_0), - .O(\RD_OBUF[11]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[11]_inst_i_8 - (.I0(g15_b3__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b3__2_n_0), - .O(\RD_OBUF[11]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[11]_inst_i_9 - (.I0(g13_b3__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b3__2_n_0), - .O(\RD_OBUF[11]_inst_i_9_n_0 )); - OBUF \RD_OBUF[12]_inst - (.I(RD_OBUF[12]), - .O(RD[12])); - MUXF7 \RD_OBUF[12]_inst_i_1 - (.I0(\RD_OBUF[12]_inst_i_2_n_0 ), - .I1(\RD_OBUF[12]_inst_i_3_n_0 ), - .O(RD_OBUF[12]), - .S(\RD_OBUF[15]_inst_i_2_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[12]_inst_i_10 - (.I0(g11_b4__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b4__2_n_0), - .O(\RD_OBUF[12]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[12]_inst_i_11 - (.I0(g9_b4__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b4__2_n_0), - .O(\RD_OBUF[12]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[12]_inst_i_2 - (.I0(\RD_OBUF[12]_inst_i_4_n_0 ), - .I1(\RD_OBUF[12]_inst_i_5_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[12]_inst_i_6_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[12]_inst_i_7_n_0 ), - .O(\RD_OBUF[12]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[12]_inst_i_3 - (.I0(\RD_OBUF[12]_inst_i_8_n_0 ), - .I1(\RD_OBUF[12]_inst_i_9_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[12]_inst_i_10_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[12]_inst_i_11_n_0 ), - .O(\RD_OBUF[12]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[12]_inst_i_4 - (.I0(g7_b4__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b4__2_n_0), - .O(\RD_OBUF[12]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[12]_inst_i_5 - (.I0(g5_b4__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b4__2_n_0), - .O(\RD_OBUF[12]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[12]_inst_i_6 - (.I0(g3_b4__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b4__2_n_0), - .O(\RD_OBUF[12]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[12]_inst_i_7 - (.I0(g1_b4__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b4__2_n_0), - .O(\RD_OBUF[12]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[12]_inst_i_8 - (.I0(g15_b4__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b4__2_n_0), - .O(\RD_OBUF[12]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[12]_inst_i_9 - (.I0(g13_b4__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b4__2_n_0), - .O(\RD_OBUF[12]_inst_i_9_n_0 )); - OBUF \RD_OBUF[13]_inst - (.I(RD_OBUF[13]), - .O(RD[13])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[13]_inst_i_1 - (.I0(\RD_OBUF[13]_inst_i_2_n_0 ), - .I1(\RD_OBUF[13]_inst_i_3_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[13]_inst_i_5_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[13]_inst_i_7_n_0 ), - .O(RD_OBUF[13])); - MUXF7 \RD_OBUF[13]_inst_i_2 - (.I0(g6_b5__2_n_0), - .I1(g7_b5__2_n_0), - .O(\RD_OBUF[13]_inst_i_2_n_0 ), - .S(\RD_OBUF[13]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[13]_inst_i_3 - (.I0(g4_b5__2_n_0), - .I1(g5_b5__2_n_0), - .O(\RD_OBUF[13]_inst_i_3_n_0 ), - .S(\RD_OBUF[13]_inst_i_8_n_0 )); - (* SOFT_HLUTNM = "soft_lutpair2" *) - LUT4 #( - .INIT(16'h7F80)) - \RD_OBUF[13]_inst_i_4 - (.I0(A_IBUF[6]), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[7]), - .I3(A_IBUF[8]), - .O(\RD_OBUF[13]_inst_i_4_n_0 )); - MUXF7 \RD_OBUF[13]_inst_i_5 - (.I0(g2_b5__2_n_0), - .I1(g3_b5__2_n_0), - .O(\RD_OBUF[13]_inst_i_5_n_0 ), - .S(\RD_OBUF[13]_inst_i_8_n_0 )); - (* SOFT_HLUTNM = "soft_lutpair0" *) - LUT3 #( - .INIT(8'h78)) - \RD_OBUF[13]_inst_i_6 - (.I0(\RD_OBUF[15]_inst_i_5_n_0 ), - .I1(A_IBUF[6]), - .I2(A_IBUF[7]), - .O(\RD_OBUF[13]_inst_i_6_n_0 )); - MUXF7 \RD_OBUF[13]_inst_i_7 - (.I0(g0_b5__2_n_0), - .I1(g1_b5__2_n_0), - .O(\RD_OBUF[13]_inst_i_7_n_0 ), - .S(\RD_OBUF[13]_inst_i_8_n_0 )); - LUT2 #( - .INIT(4'h6)) - \RD_OBUF[13]_inst_i_8 - (.I0(\RD_OBUF[15]_inst_i_5_n_0 ), - .I1(A_IBUF[6]), - .O(\RD_OBUF[13]_inst_i_8_n_0 )); - OBUF \RD_OBUF[14]_inst - (.I(RD_OBUF[14]), - .O(RD[14])); - MUXF7 \RD_OBUF[14]_inst_i_1 - (.I0(\RD_OBUF[14]_inst_i_2_n_0 ), - .I1(\RD_OBUF[14]_inst_i_3_n_0 ), - .O(RD_OBUF[14]), - .S(\RD_OBUF[15]_inst_i_2_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[14]_inst_i_10 - (.I0(g11_b6__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b6__2_n_0), - .O(\RD_OBUF[14]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[14]_inst_i_11 - (.I0(g9_b6__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b6__2_n_0), - .O(\RD_OBUF[14]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[14]_inst_i_2 - (.I0(\RD_OBUF[14]_inst_i_4_n_0 ), - .I1(\RD_OBUF[14]_inst_i_5_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[14]_inst_i_6_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[14]_inst_i_7_n_0 ), - .O(\RD_OBUF[14]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[14]_inst_i_3 - (.I0(\RD_OBUF[14]_inst_i_8_n_0 ), - .I1(\RD_OBUF[14]_inst_i_9_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[14]_inst_i_10_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[14]_inst_i_11_n_0 ), - .O(\RD_OBUF[14]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[14]_inst_i_4 - (.I0(g7_b6__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b6__2_n_0), - .O(\RD_OBUF[14]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[14]_inst_i_5 - (.I0(g5_b6__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b6__2_n_0), - .O(\RD_OBUF[14]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[14]_inst_i_6 - (.I0(g3_b6__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b6__2_n_0), - .O(\RD_OBUF[14]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[14]_inst_i_7 - (.I0(g1_b6__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b6__2_n_0), - .O(\RD_OBUF[14]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[14]_inst_i_8 - (.I0(g15_b6__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b6__2_n_0), - .O(\RD_OBUF[14]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[14]_inst_i_9 - (.I0(g13_b6__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b6__2_n_0), - .O(\RD_OBUF[14]_inst_i_9_n_0 )); - OBUF \RD_OBUF[15]_inst - (.I(RD_OBUF[15]), - .O(RD[15])); - MUXF7 \RD_OBUF[15]_inst_i_1 - (.I0(\RD_OBUF[15]_inst_i_3_n_0 ), - .I1(\RD_OBUF[15]_inst_i_4_n_0 ), - .O(RD_OBUF[15]), - .S(\RD_OBUF[15]_inst_i_2_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[15]_inst_i_10 - (.I0(g15_b7__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b7__2_n_0), - .O(\RD_OBUF[15]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[15]_inst_i_11 - (.I0(g13_b7__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b7__2_n_0), - .O(\RD_OBUF[15]_inst_i_11_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[15]_inst_i_12 - (.I0(g11_b7__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b7__2_n_0), - .O(\RD_OBUF[15]_inst_i_12_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[15]_inst_i_13 - (.I0(g9_b7__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b7__2_n_0), - .O(\RD_OBUF[15]_inst_i_13_n_0 )); - LUT5 #( - .INIT(32'h7FFF8000)) - \RD_OBUF[15]_inst_i_2 - (.I0(A_IBUF[7]), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(A_IBUF[8]), - .I4(A_IBUF[9]), - .O(\RD_OBUF[15]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[15]_inst_i_3 - (.I0(\RD_OBUF[15]_inst_i_6_n_0 ), - .I1(\RD_OBUF[15]_inst_i_7_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[15]_inst_i_8_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[15]_inst_i_9_n_0 ), - .O(\RD_OBUF[15]_inst_i_3_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[15]_inst_i_4 - (.I0(\RD_OBUF[15]_inst_i_10_n_0 ), - .I1(\RD_OBUF[15]_inst_i_11_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[15]_inst_i_12_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[15]_inst_i_13_n_0 ), - .O(\RD_OBUF[15]_inst_i_4_n_0 )); - LUT6 #( - .INIT(64'h8000000000000000)) - \RD_OBUF[15]_inst_i_5 - (.I0(A_IBUF[5]), - .I1(A_IBUF[3]), - .I2(A_IBUF[1]), - .I3(A_IBUF[0]), - .I4(A_IBUF[2]), - .I5(A_IBUF[4]), - .O(\RD_OBUF[15]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[15]_inst_i_6 - (.I0(g7_b7__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b7__2_n_0), - .O(\RD_OBUF[15]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[15]_inst_i_7 - (.I0(g5_b7__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b7__2_n_0), - .O(\RD_OBUF[15]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[15]_inst_i_8 - (.I0(g3_b7__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b7__2_n_0), - .O(\RD_OBUF[15]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[15]_inst_i_9 - (.I0(g1_b7__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b7__2_n_0), - .O(\RD_OBUF[15]_inst_i_9_n_0 )); - OBUF \RD_OBUF[16]_inst - (.I(RD_OBUF[16]), - .O(RD[16])); - MUXF7 \RD_OBUF[16]_inst_i_1 - (.I0(\RD_OBUF[16]_inst_i_2_n_0 ), - .I1(\RD_OBUF[16]_inst_i_3_n_0 ), - .O(RD_OBUF[16]), - .S(\RD_OBUF[23]_inst_i_2_n_0 )); - MUXF7 \RD_OBUF[16]_inst_i_10 - (.I0(g10_b0__0_n_0), - .I1(g11_b0__0_n_0), - .O(\RD_OBUF[16]_inst_i_10_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[16]_inst_i_11 - (.I0(g8_b0__0_n_0), - .I1(g9_b0__0_n_0), - .O(\RD_OBUF[16]_inst_i_11_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[16]_inst_i_2 - (.I0(\RD_OBUF[16]_inst_i_4_n_0 ), - .I1(\RD_OBUF[16]_inst_i_5_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[16]_inst_i_6_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[16]_inst_i_7_n_0 ), - .O(\RD_OBUF[16]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[16]_inst_i_3 - (.I0(\RD_OBUF[16]_inst_i_8_n_0 ), - .I1(\RD_OBUF[16]_inst_i_9_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[16]_inst_i_10_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[16]_inst_i_11_n_0 ), - .O(\RD_OBUF[16]_inst_i_3_n_0 )); - MUXF7 \RD_OBUF[16]_inst_i_4 - (.I0(g6_b0__0_n_0), - .I1(g7_b0__0_n_0), - .O(\RD_OBUF[16]_inst_i_4_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[16]_inst_i_5 - (.I0(g4_b0__0_n_0), - .I1(g5_b0__0_n_0), - .O(\RD_OBUF[16]_inst_i_5_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[16]_inst_i_6 - (.I0(g2_b0__0_n_0), - .I1(g3_b0__0_n_0), - .O(\RD_OBUF[16]_inst_i_6_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[16]_inst_i_7 - (.I0(g0_b0__0_n_0), - .I1(g1_b0__0_n_0), - .O(\RD_OBUF[16]_inst_i_7_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[16]_inst_i_8 - (.I0(g14_b0__0_n_0), - .I1(g15_b0__0_n_0), - .O(\RD_OBUF[16]_inst_i_8_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[16]_inst_i_9 - (.I0(g12_b0__0_n_0), - .I1(g13_b0__0_n_0), - .O(\RD_OBUF[16]_inst_i_9_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - OBUF \RD_OBUF[17]_inst - (.I(RD_OBUF[17]), - .O(RD[17])); - MUXF7 \RD_OBUF[17]_inst_i_1 - (.I0(\RD_OBUF[17]_inst_i_2_n_0 ), - .I1(\RD_OBUF[17]_inst_i_3_n_0 ), - .O(RD_OBUF[17]), - .S(\RD_OBUF[23]_inst_i_2_n_0 )); - MUXF7 \RD_OBUF[17]_inst_i_10 - (.I0(g10_b1__0_n_0), - .I1(g11_b1__0_n_0), - .O(\RD_OBUF[17]_inst_i_10_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[17]_inst_i_11 - (.I0(g8_b1__0_n_0), - .I1(g9_b1__0_n_0), - .O(\RD_OBUF[17]_inst_i_11_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[17]_inst_i_2 - (.I0(\RD_OBUF[17]_inst_i_4_n_0 ), - .I1(\RD_OBUF[17]_inst_i_5_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[17]_inst_i_6_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[17]_inst_i_7_n_0 ), - .O(\RD_OBUF[17]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[17]_inst_i_3 - (.I0(\RD_OBUF[17]_inst_i_8_n_0 ), - .I1(\RD_OBUF[17]_inst_i_9_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[17]_inst_i_10_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[17]_inst_i_11_n_0 ), - .O(\RD_OBUF[17]_inst_i_3_n_0 )); - MUXF7 \RD_OBUF[17]_inst_i_4 - (.I0(g6_b1__0_n_0), - .I1(g7_b1__0_n_0), - .O(\RD_OBUF[17]_inst_i_4_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[17]_inst_i_5 - (.I0(g4_b1__0_n_0), - .I1(g5_b1__0_n_0), - .O(\RD_OBUF[17]_inst_i_5_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[17]_inst_i_6 - (.I0(g2_b1__0_n_0), - .I1(g3_b1__0_n_0), - .O(\RD_OBUF[17]_inst_i_6_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[17]_inst_i_7 - (.I0(g0_b1__0_n_0), - .I1(g1_b1__0_n_0), - .O(\RD_OBUF[17]_inst_i_7_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[17]_inst_i_8 - (.I0(g14_b1__0_n_0), - .I1(g15_b1__0_n_0), - .O(\RD_OBUF[17]_inst_i_8_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[17]_inst_i_9 - (.I0(g12_b1__0_n_0), - .I1(g13_b1__0_n_0), - .O(\RD_OBUF[17]_inst_i_9_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - OBUF \RD_OBUF[18]_inst - (.I(RD_OBUF[18]), - .O(RD[18])); - MUXF7 \RD_OBUF[18]_inst_i_1 - (.I0(\RD_OBUF[18]_inst_i_2_n_0 ), - .I1(\RD_OBUF[18]_inst_i_3_n_0 ), - .O(RD_OBUF[18]), - .S(\RD_OBUF[23]_inst_i_2_n_0 )); - MUXF7 \RD_OBUF[18]_inst_i_10 - (.I0(g10_b2__0_n_0), - .I1(g11_b2__0_n_0), - .O(\RD_OBUF[18]_inst_i_10_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[18]_inst_i_11 - (.I0(g8_b2__0_n_0), - .I1(g9_b2__0_n_0), - .O(\RD_OBUF[18]_inst_i_11_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[18]_inst_i_2 - (.I0(\RD_OBUF[18]_inst_i_4_n_0 ), - .I1(\RD_OBUF[18]_inst_i_5_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[18]_inst_i_6_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[18]_inst_i_7_n_0 ), - .O(\RD_OBUF[18]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[18]_inst_i_3 - (.I0(\RD_OBUF[18]_inst_i_8_n_0 ), - .I1(\RD_OBUF[18]_inst_i_9_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[18]_inst_i_10_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[18]_inst_i_11_n_0 ), - .O(\RD_OBUF[18]_inst_i_3_n_0 )); - MUXF7 \RD_OBUF[18]_inst_i_4 - (.I0(g6_b2__0_n_0), - .I1(g7_b2__0_n_0), - .O(\RD_OBUF[18]_inst_i_4_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[18]_inst_i_5 - (.I0(g4_b2__0_n_0), - .I1(g5_b2__0_n_0), - .O(\RD_OBUF[18]_inst_i_5_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[18]_inst_i_6 - (.I0(g2_b2__0_n_0), - .I1(g3_b2__0_n_0), - .O(\RD_OBUF[18]_inst_i_6_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[18]_inst_i_7 - (.I0(g0_b2__0_n_0), - .I1(g1_b2__0_n_0), - .O(\RD_OBUF[18]_inst_i_7_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[18]_inst_i_8 - (.I0(g14_b2__0_n_0), - .I1(g15_b2__0_n_0), - .O(\RD_OBUF[18]_inst_i_8_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[18]_inst_i_9 - (.I0(g12_b2__0_n_0), - .I1(g13_b2__0_n_0), - .O(\RD_OBUF[18]_inst_i_9_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - OBUF \RD_OBUF[19]_inst - (.I(RD_OBUF[19]), - .O(RD[19])); - MUXF7 \RD_OBUF[19]_inst_i_1 - (.I0(\RD_OBUF[19]_inst_i_2_n_0 ), - .I1(\RD_OBUF[19]_inst_i_3_n_0 ), - .O(RD_OBUF[19]), - .S(\RD_OBUF[23]_inst_i_2_n_0 )); - MUXF7 \RD_OBUF[19]_inst_i_10 - (.I0(g10_b3__0_n_0), - .I1(g11_b3__0_n_0), - .O(\RD_OBUF[19]_inst_i_10_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[19]_inst_i_11 - (.I0(g8_b3__0_n_0), - .I1(g9_b3__0_n_0), - .O(\RD_OBUF[19]_inst_i_11_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[19]_inst_i_2 - (.I0(\RD_OBUF[19]_inst_i_4_n_0 ), - .I1(\RD_OBUF[19]_inst_i_5_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[19]_inst_i_6_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[19]_inst_i_7_n_0 ), - .O(\RD_OBUF[19]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[19]_inst_i_3 - (.I0(\RD_OBUF[19]_inst_i_8_n_0 ), - .I1(\RD_OBUF[19]_inst_i_9_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[19]_inst_i_10_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[19]_inst_i_11_n_0 ), - .O(\RD_OBUF[19]_inst_i_3_n_0 )); - MUXF7 \RD_OBUF[19]_inst_i_4 - (.I0(g6_b3__0_n_0), - .I1(g7_b3__0_n_0), - .O(\RD_OBUF[19]_inst_i_4_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[19]_inst_i_5 - (.I0(g4_b3__0_n_0), - .I1(g5_b3__0_n_0), - .O(\RD_OBUF[19]_inst_i_5_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[19]_inst_i_6 - (.I0(g2_b3__0_n_0), - .I1(g3_b3__0_n_0), - .O(\RD_OBUF[19]_inst_i_6_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[19]_inst_i_7 - (.I0(g0_b3__0_n_0), - .I1(g1_b3__0_n_0), - .O(\RD_OBUF[19]_inst_i_7_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[19]_inst_i_8 - (.I0(g14_b3__0_n_0), - .I1(g15_b3__0_n_0), - .O(\RD_OBUF[19]_inst_i_8_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[19]_inst_i_9 - (.I0(g12_b3__0_n_0), - .I1(g13_b3__0_n_0), - .O(\RD_OBUF[19]_inst_i_9_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - OBUF \RD_OBUF[1]_inst - (.I(RD_OBUF[1]), - .O(RD[1])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[1]_inst_i_1 - (.I0(\RD_OBUF[1]_inst_i_2_n_0 ), - .I1(\RD_OBUF[1]_inst_i_3_n_0 ), - .I2(A_IBUF[9]), - .I3(\RD_OBUF[1]_inst_i_4_n_0 ), - .I4(A_IBUF[8]), - .I5(\RD_OBUF[1]_inst_i_5_n_0 ), - .O(RD_OBUF[1])); - MUXF7 \RD_OBUF[1]_inst_i_10 - (.I0(g4_b1_n_0), - .I1(g5_b1_n_0), - .O(\RD_OBUF[1]_inst_i_10_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[1]_inst_i_11 - (.I0(g6_b1_n_0), - .I1(g7_b1_n_0), - .O(\RD_OBUF[1]_inst_i_11_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[1]_inst_i_12 - (.I0(g0_b1_n_0), - .I1(g1_b1_n_0), - .O(\RD_OBUF[1]_inst_i_12_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[1]_inst_i_13 - (.I0(g2_b1_n_0), - .I1(g3_b1_n_0), - .O(\RD_OBUF[1]_inst_i_13_n_0 ), - .S(A_IBUF[6])); - MUXF8 \RD_OBUF[1]_inst_i_2 - (.I0(\RD_OBUF[1]_inst_i_6_n_0 ), - .I1(\RD_OBUF[1]_inst_i_7_n_0 ), - .O(\RD_OBUF[1]_inst_i_2_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[1]_inst_i_3 - (.I0(\RD_OBUF[1]_inst_i_8_n_0 ), - .I1(\RD_OBUF[1]_inst_i_9_n_0 ), - .O(\RD_OBUF[1]_inst_i_3_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[1]_inst_i_4 - (.I0(\RD_OBUF[1]_inst_i_10_n_0 ), - .I1(\RD_OBUF[1]_inst_i_11_n_0 ), - .O(\RD_OBUF[1]_inst_i_4_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[1]_inst_i_5 - (.I0(\RD_OBUF[1]_inst_i_12_n_0 ), - .I1(\RD_OBUF[1]_inst_i_13_n_0 ), - .O(\RD_OBUF[1]_inst_i_5_n_0 ), - .S(A_IBUF[7])); - MUXF7 \RD_OBUF[1]_inst_i_6 - (.I0(g12_b1_n_0), - .I1(g13_b1_n_0), - .O(\RD_OBUF[1]_inst_i_6_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[1]_inst_i_7 - (.I0(g14_b1_n_0), - .I1(g15_b1_n_0), - .O(\RD_OBUF[1]_inst_i_7_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[1]_inst_i_8 - (.I0(g8_b1_n_0), - .I1(g9_b1_n_0), - .O(\RD_OBUF[1]_inst_i_8_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[1]_inst_i_9 - (.I0(g10_b1_n_0), - .I1(g11_b1_n_0), - .O(\RD_OBUF[1]_inst_i_9_n_0 ), - .S(A_IBUF[6])); - OBUF \RD_OBUF[20]_inst - (.I(RD_OBUF[20]), - .O(RD[20])); - MUXF7 \RD_OBUF[20]_inst_i_1 - (.I0(\RD_OBUF[20]_inst_i_2_n_0 ), - .I1(\RD_OBUF[20]_inst_i_3_n_0 ), - .O(RD_OBUF[20]), - .S(\RD_OBUF[23]_inst_i_2_n_0 )); - MUXF7 \RD_OBUF[20]_inst_i_10 - (.I0(g10_b4__0_n_0), - .I1(g11_b4__0_n_0), - .O(\RD_OBUF[20]_inst_i_10_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[20]_inst_i_11 - (.I0(g8_b4__0_n_0), - .I1(g9_b4__0_n_0), - .O(\RD_OBUF[20]_inst_i_11_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[20]_inst_i_2 - (.I0(\RD_OBUF[20]_inst_i_4_n_0 ), - .I1(\RD_OBUF[20]_inst_i_5_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[20]_inst_i_6_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[20]_inst_i_7_n_0 ), - .O(\RD_OBUF[20]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[20]_inst_i_3 - (.I0(\RD_OBUF[20]_inst_i_8_n_0 ), - .I1(\RD_OBUF[20]_inst_i_9_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[20]_inst_i_10_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[20]_inst_i_11_n_0 ), - .O(\RD_OBUF[20]_inst_i_3_n_0 )); - MUXF7 \RD_OBUF[20]_inst_i_4 - (.I0(g6_b4__0_n_0), - .I1(g7_b4__0_n_0), - .O(\RD_OBUF[20]_inst_i_4_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[20]_inst_i_5 - (.I0(g4_b4__0_n_0), - .I1(g5_b4__0_n_0), - .O(\RD_OBUF[20]_inst_i_5_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[20]_inst_i_6 - (.I0(g2_b4__0_n_0), - .I1(g3_b4__0_n_0), - .O(\RD_OBUF[20]_inst_i_6_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[20]_inst_i_7 - (.I0(g0_b4__0_n_0), - .I1(g1_b4__0_n_0), - .O(\RD_OBUF[20]_inst_i_7_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[20]_inst_i_8 - (.I0(g14_b4__0_n_0), - .I1(g15_b4__0_n_0), - .O(\RD_OBUF[20]_inst_i_8_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[20]_inst_i_9 - (.I0(g12_b4__0_n_0), - .I1(g13_b4__0_n_0), - .O(\RD_OBUF[20]_inst_i_9_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - OBUF \RD_OBUF[21]_inst - (.I(RD_OBUF[21]), - .O(RD[21])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[21]_inst_i_1 - (.I0(\RD_OBUF[21]_inst_i_2_n_0 ), - .I1(\RD_OBUF[21]_inst_i_3_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[21]_inst_i_5_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[21]_inst_i_7_n_0 ), - .O(RD_OBUF[21])); - MUXF7 \RD_OBUF[21]_inst_i_2 - (.I0(g6_b5__0_n_0), - .I1(g7_b5__0_n_0), - .O(\RD_OBUF[21]_inst_i_2_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[21]_inst_i_3 - (.I0(g4_b5__0_n_0), - .I1(g5_b5__0_n_0), - .O(\RD_OBUF[21]_inst_i_3_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - (* SOFT_HLUTNM = "soft_lutpair3" *) - LUT3 #( - .INIT(8'h78)) - \RD_OBUF[21]_inst_i_4 - (.I0(\RD_OBUF[23]_inst_i_5_n_0 ), - .I1(A_IBUF[7]), - .I2(A_IBUF[8]), - .O(\RD_OBUF[21]_inst_i_4_n_0 )); - MUXF7 \RD_OBUF[21]_inst_i_5 - (.I0(g2_b5__0_n_0), - .I1(g3_b5__0_n_0), - .O(\RD_OBUF[21]_inst_i_5_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - (* SOFT_HLUTNM = "soft_lutpair3" *) - LUT2 #( - .INIT(4'h6)) - \RD_OBUF[21]_inst_i_6 - (.I0(\RD_OBUF[23]_inst_i_5_n_0 ), - .I1(A_IBUF[7]), - .O(\RD_OBUF[21]_inst_i_6_n_0 )); - MUXF7 \RD_OBUF[21]_inst_i_7 - (.I0(g0_b5__0_n_0), - .I1(g1_b5__0_n_0), - .O(\RD_OBUF[21]_inst_i_7_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - LUT6 #( - .INIT(64'h7FFFFFFF80000000)) - \RD_OBUF[21]_inst_i_8 - (.I0(A_IBUF[4]), - .I1(A_IBUF[2]), - .I2(A_IBUF[1]), - .I3(A_IBUF[3]), - .I4(A_IBUF[5]), - .I5(A_IBUF[6]), - .O(\RD_OBUF[21]_inst_i_8_n_0 )); - OBUF \RD_OBUF[22]_inst - (.I(RD_OBUF[22]), - .O(RD[22])); - MUXF7 \RD_OBUF[22]_inst_i_1 - (.I0(\RD_OBUF[22]_inst_i_2_n_0 ), - .I1(\RD_OBUF[22]_inst_i_3_n_0 ), - .O(RD_OBUF[22]), - .S(\RD_OBUF[23]_inst_i_2_n_0 )); - MUXF7 \RD_OBUF[22]_inst_i_10 - (.I0(g10_b6__0_n_0), - .I1(g11_b6__0_n_0), - .O(\RD_OBUF[22]_inst_i_10_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[22]_inst_i_11 - (.I0(g8_b6__0_n_0), - .I1(g9_b6__0_n_0), - .O(\RD_OBUF[22]_inst_i_11_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[22]_inst_i_2 - (.I0(\RD_OBUF[22]_inst_i_4_n_0 ), - .I1(\RD_OBUF[22]_inst_i_5_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[22]_inst_i_6_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[22]_inst_i_7_n_0 ), - .O(\RD_OBUF[22]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[22]_inst_i_3 - (.I0(\RD_OBUF[22]_inst_i_8_n_0 ), - .I1(\RD_OBUF[22]_inst_i_9_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[22]_inst_i_10_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[22]_inst_i_11_n_0 ), - .O(\RD_OBUF[22]_inst_i_3_n_0 )); - MUXF7 \RD_OBUF[22]_inst_i_4 - (.I0(g6_b6__0_n_0), - .I1(g7_b6__0_n_0), - .O(\RD_OBUF[22]_inst_i_4_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[22]_inst_i_5 - (.I0(g4_b6__0_n_0), - .I1(g5_b6__0_n_0), - .O(\RD_OBUF[22]_inst_i_5_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[22]_inst_i_6 - (.I0(g2_b6__0_n_0), - .I1(g3_b6__0_n_0), - .O(\RD_OBUF[22]_inst_i_6_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[22]_inst_i_7 - (.I0(g0_b6__0_n_0), - .I1(g1_b6__0_n_0), - .O(\RD_OBUF[22]_inst_i_7_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[22]_inst_i_8 - (.I0(g14_b6__0_n_0), - .I1(g15_b6__0_n_0), - .O(\RD_OBUF[22]_inst_i_8_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[22]_inst_i_9 - (.I0(g12_b6__0_n_0), - .I1(g13_b6__0_n_0), - .O(\RD_OBUF[22]_inst_i_9_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - OBUF \RD_OBUF[23]_inst - (.I(RD_OBUF[23]), - .O(RD[23])); - MUXF7 \RD_OBUF[23]_inst_i_1 - (.I0(\RD_OBUF[23]_inst_i_3_n_0 ), - .I1(\RD_OBUF[23]_inst_i_4_n_0 ), - .O(RD_OBUF[23]), - .S(\RD_OBUF[23]_inst_i_2_n_0 )); - MUXF7 \RD_OBUF[23]_inst_i_10 - (.I0(g14_b7__0_n_0), - .I1(g15_b7__0_n_0), - .O(\RD_OBUF[23]_inst_i_10_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[23]_inst_i_11 - (.I0(g12_b7__0_n_0), - .I1(g13_b7__0_n_0), - .O(\RD_OBUF[23]_inst_i_11_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[23]_inst_i_12 - (.I0(g10_b7__0_n_0), - .I1(g11_b7__0_n_0), - .O(\RD_OBUF[23]_inst_i_12_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[23]_inst_i_13 - (.I0(g8_b7__0_n_0), - .I1(g9_b7__0_n_0), - .O(\RD_OBUF[23]_inst_i_13_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'h7F80)) - \RD_OBUF[23]_inst_i_2 - (.I0(A_IBUF[7]), - .I1(\RD_OBUF[23]_inst_i_5_n_0 ), - .I2(A_IBUF[8]), - .I3(A_IBUF[9]), - .O(\RD_OBUF[23]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[23]_inst_i_3 - (.I0(\RD_OBUF[23]_inst_i_6_n_0 ), - .I1(\RD_OBUF[23]_inst_i_7_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[23]_inst_i_8_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[23]_inst_i_9_n_0 ), - .O(\RD_OBUF[23]_inst_i_3_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[23]_inst_i_4 - (.I0(\RD_OBUF[23]_inst_i_10_n_0 ), - .I1(\RD_OBUF[23]_inst_i_11_n_0 ), - .I2(\RD_OBUF[21]_inst_i_4_n_0 ), - .I3(\RD_OBUF[23]_inst_i_12_n_0 ), - .I4(\RD_OBUF[21]_inst_i_6_n_0 ), - .I5(\RD_OBUF[23]_inst_i_13_n_0 ), - .O(\RD_OBUF[23]_inst_i_4_n_0 )); - LUT6 #( - .INIT(64'h8000000000000000)) - \RD_OBUF[23]_inst_i_5 - (.I0(A_IBUF[6]), - .I1(A_IBUF[4]), - .I2(A_IBUF[2]), - .I3(A_IBUF[1]), - .I4(A_IBUF[3]), - .I5(A_IBUF[5]), - .O(\RD_OBUF[23]_inst_i_5_n_0 )); - MUXF7 \RD_OBUF[23]_inst_i_6 - (.I0(g6_b7__0_n_0), - .I1(g7_b7__0_n_0), - .O(\RD_OBUF[23]_inst_i_6_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[23]_inst_i_7 - (.I0(g4_b7__0_n_0), - .I1(g5_b7__0_n_0), - .O(\RD_OBUF[23]_inst_i_7_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[23]_inst_i_8 - (.I0(g2_b7__0_n_0), - .I1(g3_b7__0_n_0), - .O(\RD_OBUF[23]_inst_i_8_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - MUXF7 \RD_OBUF[23]_inst_i_9 - (.I0(g0_b7__0_n_0), - .I1(g1_b7__0_n_0), - .O(\RD_OBUF[23]_inst_i_9_n_0 ), - .S(\RD_OBUF[21]_inst_i_8_n_0 )); - OBUF \RD_OBUF[24]_inst - (.I(RD_OBUF[24]), - .O(RD[24])); - MUXF7 \RD_OBUF[24]_inst_i_1 - (.I0(\RD_OBUF[24]_inst_i_2_n_0 ), - .I1(\RD_OBUF[24]_inst_i_3_n_0 ), - .O(RD_OBUF[24]), - .S(sel[9])); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[24]_inst_i_10 - (.I0(g11_b0__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b0__1_n_0), - .O(\RD_OBUF[24]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[24]_inst_i_11 - (.I0(g9_b0__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b0__1_n_0), - .O(\RD_OBUF[24]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[24]_inst_i_2 - (.I0(\RD_OBUF[24]_inst_i_4_n_0 ), - .I1(\RD_OBUF[24]_inst_i_5_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[24]_inst_i_6_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[24]_inst_i_7_n_0 ), - .O(\RD_OBUF[24]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[24]_inst_i_3 - (.I0(\RD_OBUF[24]_inst_i_8_n_0 ), - .I1(\RD_OBUF[24]_inst_i_9_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[24]_inst_i_10_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[24]_inst_i_11_n_0 ), - .O(\RD_OBUF[24]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[24]_inst_i_4 - (.I0(g7_b0__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b0__1_n_0), - .O(\RD_OBUF[24]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[24]_inst_i_5 - (.I0(g5_b0__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b0__1_n_0), - .O(\RD_OBUF[24]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[24]_inst_i_6 - (.I0(g3_b0__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b0__1_n_0), - .O(\RD_OBUF[24]_inst_i_6_n_0 )); - (* SOFT_HLUTNM = "soft_lutpair1" *) - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[24]_inst_i_7 - (.I0(g1_b0__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b0__1_n_0), - .O(\RD_OBUF[24]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[24]_inst_i_8 - (.I0(g15_b0__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b0__1_n_0), - .O(\RD_OBUF[24]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[24]_inst_i_9 - (.I0(g13_b0__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b0__1_n_0), - .O(\RD_OBUF[24]_inst_i_9_n_0 )); - OBUF \RD_OBUF[25]_inst - (.I(RD_OBUF[25]), - .O(RD[25])); - MUXF7 \RD_OBUF[25]_inst_i_1 - (.I0(\RD_OBUF[25]_inst_i_2_n_0 ), - .I1(\RD_OBUF[25]_inst_i_3_n_0 ), - .O(RD_OBUF[25]), - .S(sel[9])); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[25]_inst_i_10 - (.I0(g11_b1__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b1__1_n_0), - .O(\RD_OBUF[25]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[25]_inst_i_11 - (.I0(g9_b1__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b1__1_n_0), - .O(\RD_OBUF[25]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[25]_inst_i_2 - (.I0(\RD_OBUF[25]_inst_i_4_n_0 ), - .I1(\RD_OBUF[25]_inst_i_5_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[25]_inst_i_6_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[25]_inst_i_7_n_0 ), - .O(\RD_OBUF[25]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[25]_inst_i_3 - (.I0(\RD_OBUF[25]_inst_i_8_n_0 ), - .I1(\RD_OBUF[25]_inst_i_9_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[25]_inst_i_10_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[25]_inst_i_11_n_0 ), - .O(\RD_OBUF[25]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[25]_inst_i_4 - (.I0(g7_b1__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b1__1_n_0), - .O(\RD_OBUF[25]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[25]_inst_i_5 - (.I0(g5_b1__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b1__1_n_0), - .O(\RD_OBUF[25]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[25]_inst_i_6 - (.I0(g3_b1__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b1__1_n_0), - .O(\RD_OBUF[25]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[25]_inst_i_7 - (.I0(g1_b1__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b1__1_n_0), - .O(\RD_OBUF[25]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[25]_inst_i_8 - (.I0(g15_b1__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b1__1_n_0), - .O(\RD_OBUF[25]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[25]_inst_i_9 - (.I0(g13_b1__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b1__1_n_0), - .O(\RD_OBUF[25]_inst_i_9_n_0 )); - OBUF \RD_OBUF[26]_inst - (.I(RD_OBUF[26]), - .O(RD[26])); - MUXF7 \RD_OBUF[26]_inst_i_1 - (.I0(\RD_OBUF[26]_inst_i_2_n_0 ), - .I1(\RD_OBUF[26]_inst_i_3_n_0 ), - .O(RD_OBUF[26]), - .S(sel[9])); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[26]_inst_i_10 - (.I0(g11_b2__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b2__1_n_0), - .O(\RD_OBUF[26]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[26]_inst_i_11 - (.I0(g9_b2__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b2__1_n_0), - .O(\RD_OBUF[26]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[26]_inst_i_2 - (.I0(\RD_OBUF[26]_inst_i_4_n_0 ), - .I1(\RD_OBUF[26]_inst_i_5_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[26]_inst_i_6_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[26]_inst_i_7_n_0 ), - .O(\RD_OBUF[26]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[26]_inst_i_3 - (.I0(\RD_OBUF[26]_inst_i_8_n_0 ), - .I1(\RD_OBUF[26]_inst_i_9_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[26]_inst_i_10_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[26]_inst_i_11_n_0 ), - .O(\RD_OBUF[26]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[26]_inst_i_4 - (.I0(g7_b2__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b2__1_n_0), - .O(\RD_OBUF[26]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[26]_inst_i_5 - (.I0(g5_b2__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b2__1_n_0), - .O(\RD_OBUF[26]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[26]_inst_i_6 - (.I0(g3_b2__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b2__1_n_0), - .O(\RD_OBUF[26]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[26]_inst_i_7 - (.I0(g1_b2__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b2__1_n_0), - .O(\RD_OBUF[26]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[26]_inst_i_8 - (.I0(g15_b2__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b2__1_n_0), - .O(\RD_OBUF[26]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[26]_inst_i_9 - (.I0(g13_b2__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b2__1_n_0), - .O(\RD_OBUF[26]_inst_i_9_n_0 )); - OBUF \RD_OBUF[27]_inst - (.I(RD_OBUF[27]), - .O(RD[27])); - MUXF7 \RD_OBUF[27]_inst_i_1 - (.I0(\RD_OBUF[27]_inst_i_2_n_0 ), - .I1(\RD_OBUF[27]_inst_i_3_n_0 ), - .O(RD_OBUF[27]), - .S(sel[9])); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[27]_inst_i_10 - (.I0(g11_b3__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b3__1_n_0), - .O(\RD_OBUF[27]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[27]_inst_i_11 - (.I0(g9_b3__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b3__1_n_0), - .O(\RD_OBUF[27]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[27]_inst_i_2 - (.I0(\RD_OBUF[27]_inst_i_4_n_0 ), - .I1(\RD_OBUF[27]_inst_i_5_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[27]_inst_i_6_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[27]_inst_i_7_n_0 ), - .O(\RD_OBUF[27]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[27]_inst_i_3 - (.I0(\RD_OBUF[27]_inst_i_8_n_0 ), - .I1(\RD_OBUF[27]_inst_i_9_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[27]_inst_i_10_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[27]_inst_i_11_n_0 ), - .O(\RD_OBUF[27]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[27]_inst_i_4 - (.I0(g7_b3__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b3__1_n_0), - .O(\RD_OBUF[27]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[27]_inst_i_5 - (.I0(g5_b3__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b3__1_n_0), - .O(\RD_OBUF[27]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[27]_inst_i_6 - (.I0(g3_b3__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b3__1_n_0), - .O(\RD_OBUF[27]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[27]_inst_i_7 - (.I0(g1_b3__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b3__1_n_0), - .O(\RD_OBUF[27]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[27]_inst_i_8 - (.I0(g15_b3__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b3__1_n_0), - .O(\RD_OBUF[27]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[27]_inst_i_9 - (.I0(g13_b3__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b3__1_n_0), - .O(\RD_OBUF[27]_inst_i_9_n_0 )); - OBUF \RD_OBUF[28]_inst - (.I(RD_OBUF[28]), - .O(RD[28])); - MUXF7 \RD_OBUF[28]_inst_i_1 - (.I0(\RD_OBUF[28]_inst_i_2_n_0 ), - .I1(\RD_OBUF[28]_inst_i_3_n_0 ), - .O(RD_OBUF[28]), - .S(sel[9])); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[28]_inst_i_10 - (.I0(g11_b4__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b4__1_n_0), - .O(\RD_OBUF[28]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[28]_inst_i_11 - (.I0(g9_b4__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b4__1_n_0), - .O(\RD_OBUF[28]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[28]_inst_i_2 - (.I0(\RD_OBUF[28]_inst_i_4_n_0 ), - .I1(\RD_OBUF[28]_inst_i_5_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[28]_inst_i_6_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[28]_inst_i_7_n_0 ), - .O(\RD_OBUF[28]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[28]_inst_i_3 - (.I0(\RD_OBUF[28]_inst_i_8_n_0 ), - .I1(\RD_OBUF[28]_inst_i_9_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[28]_inst_i_10_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[28]_inst_i_11_n_0 ), - .O(\RD_OBUF[28]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[28]_inst_i_4 - (.I0(g7_b4__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b4__1_n_0), - .O(\RD_OBUF[28]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[28]_inst_i_5 - (.I0(g5_b4__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b4__1_n_0), - .O(\RD_OBUF[28]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[28]_inst_i_6 - (.I0(g3_b4__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b4__1_n_0), - .O(\RD_OBUF[28]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[28]_inst_i_7 - (.I0(g1_b4__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b4__1_n_0), - .O(\RD_OBUF[28]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[28]_inst_i_8 - (.I0(g15_b4__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b4__1_n_0), - .O(\RD_OBUF[28]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[28]_inst_i_9 - (.I0(g13_b4__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b4__1_n_0), - .O(\RD_OBUF[28]_inst_i_9_n_0 )); - OBUF \RD_OBUF[29]_inst - (.I(RD_OBUF[29]), - .O(RD[29])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[29]_inst_i_1 - (.I0(\RD_OBUF[29]_inst_i_2_n_0 ), - .I1(\RD_OBUF[29]_inst_i_3_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[29]_inst_i_5_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[29]_inst_i_7_n_0 ), - .O(RD_OBUF[29])); - MUXF7 \RD_OBUF[29]_inst_i_2 - (.I0(g6_b5__1_n_0), - .I1(g7_b5__1_n_0), - .O(\RD_OBUF[29]_inst_i_2_n_0 ), - .S(sel[6])); - MUXF7 \RD_OBUF[29]_inst_i_3 - (.I0(g4_b5__1_n_0), - .I1(g5_b5__1_n_0), - .O(\RD_OBUF[29]_inst_i_3_n_0 ), - .S(sel[6])); - (* SOFT_HLUTNM = "soft_lutpair2" *) - LUT4 #( - .INIT(16'h7F80)) - \RD_OBUF[29]_inst_i_4 - (.I0(A_IBUF[6]), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[7]), - .I3(A_IBUF[8]), - .O(sel[8])); - MUXF7 \RD_OBUF[29]_inst_i_5 - (.I0(g2_b5__1_n_0), - .I1(g3_b5__1_n_0), - .O(\RD_OBUF[29]_inst_i_5_n_0 ), - .S(sel[6])); - (* SOFT_HLUTNM = "soft_lutpair1" *) - LUT3 #( - .INIT(8'h78)) - \RD_OBUF[29]_inst_i_6 - (.I0(\RD_OBUF[31]_inst_i_5_n_0 ), - .I1(A_IBUF[6]), - .I2(A_IBUF[7]), - .O(sel[7])); - MUXF7 \RD_OBUF[29]_inst_i_7 - (.I0(g0_b5__1_n_0), - .I1(g1_b5__1_n_0), - .O(\RD_OBUF[29]_inst_i_7_n_0 ), - .S(sel[6])); - LUT2 #( - .INIT(4'h6)) - \RD_OBUF[29]_inst_i_8 - (.I0(\RD_OBUF[31]_inst_i_5_n_0 ), - .I1(A_IBUF[6]), - .O(sel[6])); - OBUF \RD_OBUF[2]_inst - (.I(RD_OBUF[2]), - .O(RD[2])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[2]_inst_i_1 - (.I0(\RD_OBUF[2]_inst_i_2_n_0 ), - .I1(\RD_OBUF[2]_inst_i_3_n_0 ), - .I2(A_IBUF[9]), - .I3(\RD_OBUF[2]_inst_i_4_n_0 ), - .I4(A_IBUF[8]), - .I5(\RD_OBUF[2]_inst_i_5_n_0 ), - .O(RD_OBUF[2])); - MUXF7 \RD_OBUF[2]_inst_i_10 - (.I0(g4_b2_n_0), - .I1(g5_b2_n_0), - .O(\RD_OBUF[2]_inst_i_10_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[2]_inst_i_11 - (.I0(g6_b2_n_0), - .I1(g7_b2_n_0), - .O(\RD_OBUF[2]_inst_i_11_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[2]_inst_i_12 - (.I0(g0_b2_n_0), - .I1(g1_b2_n_0), - .O(\RD_OBUF[2]_inst_i_12_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[2]_inst_i_13 - (.I0(g2_b2_n_0), - .I1(g3_b2_n_0), - .O(\RD_OBUF[2]_inst_i_13_n_0 ), - .S(A_IBUF[6])); - MUXF8 \RD_OBUF[2]_inst_i_2 - (.I0(\RD_OBUF[2]_inst_i_6_n_0 ), - .I1(\RD_OBUF[2]_inst_i_7_n_0 ), - .O(\RD_OBUF[2]_inst_i_2_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[2]_inst_i_3 - (.I0(\RD_OBUF[2]_inst_i_8_n_0 ), - .I1(\RD_OBUF[2]_inst_i_9_n_0 ), - .O(\RD_OBUF[2]_inst_i_3_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[2]_inst_i_4 - (.I0(\RD_OBUF[2]_inst_i_10_n_0 ), - .I1(\RD_OBUF[2]_inst_i_11_n_0 ), - .O(\RD_OBUF[2]_inst_i_4_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[2]_inst_i_5 - (.I0(\RD_OBUF[2]_inst_i_12_n_0 ), - .I1(\RD_OBUF[2]_inst_i_13_n_0 ), - .O(\RD_OBUF[2]_inst_i_5_n_0 ), - .S(A_IBUF[7])); - MUXF7 \RD_OBUF[2]_inst_i_6 - (.I0(g12_b2_n_0), - .I1(g13_b2_n_0), - .O(\RD_OBUF[2]_inst_i_6_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[2]_inst_i_7 - (.I0(g14_b2_n_0), - .I1(g15_b2_n_0), - .O(\RD_OBUF[2]_inst_i_7_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[2]_inst_i_8 - (.I0(g8_b2_n_0), - .I1(g9_b2_n_0), - .O(\RD_OBUF[2]_inst_i_8_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[2]_inst_i_9 - (.I0(g10_b2_n_0), - .I1(g11_b2_n_0), - .O(\RD_OBUF[2]_inst_i_9_n_0 ), - .S(A_IBUF[6])); - OBUF \RD_OBUF[30]_inst - (.I(RD_OBUF[30]), - .O(RD[30])); - MUXF7 \RD_OBUF[30]_inst_i_1 - (.I0(\RD_OBUF[30]_inst_i_2_n_0 ), - .I1(\RD_OBUF[30]_inst_i_3_n_0 ), - .O(RD_OBUF[30]), - .S(sel[9])); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[30]_inst_i_10 - (.I0(g11_b6__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b6__1_n_0), - .O(\RD_OBUF[30]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[30]_inst_i_11 - (.I0(g9_b6__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b6__1_n_0), - .O(\RD_OBUF[30]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[30]_inst_i_2 - (.I0(\RD_OBUF[30]_inst_i_4_n_0 ), - .I1(\RD_OBUF[30]_inst_i_5_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[30]_inst_i_6_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[30]_inst_i_7_n_0 ), - .O(\RD_OBUF[30]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[30]_inst_i_3 - (.I0(\RD_OBUF[30]_inst_i_8_n_0 ), - .I1(\RD_OBUF[30]_inst_i_9_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[30]_inst_i_10_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[30]_inst_i_11_n_0 ), - .O(\RD_OBUF[30]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[30]_inst_i_4 - (.I0(g7_b6__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b6__1_n_0), - .O(\RD_OBUF[30]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[30]_inst_i_5 - (.I0(g5_b6__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b6__1_n_0), - .O(\RD_OBUF[30]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[30]_inst_i_6 - (.I0(g3_b6__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b6__1_n_0), - .O(\RD_OBUF[30]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[30]_inst_i_7 - (.I0(g1_b6__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b6__1_n_0), - .O(\RD_OBUF[30]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[30]_inst_i_8 - (.I0(g15_b6__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b6__1_n_0), - .O(\RD_OBUF[30]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[30]_inst_i_9 - (.I0(g13_b6__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b6__1_n_0), - .O(\RD_OBUF[30]_inst_i_9_n_0 )); - OBUF \RD_OBUF[31]_inst - (.I(RD_OBUF[31]), - .O(RD[31])); - MUXF7 \RD_OBUF[31]_inst_i_1 - (.I0(\RD_OBUF[31]_inst_i_3_n_0 ), - .I1(\RD_OBUF[31]_inst_i_4_n_0 ), - .O(RD_OBUF[31]), - .S(sel[9])); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[31]_inst_i_10 - (.I0(g15_b7__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b7__1_n_0), - .O(\RD_OBUF[31]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[31]_inst_i_11 - (.I0(g13_b7__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b7__1_n_0), - .O(\RD_OBUF[31]_inst_i_11_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[31]_inst_i_12 - (.I0(g11_b7__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b7__1_n_0), - .O(\RD_OBUF[31]_inst_i_12_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[31]_inst_i_13 - (.I0(g9_b7__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b7__1_n_0), - .O(\RD_OBUF[31]_inst_i_13_n_0 )); - LUT5 #( - .INIT(32'h7FFF8000)) - \RD_OBUF[31]_inst_i_2 - (.I0(A_IBUF[7]), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(A_IBUF[8]), - .I4(A_IBUF[9]), - .O(sel[9])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[31]_inst_i_3 - (.I0(\RD_OBUF[31]_inst_i_6_n_0 ), - .I1(\RD_OBUF[31]_inst_i_7_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[31]_inst_i_8_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[31]_inst_i_9_n_0 ), - .O(\RD_OBUF[31]_inst_i_3_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[31]_inst_i_4 - (.I0(\RD_OBUF[31]_inst_i_10_n_0 ), - .I1(\RD_OBUF[31]_inst_i_11_n_0 ), - .I2(sel[8]), - .I3(\RD_OBUF[31]_inst_i_12_n_0 ), - .I4(sel[7]), - .I5(\RD_OBUF[31]_inst_i_13_n_0 ), - .O(\RD_OBUF[31]_inst_i_4_n_0 )); - LUT6 #( - .INIT(64'h8880000000000000)) - \RD_OBUF[31]_inst_i_5 - (.I0(A_IBUF[5]), - .I1(A_IBUF[3]), - .I2(A_IBUF[0]), - .I3(A_IBUF[1]), - .I4(A_IBUF[2]), - .I5(A_IBUF[4]), - .O(\RD_OBUF[31]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[31]_inst_i_6 - (.I0(g7_b7__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b7__1_n_0), - .O(\RD_OBUF[31]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[31]_inst_i_7 - (.I0(g5_b7__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b7__1_n_0), - .O(\RD_OBUF[31]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[31]_inst_i_8 - (.I0(g3_b7__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b7__1_n_0), - .O(\RD_OBUF[31]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[31]_inst_i_9 - (.I0(g1_b7__1_n_0), - .I1(\RD_OBUF[31]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b7__1_n_0), - .O(\RD_OBUF[31]_inst_i_9_n_0 )); - OBUF \RD_OBUF[3]_inst - (.I(RD_OBUF[3]), - .O(RD[3])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[3]_inst_i_1 - (.I0(\RD_OBUF[3]_inst_i_2_n_0 ), - .I1(\RD_OBUF[3]_inst_i_3_n_0 ), - .I2(A_IBUF[9]), - .I3(\RD_OBUF[3]_inst_i_4_n_0 ), - .I4(A_IBUF[8]), - .I5(\RD_OBUF[3]_inst_i_5_n_0 ), - .O(RD_OBUF[3])); - MUXF7 \RD_OBUF[3]_inst_i_10 - (.I0(g4_b3_n_0), - .I1(g5_b3_n_0), - .O(\RD_OBUF[3]_inst_i_10_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[3]_inst_i_11 - (.I0(g6_b3_n_0), - .I1(g7_b3_n_0), - .O(\RD_OBUF[3]_inst_i_11_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[3]_inst_i_12 - (.I0(g0_b3_n_0), - .I1(g1_b3_n_0), - .O(\RD_OBUF[3]_inst_i_12_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[3]_inst_i_13 - (.I0(g2_b3_n_0), - .I1(g3_b3_n_0), - .O(\RD_OBUF[3]_inst_i_13_n_0 ), - .S(A_IBUF[6])); - MUXF8 \RD_OBUF[3]_inst_i_2 - (.I0(\RD_OBUF[3]_inst_i_6_n_0 ), - .I1(\RD_OBUF[3]_inst_i_7_n_0 ), - .O(\RD_OBUF[3]_inst_i_2_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[3]_inst_i_3 - (.I0(\RD_OBUF[3]_inst_i_8_n_0 ), - .I1(\RD_OBUF[3]_inst_i_9_n_0 ), - .O(\RD_OBUF[3]_inst_i_3_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[3]_inst_i_4 - (.I0(\RD_OBUF[3]_inst_i_10_n_0 ), - .I1(\RD_OBUF[3]_inst_i_11_n_0 ), - .O(\RD_OBUF[3]_inst_i_4_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[3]_inst_i_5 - (.I0(\RD_OBUF[3]_inst_i_12_n_0 ), - .I1(\RD_OBUF[3]_inst_i_13_n_0 ), - .O(\RD_OBUF[3]_inst_i_5_n_0 ), - .S(A_IBUF[7])); - MUXF7 \RD_OBUF[3]_inst_i_6 - (.I0(g12_b3_n_0), - .I1(g13_b3_n_0), - .O(\RD_OBUF[3]_inst_i_6_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[3]_inst_i_7 - (.I0(g14_b3_n_0), - .I1(g15_b3_n_0), - .O(\RD_OBUF[3]_inst_i_7_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[3]_inst_i_8 - (.I0(g8_b3_n_0), - .I1(g9_b3_n_0), - .O(\RD_OBUF[3]_inst_i_8_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[3]_inst_i_9 - (.I0(g10_b3_n_0), - .I1(g11_b3_n_0), - .O(\RD_OBUF[3]_inst_i_9_n_0 ), - .S(A_IBUF[6])); - OBUF \RD_OBUF[4]_inst - (.I(RD_OBUF[4]), - .O(RD[4])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[4]_inst_i_1 - (.I0(\RD_OBUF[4]_inst_i_2_n_0 ), - .I1(\RD_OBUF[4]_inst_i_3_n_0 ), - .I2(A_IBUF[9]), - .I3(\RD_OBUF[4]_inst_i_4_n_0 ), - .I4(A_IBUF[8]), - .I5(\RD_OBUF[4]_inst_i_5_n_0 ), - .O(RD_OBUF[4])); - MUXF7 \RD_OBUF[4]_inst_i_10 - (.I0(g4_b4_n_0), - .I1(g5_b4_n_0), - .O(\RD_OBUF[4]_inst_i_10_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[4]_inst_i_11 - (.I0(g6_b4_n_0), - .I1(g7_b4_n_0), - .O(\RD_OBUF[4]_inst_i_11_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[4]_inst_i_12 - (.I0(g0_b4_n_0), - .I1(g1_b4_n_0), - .O(\RD_OBUF[4]_inst_i_12_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[4]_inst_i_13 - (.I0(g2_b4_n_0), - .I1(g3_b4_n_0), - .O(\RD_OBUF[4]_inst_i_13_n_0 ), - .S(A_IBUF[6])); - MUXF8 \RD_OBUF[4]_inst_i_2 - (.I0(\RD_OBUF[4]_inst_i_6_n_0 ), - .I1(\RD_OBUF[4]_inst_i_7_n_0 ), - .O(\RD_OBUF[4]_inst_i_2_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[4]_inst_i_3 - (.I0(\RD_OBUF[4]_inst_i_8_n_0 ), - .I1(\RD_OBUF[4]_inst_i_9_n_0 ), - .O(\RD_OBUF[4]_inst_i_3_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[4]_inst_i_4 - (.I0(\RD_OBUF[4]_inst_i_10_n_0 ), - .I1(\RD_OBUF[4]_inst_i_11_n_0 ), - .O(\RD_OBUF[4]_inst_i_4_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[4]_inst_i_5 - (.I0(\RD_OBUF[4]_inst_i_12_n_0 ), - .I1(\RD_OBUF[4]_inst_i_13_n_0 ), - .O(\RD_OBUF[4]_inst_i_5_n_0 ), - .S(A_IBUF[7])); - MUXF7 \RD_OBUF[4]_inst_i_6 - (.I0(g12_b4_n_0), - .I1(g13_b4_n_0), - .O(\RD_OBUF[4]_inst_i_6_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[4]_inst_i_7 - (.I0(g14_b4_n_0), - .I1(g15_b4_n_0), - .O(\RD_OBUF[4]_inst_i_7_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[4]_inst_i_8 - (.I0(g8_b4_n_0), - .I1(g9_b4_n_0), - .O(\RD_OBUF[4]_inst_i_8_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[4]_inst_i_9 - (.I0(g10_b4_n_0), - .I1(g11_b4_n_0), - .O(\RD_OBUF[4]_inst_i_9_n_0 ), - .S(A_IBUF[6])); - OBUF \RD_OBUF[5]_inst - (.I(RD_OBUF[5]), - .O(RD[5])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[5]_inst_i_1 - (.I0(\RD_OBUF[5]_inst_i_2_n_0 ), - .I1(\RD_OBUF[5]_inst_i_3_n_0 ), - .I2(A_IBUF[8]), - .I3(\RD_OBUF[5]_inst_i_4_n_0 ), - .I4(A_IBUF[7]), - .I5(\RD_OBUF[5]_inst_i_5_n_0 ), - .O(RD_OBUF[5])); - MUXF7 \RD_OBUF[5]_inst_i_2 - (.I0(g6_b5_n_0), - .I1(g7_b5_n_0), - .O(\RD_OBUF[5]_inst_i_2_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[5]_inst_i_3 - (.I0(g4_b5_n_0), - .I1(g5_b5_n_0), - .O(\RD_OBUF[5]_inst_i_3_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[5]_inst_i_4 - (.I0(g2_b5_n_0), - .I1(g3_b5_n_0), - .O(\RD_OBUF[5]_inst_i_4_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[5]_inst_i_5 - (.I0(g0_b5_n_0), - .I1(g1_b5_n_0), - .O(\RD_OBUF[5]_inst_i_5_n_0 ), - .S(A_IBUF[6])); - OBUF \RD_OBUF[6]_inst - (.I(RD_OBUF[6]), - .O(RD[6])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[6]_inst_i_1 - (.I0(\RD_OBUF[6]_inst_i_2_n_0 ), - .I1(\RD_OBUF[6]_inst_i_3_n_0 ), - .I2(A_IBUF[9]), - .I3(\RD_OBUF[6]_inst_i_4_n_0 ), - .I4(A_IBUF[8]), - .I5(\RD_OBUF[6]_inst_i_5_n_0 ), - .O(RD_OBUF[6])); - MUXF7 \RD_OBUF[6]_inst_i_10 - (.I0(g4_b6_n_0), - .I1(g5_b6_n_0), - .O(\RD_OBUF[6]_inst_i_10_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[6]_inst_i_11 - (.I0(g6_b6_n_0), - .I1(g7_b6_n_0), - .O(\RD_OBUF[6]_inst_i_11_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[6]_inst_i_12 - (.I0(g0_b6_n_0), - .I1(g1_b6_n_0), - .O(\RD_OBUF[6]_inst_i_12_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[6]_inst_i_13 - (.I0(g2_b6_n_0), - .I1(g3_b6_n_0), - .O(\RD_OBUF[6]_inst_i_13_n_0 ), - .S(A_IBUF[6])); - MUXF8 \RD_OBUF[6]_inst_i_2 - (.I0(\RD_OBUF[6]_inst_i_6_n_0 ), - .I1(\RD_OBUF[6]_inst_i_7_n_0 ), - .O(\RD_OBUF[6]_inst_i_2_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[6]_inst_i_3 - (.I0(\RD_OBUF[6]_inst_i_8_n_0 ), - .I1(\RD_OBUF[6]_inst_i_9_n_0 ), - .O(\RD_OBUF[6]_inst_i_3_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[6]_inst_i_4 - (.I0(\RD_OBUF[6]_inst_i_10_n_0 ), - .I1(\RD_OBUF[6]_inst_i_11_n_0 ), - .O(\RD_OBUF[6]_inst_i_4_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[6]_inst_i_5 - (.I0(\RD_OBUF[6]_inst_i_12_n_0 ), - .I1(\RD_OBUF[6]_inst_i_13_n_0 ), - .O(\RD_OBUF[6]_inst_i_5_n_0 ), - .S(A_IBUF[7])); - MUXF7 \RD_OBUF[6]_inst_i_6 - (.I0(g12_b6_n_0), - .I1(g13_b6_n_0), - .O(\RD_OBUF[6]_inst_i_6_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[6]_inst_i_7 - (.I0(g14_b6_n_0), - .I1(g15_b6_n_0), - .O(\RD_OBUF[6]_inst_i_7_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[6]_inst_i_8 - (.I0(g8_b6_n_0), - .I1(g9_b6_n_0), - .O(\RD_OBUF[6]_inst_i_8_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[6]_inst_i_9 - (.I0(g10_b6_n_0), - .I1(g11_b6_n_0), - .O(\RD_OBUF[6]_inst_i_9_n_0 ), - .S(A_IBUF[6])); - OBUF \RD_OBUF[7]_inst - (.I(RD_OBUF[7]), - .O(RD[7])); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[7]_inst_i_1 - (.I0(\RD_OBUF[7]_inst_i_2_n_0 ), - .I1(\RD_OBUF[7]_inst_i_3_n_0 ), - .I2(A_IBUF[9]), - .I3(\RD_OBUF[7]_inst_i_4_n_0 ), - .I4(A_IBUF[8]), - .I5(\RD_OBUF[7]_inst_i_5_n_0 ), - .O(RD_OBUF[7])); - MUXF7 \RD_OBUF[7]_inst_i_10 - (.I0(g4_b7_n_0), - .I1(g5_b7_n_0), - .O(\RD_OBUF[7]_inst_i_10_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[7]_inst_i_11 - (.I0(g6_b7_n_0), - .I1(g7_b7_n_0), - .O(\RD_OBUF[7]_inst_i_11_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[7]_inst_i_12 - (.I0(g0_b7_n_0), - .I1(g1_b7_n_0), - .O(\RD_OBUF[7]_inst_i_12_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[7]_inst_i_13 - (.I0(g2_b7_n_0), - .I1(g3_b7_n_0), - .O(\RD_OBUF[7]_inst_i_13_n_0 ), - .S(A_IBUF[6])); - MUXF8 \RD_OBUF[7]_inst_i_2 - (.I0(\RD_OBUF[7]_inst_i_6_n_0 ), - .I1(\RD_OBUF[7]_inst_i_7_n_0 ), - .O(\RD_OBUF[7]_inst_i_2_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[7]_inst_i_3 - (.I0(\RD_OBUF[7]_inst_i_8_n_0 ), - .I1(\RD_OBUF[7]_inst_i_9_n_0 ), - .O(\RD_OBUF[7]_inst_i_3_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[7]_inst_i_4 - (.I0(\RD_OBUF[7]_inst_i_10_n_0 ), - .I1(\RD_OBUF[7]_inst_i_11_n_0 ), - .O(\RD_OBUF[7]_inst_i_4_n_0 ), - .S(A_IBUF[7])); - MUXF8 \RD_OBUF[7]_inst_i_5 - (.I0(\RD_OBUF[7]_inst_i_12_n_0 ), - .I1(\RD_OBUF[7]_inst_i_13_n_0 ), - .O(\RD_OBUF[7]_inst_i_5_n_0 ), - .S(A_IBUF[7])); - MUXF7 \RD_OBUF[7]_inst_i_6 - (.I0(g12_b7_n_0), - .I1(g13_b7_n_0), - .O(\RD_OBUF[7]_inst_i_6_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[7]_inst_i_7 - (.I0(g14_b7_n_0), - .I1(g15_b7_n_0), - .O(\RD_OBUF[7]_inst_i_7_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[7]_inst_i_8 - (.I0(g8_b7_n_0), - .I1(g9_b7_n_0), - .O(\RD_OBUF[7]_inst_i_8_n_0 ), - .S(A_IBUF[6])); - MUXF7 \RD_OBUF[7]_inst_i_9 - (.I0(g10_b7_n_0), - .I1(g11_b7_n_0), - .O(\RD_OBUF[7]_inst_i_9_n_0 ), - .S(A_IBUF[6])); - OBUF \RD_OBUF[8]_inst - (.I(RD_OBUF[8]), - .O(RD[8])); - MUXF7 \RD_OBUF[8]_inst_i_1 - (.I0(\RD_OBUF[8]_inst_i_2_n_0 ), - .I1(\RD_OBUF[8]_inst_i_3_n_0 ), - .O(RD_OBUF[8]), - .S(\RD_OBUF[15]_inst_i_2_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[8]_inst_i_10 - (.I0(g11_b0__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b0__2_n_0), - .O(\RD_OBUF[8]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[8]_inst_i_11 - (.I0(g9_b0__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b0__2_n_0), - .O(\RD_OBUF[8]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[8]_inst_i_2 - (.I0(\RD_OBUF[8]_inst_i_4_n_0 ), - .I1(\RD_OBUF[8]_inst_i_5_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[8]_inst_i_6_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[8]_inst_i_7_n_0 ), - .O(\RD_OBUF[8]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[8]_inst_i_3 - (.I0(\RD_OBUF[8]_inst_i_8_n_0 ), - .I1(\RD_OBUF[8]_inst_i_9_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[8]_inst_i_10_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[8]_inst_i_11_n_0 ), - .O(\RD_OBUF[8]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[8]_inst_i_4 - (.I0(g7_b0__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b0__2_n_0), - .O(\RD_OBUF[8]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[8]_inst_i_5 - (.I0(g5_b0__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b0__2_n_0), - .O(\RD_OBUF[8]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[8]_inst_i_6 - (.I0(g3_b0__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b0__2_n_0), - .O(\RD_OBUF[8]_inst_i_6_n_0 )); - (* SOFT_HLUTNM = "soft_lutpair0" *) - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[8]_inst_i_7 - (.I0(g1_b0__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b0__2_n_0), - .O(\RD_OBUF[8]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[8]_inst_i_8 - (.I0(g15_b0__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b0__2_n_0), - .O(\RD_OBUF[8]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[8]_inst_i_9 - (.I0(g13_b0__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b0__2_n_0), - .O(\RD_OBUF[8]_inst_i_9_n_0 )); - OBUF \RD_OBUF[9]_inst - (.I(RD_OBUF[9]), - .O(RD[9])); - MUXF7 \RD_OBUF[9]_inst_i_1 - (.I0(\RD_OBUF[9]_inst_i_2_n_0 ), - .I1(\RD_OBUF[9]_inst_i_3_n_0 ), - .O(RD_OBUF[9]), - .S(\RD_OBUF[15]_inst_i_2_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[9]_inst_i_10 - (.I0(g11_b1__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g10_b1__2_n_0), - .O(\RD_OBUF[9]_inst_i_10_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[9]_inst_i_11 - (.I0(g9_b1__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g8_b1__2_n_0), - .O(\RD_OBUF[9]_inst_i_11_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[9]_inst_i_2 - (.I0(\RD_OBUF[9]_inst_i_4_n_0 ), - .I1(\RD_OBUF[9]_inst_i_5_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[9]_inst_i_6_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[9]_inst_i_7_n_0 ), - .O(\RD_OBUF[9]_inst_i_2_n_0 )); - LUT6 #( - .INIT(64'hAFA0CFCFAFA0C0C0)) - \RD_OBUF[9]_inst_i_3 - (.I0(\RD_OBUF[9]_inst_i_8_n_0 ), - .I1(\RD_OBUF[9]_inst_i_9_n_0 ), - .I2(\RD_OBUF[13]_inst_i_4_n_0 ), - .I3(\RD_OBUF[9]_inst_i_10_n_0 ), - .I4(\RD_OBUF[13]_inst_i_6_n_0 ), - .I5(\RD_OBUF[9]_inst_i_11_n_0 ), - .O(\RD_OBUF[9]_inst_i_3_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[9]_inst_i_4 - (.I0(g7_b1__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g6_b1__2_n_0), - .O(\RD_OBUF[9]_inst_i_4_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[9]_inst_i_5 - (.I0(g5_b1__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g4_b1__2_n_0), - .O(\RD_OBUF[9]_inst_i_5_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[9]_inst_i_6 - (.I0(g3_b1__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g2_b1__2_n_0), - .O(\RD_OBUF[9]_inst_i_6_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[9]_inst_i_7 - (.I0(g1_b1__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g0_b1__2_n_0), - .O(\RD_OBUF[9]_inst_i_7_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[9]_inst_i_8 - (.I0(g15_b1__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g14_b1__2_n_0), - .O(\RD_OBUF[9]_inst_i_8_n_0 )); - LUT4 #( - .INIT(16'hEB28)) - \RD_OBUF[9]_inst_i_9 - (.I0(g13_b1__2_n_0), - .I1(\RD_OBUF[15]_inst_i_5_n_0 ), - .I2(A_IBUF[6]), - .I3(g12_b1__2_n_0), - .O(\RD_OBUF[9]_inst_i_9_n_0 )); - LUT6 #( - .INIT(64'hE6DD6DEE4A442CA0)) - g0_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g0_b0_n_0)); - LUT6 #( - .INIT(64'h6DD7B75D18453610)) - g0_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g0_b0__0_n_0)); - LUT6 #( - .INIT(64'hD9EE9EDD85881C50)) - g0_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g0_b0__1_n_0)); - LUT6 #( - .INIT(64'hD9EE9EDD85881C50)) - g0_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g0_b0__2_n_0)); - LUT6 #( - .INIT(64'hDDC8A05E5A92DAE9)) - g0_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g0_b1_n_0)); - LUT6 #( - .INIT(64'h557CE1079C625FE4)) - g0_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g0_b1__0_n_0)); - LUT6 #( - .INIT(64'hEEC450ADA561E5D6)) - g0_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g0_b1__1_n_0)); - LUT6 #( - .INIT(64'hEEC450ADA561E5D6)) - g0_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g0_b1__2_n_0)); - LUT6 #( - .INIT(64'hAED4B75C3F10BBE8)) - g0_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g0_b2_n_0)); - LUT6 #( - .INIT(64'h7C17693F383A7F2C)) - g0_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g0_b2__0_n_0)); - LUT6 #( - .INIT(64'h5DE87BAC3F2077D4)) - g0_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g0_b2__1_n_0)); - LUT6 #( - .INIT(64'h5DE87BAC3F2077D4)) - g0_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g0_b2__2_n_0)); - LUT6 #( - .INIT(64'h6C621CE973071BC0)) - g0_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g0_b3_n_0)); - LUT6 #( - .INIT(64'hB25417B4A8E91C2C)) - g0_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g0_b3__0_n_0)); - LUT6 #( - .INIT(64'h9C912CD6B30B27C0)) - g0_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g0_b3__1_n_0)); - LUT6 #( - .INIT(64'h9C912CD6B30B27C0)) - g0_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g0_b3__2_n_0)); - LUT6 #( - .INIT(64'h94D7C8793ED22AF5)) - g0_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g0_b4_n_0)); - LUT6 #( - .INIT(64'hC4B753C6BC363E87)) - g0_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g0_b4__0_n_0)); - LUT6 #( - .INIT(64'h68EBC4B63DE115FA)) - g0_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g0_b4__1_n_0)); - LUT6 #( - .INIT(64'h68EBC4B63DE115FA)) - g0_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g0_b4__2_n_0)); - LUT6 #( - .INIT(64'h4A9B7A9CCD259656)) - g0_b5 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g0_b5_n_0)); - LUT6 #( - .INIT(64'h9DC23D6352D9C837)) - g0_b5__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g0_b5__0_n_0)); - LUT6 #( - .INIT(64'h8567B56CCE1A69A9)) - g0_b5__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g0_b5__1_n_0)); - LUT6 #( - .INIT(64'h8567B56CCE1A69A9)) - g0_b5__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g0_b5__2_n_0)); - LUT6 #( - .INIT(64'h26AB18B01216074B)) - g0_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g0_b6_n_0)); - LUT6 #( - .INIT(64'hAF9016228823899C)) - g0_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g0_b6__0_n_0)); - LUT6 #( - .INIT(64'h1957247021290B87)) - g0_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g0_b6__1_n_0)); - LUT6 #( - .INIT(64'h1957247021290B87)) - g0_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g0_b6__2_n_0)); - LUT6 #( - .INIT(64'hAD6F7848B3FC7884)) - g0_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g0_b7_n_0)); - LUT6 #( - .INIT(64'hF39D31646F2F3461)) - g0_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g0_b7__0_n_0)); - LUT6 #( - .INIT(64'h5E9FB48473FCB448)) - g0_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g0_b7__1_n_0)); - LUT6 #( - .INIT(64'h5E9FB48473FCB448)) - g0_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g0_b7__2_n_0)); - LUT6 #( - .INIT(64'h711144702FB3B54B)) - g10_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g10_b0_n_0)); - LUT6 #( - .INIT(64'h20EA0256BE9AE1BC)) - g10_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g10_b0__0_n_0)); - LUT6 #( - .INIT(64'hB22288B01F737A87)) - g10_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g10_b0__1_n_0)); - LUT6 #( - .INIT(64'hB22288B01F737A87)) - g10_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g10_b0__2_n_0)); - LUT6 #( - .INIT(64'h44ECD8BC57DCB745)) - g10_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g10_b1_n_0)); - LUT6 #( - .INIT(64'h075557630D7F68BD)) - g10_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g10_b1__0_n_0)); - LUT6 #( - .INIT(64'h88DCE47CABEC7B8A)) - g10_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g10_b1__1_n_0)); - LUT6 #( - .INIT(64'h88DCE47CABEC7B8A)) - g10_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g10_b1__2_n_0)); - LUT6 #( - .INIT(64'h0248FF7B8A9E9599)) - g10_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g10_b2_n_0)); - LUT6 #( - .INIT(64'h0904FBFEDD0345BA)) - g10_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g10_b2__0_n_0)); - LUT6 #( - .INIT(64'h0184FFB7456D6A66)) - g10_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g10_b2__1_n_0)); - LUT6 #( - .INIT(64'h0184FFB7456D6A66)) - g10_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g10_b2__2_n_0)); - LUT6 #( - .INIT(64'hB25FE5F22A94E36E)) - g10_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g10_b3_n_0)); - LUT6 #( - .INIT(64'hE9A7E65E3C03EB4D)) - g10_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g10_b3__0_n_0)); - LUT6 #( - .INIT(64'h71AFDAF11568D39D)) - g10_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g10_b3__1_n_0)); - LUT6 #( - .INIT(64'h71AFDAF11568D39D)) - g10_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g10_b3__2_n_0)); - LUT6 #( - .INIT(64'h812975B16E1315E8)) - g10_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g10_b4_n_0)); - LUT6 #( - .INIT(64'h438826FAB8D2073C)) - g10_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g10_b4__0_n_0)); - LUT6 #( - .INIT(64'h4216BA729D232AD4)) - g10_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g10_b4__1_n_0)); - LUT6 #( - .INIT(64'h4216BA729D232AD4)) - g10_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g10_b4__2_n_0)); - LUT6 #( - .INIT(64'h83EF1CD100DC2F42)) - g10_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g10_b6_n_0)); - LUT6 #( - .INIT(64'hCF8D14B60507B81C)) - g10_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g10_b6__0_n_0)); - LUT6 #( - .INIT(64'h43DF2CE200EC1F81)) - g10_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g10_b6__1_n_0)); - LUT6 #( - .INIT(64'h43DF2CE200EC1F81)) - g10_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g10_b6__2_n_0)); - LUT6 #( - .INIT(64'h8681D6A3199EFA2E)) - g10_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g10_b7_n_0)); - LUT6 #( - .INIT(64'h4C90CEF0952BFB61)) - g10_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g10_b7__0_n_0)); - LUT6 #( - .INIT(64'h4942E953266DF51D)) - g10_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g10_b7__1_n_0)); - LUT6 #( - .INIT(64'h4942E953266DF51D)) - g10_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g10_b7__2_n_0)); - LUT6 #( - .INIT(64'h817F438670A763A7)) - g11_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g11_b0_n_0)); - LUT6 #( - .INIT(64'hC38F8C49A6E1AEC9)) - g11_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g11_b0__0_n_0)); - LUT6 #( - .INIT(64'h42BF8349B05B935B)) - g11_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g11_b0__1_n_0)); - LUT6 #( - .INIT(64'h42BF8349B05B935B)) - g11_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g11_b0__2_n_0)); - LUT6 #( - .INIT(64'h0FA162A2FC16BB27)) - g11_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g11_b1_n_0)); - LUT6 #( - .INIT(64'h1E98AE40F073FAA9)) - g11_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g11_b1__0_n_0)); - LUT6 #( - .INIT(64'h0F529151FC29771B)) - g11_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g11_b1__1_n_0)); - LUT6 #( - .INIT(64'h0F529151FC29771B)) - g11_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g11_b1__2_n_0)); - LUT6 #( - .INIT(64'h69A4C20E13C47E67)) - g11_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g11_b2_n_0)); - LUT6 #( - .INIT(64'h3649C9410C2DBAF5)) - g11_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g11_b2__0_n_0)); - LUT6 #( - .INIT(64'h9658C10D23C8BD9B)) - g11_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g11_b2__1_n_0)); - LUT6 #( - .INIT(64'h9658C10D23C8BD9B)) - g11_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g11_b2__2_n_0)); - LUT6 #( - .INIT(64'h6BE4C8FFD3C39A7C)) - g11_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g11_b3_n_0)); - LUT6 #( - .INIT(64'h3E4DD7C7CCEC5B27)) - g11_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g11_b3__0_n_0)); - LUT6 #( - .INIT(64'h97D8C4FFE3C365BC)) - g11_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g11_b3__1_n_0)); - LUT6 #( - .INIT(64'h97D8C4FFE3C365BC)) - g11_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g11_b3__2_n_0)); - LUT6 #( - .INIT(64'hF12F111BE9C48511)) - g11_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g11_b4_n_0)); - LUT6 #( - .INIT(64'hE3E981AA744D409A)) - g11_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g11_b4__0_n_0)); - LUT6 #( - .INIT(64'hF21F2227D6C84A22)) - g11_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g11_b4__1_n_0)); - LUT6 #( - .INIT(64'hF21F2227D6C84A22)) - g11_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g11_b4__2_n_0)); - LUT6 #( - .INIT(64'h8E01B286B5B8ADA1)) - g11_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g11_b6_n_0)); - LUT6 #( - .INIT(64'h5890EC21673A7698)) - g11_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g11_b6__0_n_0)); - LUT6 #( - .INIT(64'h4D0271497A745E52)) - g11_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g11_b6__1_n_0)); - LUT6 #( - .INIT(64'h4D0271497A745E52)) - g11_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g11_b6__2_n_0)); - LUT6 #( - .INIT(64'hBCF643C38AC949FD)) - g11_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g11_b7_n_0)); - LUT6 #( - .INIT(64'hF6378CCC5D8417CF)) - g11_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g11_b7__0_n_0)); - LUT6 #( - .INIT(64'h7CF983C345C686FE)) - g11_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g11_b7__1_n_0)); - LUT6 #( - .INIT(64'h7CF983C345C686FE)) - g11_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g11_b7__2_n_0)); - LUT6 #( - .INIT(64'h16859A383DD6DB22)) - g12_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g12_b0_n_0)); - LUT6 #( - .INIT(64'h0CB15B22B43FDA68)) - g12_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g12_b0__0_n_0)); - LUT6 #( - .INIT(64'h294A65343EE9E711)) - g12_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g12_b0__1_n_0)); - LUT6 #( - .INIT(64'h294A65343EE9E711)) - g12_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g12_b0__2_n_0)); - LUT6 #( - .INIT(64'h572302298FC88AFD)) - g12_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g12_b1_n_0)); - LUT6 #( - .INIT(64'h8AF80B805D1C5F87)) - g12_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g12_b1__0_n_0)); - LUT6 #( - .INIT(64'hAB1301164FC445FE)) - g12_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g12_b1__1_n_0)); - LUT6 #( - .INIT(64'hAB1301164FC445FE)) - g12_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g12_b1__2_n_0)); - LUT6 #( - .INIT(64'hB0D9DF840EDFD583)) - g12_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g12_b2_n_0)); - LUT6 #( - .INIT(64'h65A65C799D97C4F8)) - g12_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g12_b2__0_n_0)); - LUT6 #( - .INIT(64'h70E6EF480DEFEA43)) - g12_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g12_b2__1_n_0)); - LUT6 #( - .INIT(64'h70E6EF480DEFEA43)) - g12_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g12_b2__2_n_0)); - LUT6 #( - .INIT(64'hDB8B3605818C4D60)) - g12_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g12_b3_n_0)); - LUT6 #( - .INIT(64'hDDE828B14509125C)) - g12_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g12_b3__0_n_0)); - LUT6 #( - .INIT(64'hE747390A424C8E90)) - g12_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g12_b3__1_n_0)); - LUT6 #( - .INIT(64'hE747390A424C8E90)) - g12_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g12_b3__2_n_0)); - LUT6 #( - .INIT(64'h662505D880B48D8F)) - g12_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g12_b4_n_0)); - LUT6 #( - .INIT(64'h2AD1051E4603D599)) - g12_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g12_b4__0_n_0)); - LUT6 #( - .INIT(64'h991A0AE440784E4F)) - g12_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g12_b4__1_n_0)); - LUT6 #( - .INIT(64'h991A0AE440784E4F)) - g12_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g12_b4__2_n_0)); - LUT6 #( - .INIT(64'h6C30622CDF33911D)) - g12_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g12_b6_n_0)); - LUT6 #( - .INIT(64'h32522B41DAFA41AB)) - g12_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g12_b6__0_n_0)); - LUT6 #( - .INIT(64'h9C30911CEF33622E)) - g12_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g12_b6__1_n_0)); - LUT6 #( - .INIT(64'h9C30911CEF33622E)) - g12_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g12_b6__2_n_0)); - LUT6 #( - .INIT(64'hAFE460D8B3F87EC6)) - g12_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g12_b7_n_0)); - LUT6 #( - .INIT(64'h7E1D25466F2EBC75)) - g12_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g12_b7__0_n_0)); - LUT6 #( - .INIT(64'h5FD890E473F4BDC9)) - g12_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g12_b7__1_n_0)); - LUT6 #( - .INIT(64'h5FD890E473F4BDC9)) - g12_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g12_b7__2_n_0)); - LUT6 #( - .INIT(64'h2607220E3F9E0DCB)) - g13_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g13_b0_n_0)); - LUT6 #( - .INIT(64'hA891A901BD3B959C)) - g13_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g13_b0__0_n_0)); - LUT6 #( - .INIT(64'h190B110D3F6D0EC7)) - g13_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g13_b0__1_n_0)); - LUT6 #( - .INIT(64'h190B110D3F6D0EC7)) - g13_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g13_b0__2_n_0)); - LUT6 #( - .INIT(64'h35DEF8EC6CA8F127)) - g13_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g13_b1_n_0)); - LUT6 #( - .INIT(64'hA53F77653750E2E9)) - g13_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g13_b1__0_n_0)); - LUT6 #( - .INIT(64'h3AEDF4DC9C54F21B)) - g13_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g13_b1__1_n_0)); - LUT6 #( - .INIT(64'h3AEDF4DC9C54F21B)) - g13_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g13_b1__2_n_0)); - LUT6 #( - .INIT(64'h4D9EE264917A8866)) - g13_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g13_b2_n_0)); - LUT6 #( - .INIT(64'h955B6A45C32ED205)) - g13_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g13_b2__0_n_0)); - LUT6 #( - .INIT(64'h8E6DD19862B54499)) - g13_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g13_b2__1_n_0)); - LUT6 #( - .INIT(64'h8E6DD19862B54499)) - g13_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g13_b2__2_n_0)); - LUT6 #( - .INIT(64'hD787642317362D36)) - g13_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g13_b3_n_0)); - LUT6 #( - .INIT(64'hCCF9A2D08A3BB21B)) - g13_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g13_b3__0_n_0)); - LUT6 #( - .INIT(64'hEB4B98132B391E39)) - g13_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g13_b3__1_n_0)); - LUT6 #( - .INIT(64'hEB4B98132B391E39)) - g13_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g13_b3__2_n_0)); - LUT6 #( - .INIT(64'hA18919A8DFAAEAF4)) - g13_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g13_b4_n_0)); - LUT6 #( - .INIT(64'h65881728DF787E47)) - g13_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g13_b4__0_n_0)); - LUT6 #( - .INIT(64'h52462654EF55D5F8)) - g13_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g13_b4__1_n_0)); - LUT6 #( - .INIT(64'h52462654EF55D5F8)) - g13_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g13_b4__2_n_0)); - LUT6 #( - .INIT(64'h52FA49C54709721F)) - g13_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g13_b6_n_0)); - LUT6 #( - .INIT(64'h8F6614CD09D8A9E3)) - g13_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g13_b6__0_n_0)); - LUT6 #( - .INIT(64'hA1F586CA8B06B12F)) - g13_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g13_b6__1_n_0)); - LUT6 #( - .INIT(64'hA1F586CA8B06B12F)) - g13_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g13_b6__2_n_0)); - LUT6 #( - .INIT(64'h9A5D5B6B90D36EF7)) - g13_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g13_b7_n_0)); - LUT6 #( - .INIT(64'h59A79BECC4A6BED7)) - g13_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g13_b7__0_n_0)); - LUT6 #( - .INIT(64'h65AEA79760E39DFB)) - g13_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g13_b7__1_n_0)); - LUT6 #( - .INIT(64'h65AEA79760E39DFB)) - g13_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g13_b7__2_n_0)); - LUT6 #( - .INIT(64'hB80FDC4659684195)) - g14_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g14_b0_n_0)); - LUT6 #( - .INIT(64'hF1A1D075136C04CB)) - g14_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g14_b0__0_n_0)); - LUT6 #( - .INIT(64'h740FEC89A694826A)) - g14_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g14_b0__1_n_0)); - LUT6 #( - .INIT(64'h740FEC89A694826A)) - g14_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g14_b0__2_n_0)); - LUT6 #( - .INIT(64'hB46198D5A77886C6)) - g14_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g14_b1_n_0)); - LUT6 #( - .INIT(64'h62B454A76B1ECC15)) - g14_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g14_b1__0_n_0)); - LUT6 #( - .INIT(64'h789264EA5BB449C9)) - g14_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g14_b1__1_n_0)); - LUT6 #( - .INIT(64'h789264EA5BB449C9)) - g14_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g14_b1__2_n_0)); - LUT6 #( - .INIT(64'h5419EFAFAF36C87A)) - g14_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g14_b2_n_0)); - LUT6 #( - .INIT(64'h01F2FFD9FA1BD346)) - g14_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g14_b2__0_n_0)); - LUT6 #( - .INIT(64'hA826DF5F5F39C4B5)) - g14_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g14_b2__1_n_0)); - LUT6 #( - .INIT(64'hA826DF5F5F39C4B5)) - g14_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g14_b2__2_n_0)); - LUT6 #( - .INIT(64'h2D33E4713BB3397F)) - g14_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g14_b3_n_0)); - LUT6 #( - .INIT(64'hB29A62D6BEAAB3AF)) - g14_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g14_b3__0_n_0)); - LUT6 #( - .INIT(64'h1E33D8B2377336BF)) - g14_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g14_b3__1_n_0)); - LUT6 #( - .INIT(64'h1E33D8B2377336BF)) - g14_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g14_b3__2_n_0)); - LUT6 #( - .INIT(64'h283BE712A5F124AD)) - g14_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g14_b4_n_0)); - LUT6 #( - .INIT(64'hB382E85A669E2791)) - g14_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g14_b4__0_n_0)); - LUT6 #( - .INIT(64'h1437DB215AF2185E)) - g14_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g14_b4__1_n_0)); - LUT6 #( - .INIT(64'h1437DB215AF2185E)) - g14_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g14_b4__2_n_0)); - LUT6 #( - .INIT(64'h9BD5DFD3E0EDFEE0)) - g14_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g14_b6_n_0)); - LUT6 #( - .INIT(64'h5CAFDCFE67C57E74)) - g14_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g14_b6__0_n_0)); - LUT6 #( - .INIT(64'h67EAEFE3D0DEFDD0)) - g14_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g14_b6__1_n_0)); - LUT6 #( - .INIT(64'h67EAEFE3D0DEFDD0)) - g14_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g14_b6__2_n_0)); - LUT6 #( - .INIT(64'h616EEA5E0640D571)) - g14_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g14_b7_n_0)); - LUT6 #( - .INIT(64'hA34DF947081442FE)) - g14_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g14_b7__0_n_0)); - LUT6 #( - .INIT(64'h929DD5AD0980EAB2)) - g14_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g14_b7__1_n_0)); - LUT6 #( - .INIT(64'h929DD5AD0980EAB2)) - g14_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g14_b7__2_n_0)); - LUT6 #( - .INIT(64'hE884D897CA8C592C)) - g15_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g15_b0_n_0)); - LUT6 #( - .INIT(64'h7441D4E35D411369)) - g15_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g15_b0__0_n_0)); - LUT6 #( - .INIT(64'hD448E46BC54CA61C)) - g15_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g15_b0__1_n_0)); - LUT6 #( - .INIT(64'hD448E46BC54CA61C)) - g15_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g15_b0__2_n_0)); - LUT6 #( - .INIT(64'h7E74C95AC83D066B)) - g15_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g15_b1_n_0)); - LUT6 #( - .INIT(64'h3A77D14E53C38B94)) - g15_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g15_b1__0_n_0)); - LUT6 #( - .INIT(64'hBDB8C6A5C43E0997)) - g15_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g15_b1__1_n_0)); - LUT6 #( - .INIT(64'hBDB8C6A5C43E0997)) - g15_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g15_b1__2_n_0)); - LUT6 #( - .INIT(64'hA94794C6E1FCF963)) - g15_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g15_b2_n_0)); - LUT6 #( - .INIT(64'hF08DC435674FF2EC)) - g15_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g15_b2__0_n_0)); - LUT6 #( - .INIT(64'h568B68C9D2FCF693)) - g15_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g15_b2__1_n_0)); - LUT6 #( - .INIT(64'h568B68C9D2FCF693)) - g15_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g15_b2__2_n_0)); - LUT6 #( - .INIT(64'hBE158BCBD991389A)) - g15_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g15_b3_n_0)); - LUT6 #( - .INIT(64'h78B3DD8C54EAB522)) - g15_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g15_b3__0_n_0)); - LUT6 #( - .INIT(64'h7D2A47C7E6623465)) - g15_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g15_b3__1_n_0)); - LUT6 #( - .INIT(64'h7D2A47C7E6623465)) - g15_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g15_b3__2_n_0)); - LUT6 #( - .INIT(64'hC9B8AC57675EFCF5)) - g15_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g15_b4_n_0)); - LUT6 #( - .INIT(64'h574AF097A95F76F7)) - g15_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g15_b4__0_n_0)); - LUT6 #( - .INIT(64'hC6745CAB9BADFCFA)) - g15_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g15_b4__1_n_0)); - LUT6 #( - .INIT(64'hC6745CAB9BADFCFA)) - g15_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g15_b4__2_n_0)); - LUT6 #( - .INIT(64'h3945B67BAA668468)) - g15_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g15_b6_n_0)); - LUT6 #( - .INIT(64'h30ADEBB6FA054314)) - g15_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g15_b6__0_n_0)); - LUT6 #( - .INIT(64'h368A79B755994894)) - g15_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g15_b6__1_n_0)); - LUT6 #( - .INIT(64'h368A79B755994894)) - g15_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g15_b6__2_n_0)); - LUT6 #( - .INIT(64'h724DB8457F70B64A)) - g15_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g15_b7_n_0)); - LUT6 #( - .INIT(64'h29E570A53A7EE934)) - g15_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g15_b7__0_n_0)); - LUT6 #( - .INIT(64'hB18E748ABFB07985)) - g15_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g15_b7__1_n_0)); - LUT6 #( - .INIT(64'hB18E748ABFB07985)) - g15_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g15_b7__2_n_0)); - LUT2 #( - .INIT(4'h9)) - g15_b7_i_1 - (.I0(A_IBUF[1]), - .I1(A_IBUF[0]), - .O(sel[1])); - LUT2 #( - .INIT(4'h6)) - g15_b7_i_1__0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .O(g15_b7_i_1__0_n_0)); - LUT4 #( - .INIT(16'h7F80)) - g15_b7_i_1__1 - (.I0(A_IBUF[2]), - .I1(A_IBUF[1]), - .I2(A_IBUF[3]), - .I3(A_IBUF[4]), - .O(g15_b7_i_1__1_n_0)); - LUT3 #( - .INIT(8'h78)) - g15_b7_i_2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .O(g15_b7_i_2_n_0)); - LUT5 #( - .INIT(32'h7FFF8000)) - g15_b7_i_2__0 - (.I0(A_IBUF[3]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[4]), - .I4(A_IBUF[5]), - .O(g15_b7_i_2__0_n_0)); - LUT3 #( - .INIT(8'h1E)) - g15_b7_i_2__1 - (.I0(A_IBUF[1]), - .I1(A_IBUF[0]), - .I2(A_IBUF[2]), - .O(sel[2])); - LUT4 #( - .INIT(16'h7F80)) - g15_b7_i_3 - (.I0(A_IBUF[1]), - .I1(A_IBUF[0]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .O(g15_b7_i_3_n_0)); - LUT4 #( - .INIT(16'h1FE0)) - g15_b7_i_3__0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .O(sel[3])); - LUT5 #( - .INIT(32'h7FFF8000)) - g15_b7_i_4 - (.I0(A_IBUF[2]), - .I1(A_IBUF[0]), - .I2(A_IBUF[1]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .O(g15_b7_i_4_n_0)); - LUT5 #( - .INIT(32'h57FFA800)) - g15_b7_i_4__0 - (.I0(A_IBUF[2]), - .I1(A_IBUF[1]), - .I2(A_IBUF[0]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .O(sel[4])); - LUT6 #( - .INIT(64'h7FFFFFFF80000000)) - g15_b7_i_5 - (.I0(A_IBUF[3]), - .I1(A_IBUF[1]), - .I2(A_IBUF[0]), - .I3(A_IBUF[2]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g15_b7_i_5_n_0)); - LUT6 #( - .INIT(64'h57FFFFFFA8000000)) - g15_b7_i_5__0 - (.I0(A_IBUF[3]), - .I1(A_IBUF[0]), - .I2(A_IBUF[1]), - .I3(A_IBUF[2]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(sel[5])); - LUT6 #( - .INIT(64'h51E9A02D5F71BDDD)) - g1_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g1_b0_n_0)); - LUT6 #( - .INIT(64'h07EC63811AFE75BF)) - g1_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g1_b0__0_n_0)); - LUT6 #( - .INIT(64'hA2D6501EAFB27EEE)) - g1_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g1_b0__1_n_0)); - LUT6 #( - .INIT(64'hA2D6501EAFB27EEE)) - g1_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g1_b0__2_n_0)); - LUT6 #( - .INIT(64'h79CD4A656993B0EA)) - g1_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g1_b1_n_0)); - LUT6 #( - .INIT(64'h35ED1AC5B4CAE724)) - g1_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g1_b1__0_n_0)); - LUT6 #( - .INIT(64'hB6CE859A966370D5)) - g1_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g1_b1__1_n_0)); - LUT6 #( - .INIT(64'hB6CE859A966370D5)) - g1_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g1_b1__2_n_0)); - LUT6 #( - .INIT(64'h34D707A747D4DCBD)) - g1_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g1_b2_n_0)); - LUT6 #( - .INIT(64'hA4B78E990C5F57F3)) - g1_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g1_b2__0_n_0)); - LUT6 #( - .INIT(64'h38EB0B5B8BE8EC7E)) - g1_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g1_b2__1_n_0)); - LUT6 #( - .INIT(64'h38EB0B5B8BE8EC7E)) - g1_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g1_b2__2_n_0)); - LUT6 #( - .INIT(64'hBEBAAAB69C55AD4F)) - g1_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g1_b3_n_0)); - LUT6 #( - .INIT(64'hFF32FE0350B7F19D)) - g1_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g1_b3__0_n_0)); - LUT6 #( - .INIT(64'h7D7555796CAA5E8F)) - g1_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g1_b3__1_n_0)); - LUT6 #( - .INIT(64'h7D7555796CAA5E8F)) - g1_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g1_b3__2_n_0)); - LUT6 #( - .INIT(64'h47FEDD39F682ADD6)) - g1_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g1_b4_n_0)); - LUT6 #( - .INIT(64'h8F5F53FAEC70F41F)) - g1_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g1_b4__0_n_0)); - LUT6 #( - .INIT(64'h8BFDEE36F9415EE9)) - g1_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g1_b4__1_n_0)); - LUT6 #( - .INIT(64'h8BFDEE36F9415EE9)) - g1_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g1_b4__2_n_0)); - LUT6 #( - .INIT(64'h94708343F29159A8)) - g1_b5 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g1_b5_n_0)); - LUT6 #( - .INIT(64'h4236C88C6CE21768)) - g1_b5__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g1_b5__0_n_0)); - LUT6 #( - .INIT(64'h68B04383F162A654)) - g1_b5__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g1_b5__1_n_0)); - LUT6 #( - .INIT(64'h68B04383F162A654)) - g1_b5__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g1_b5__2_n_0)); - LUT6 #( - .INIT(64'hC68ACA86B5982BB7)) - g1_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g1_b6_n_0)); - LUT6 #( - .INIT(64'hCD50DC41653ABE8B)) - g1_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g1_b6__0_n_0)); - LUT6 #( - .INIT(64'hC945C5497A64177B)) - g1_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g1_b6__1_n_0)); - LUT6 #( - .INIT(64'hC945C5497A64177B)) - g1_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g1_b6__2_n_0)); - LUT6 #( - .INIT(64'h1E5DD96920436757)) - g1_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g1_b7_n_0)); - LUT6 #( - .INIT(64'h19B753ECA084A8DF)) - g1_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g1_b7__0_n_0)); - LUT6 #( - .INIT(64'h2DAEE69610839BAB)) - g1_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g1_b7__1_n_0)); - LUT6 #( - .INIT(64'h2DAEE69610839BAB)) - g1_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g1_b7__2_n_0)); - LUT6 #( - .INIT(64'h12DB8364A03E3B52)) - g2_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g2_b0_n_0)); - LUT6 #( - .INIT(64'h8DA64A0DE303B82E)) - g2_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g2_b0__0_n_0)); - LUT6 #( - .INIT(64'h21E74398503D37A1)) - g2_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g2_b0__1_n_0)); - LUT6 #( - .INIT(64'h21E74398503D37A1)) - g2_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g2_b0__2_n_0)); - LUT6 #( - .INIT(64'h088D88EDB2C16C24)) - g2_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g2_b1_n_0)); - LUT6 #( - .INIT(64'h158157856CA43251)) - g2_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g2_b1__0_n_0)); - LUT6 #( - .INIT(64'h044E44DE71C29C18)) - g2_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g2_b1__1_n_0)); - LUT6 #( - .INIT(64'h044E44DE71C29C18)) - g2_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g2_b1__2_n_0)); - LUT6 #( - .INIT(64'h1CBB0431AE240FE8)) - g2_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g2_b2_n_0)); - LUT6 #( - .INIT(64'h97B202927A111F1C)) - g2_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g2_b2__0_n_0)); - LUT6 #( - .INIT(64'h2C7708325D180FD4)) - g2_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g2_b2__1_n_0)); - LUT6 #( - .INIT(64'h2C7708325D180FD4)) - g2_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g2_b2__2_n_0)); - LUT6 #( - .INIT(64'hE85114527B90C563)) - g2_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g2_b3_n_0)); - LUT6 #( - .INIT(64'h70C680363C6AC2DC)) - g2_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g2_b3__0_n_0)); - LUT6 #( - .INIT(64'hD4A228A1B760CA93)) - g2_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g2_b3__1_n_0)); - LUT6 #( - .INIT(64'hD4A228A1B760CA93)) - g2_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g2_b3__2_n_0)); - LUT6 #( - .INIT(64'h76386FA669ED996F)) - g2_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g2_b4_n_0)); - LUT6 #( - .INIT(64'h2B72BE5937CDD3AD)) - g2_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g2_b4__0_n_0)); - LUT6 #( - .INIT(64'hB9349F5996DE669F)) - g2_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g2_b4__1_n_0)); - LUT6 #( - .INIT(64'hB9349F5996DE669F)) - g2_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g2_b4__2_n_0)); - LUT6 #( - .INIT(64'hE7C53CFD1FCE2E5D)) - g2_b5 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g2_b5_n_0)); - LUT6 #( - .INIT(64'h6CDD37B79D3D3997)) - g2_b5__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g2_b5__0_n_0)); - LUT6 #( - .INIT(64'hDBCA3CFE2FCD1DAE)) - g2_b5__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g2_b5__1_n_0)); - LUT6 #( - .INIT(64'hDBCA3CFE2FCD1DAE)) - g2_b5__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g2_b5__2_n_0)); - LUT6 #( - .INIT(64'h7C10E32EFF23D0BD)) - g2_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g2_b6_n_0)); - LUT6 #( - .INIT(64'h3072EB49FAF847E3)) - g2_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g2_b6__0_n_0)); - LUT6 #( - .INIT(64'hBC20D31DFF13E07E)) - g2_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g2_b6__1_n_0)); - LUT6 #( - .INIT(64'hBC20D31DFF13E07E)) - g2_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g2_b6__2_n_0)); - LUT6 #( - .INIT(64'h056ECA721942D56C)) - g2_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g2_b7_n_0)); - LUT6 #( - .INIT(64'h831DDA46902C437D)) - g2_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g2_b7__0_n_0)); - LUT6 #( - .INIT(64'h0A9DC5B12681EA9C)) - g2_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g2_b7__1_n_0)); - LUT6 #( - .INIT(64'h0A9DC5B12681EA9C)) - g2_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g2_b7__2_n_0)); - LUT6 #( - .INIT(64'h9600AEC8DA6E25AD)) - g3_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g3_b0_n_0)); - LUT6 #( - .INIT(64'h48307D14DB652799)) - g3_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g3_b0__0_n_0)); - LUT6 #( - .INIT(64'h69005DC4E59D1A5E)) - g3_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g3_b0__1_n_0)); - LUT6 #( - .INIT(64'h69005DC4E59D1A5E)) - g3_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g3_b0__2_n_0)); - LUT6 #( - .INIT(64'h75FB8A90A6838CBC)) - g3_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g3_b1_n_0)); - LUT6 #( - .INIT(64'hA7FE5C02EC905713)) - g3_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g3_b1__0_n_0)); - LUT6 #( - .INIT(64'hBAF7456059434C7C)) - g3_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g3_b1__1_n_0)); - LUT6 #( - .INIT(64'hBAF7456059434C7C)) - g3_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g3_b1__2_n_0)); - LUT6 #( - .INIT(64'hB7FB6E3471A4C144)) - g3_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g3_b2_n_0)); - LUT6 #( - .INIT(64'hEFBE3A532669404D)) - g3_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g3_b2__0_n_0)); - LUT6 #( - .INIT(64'h7BF79D38B258C288)) - g3_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g3_b2__1_n_0)); - LUT6 #( - .INIT(64'h7BF79D38B258C288)) - g3_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g3_b2__2_n_0)); - LUT6 #( - .INIT(64'h66BA75CCC1BD861A)) - g3_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g3_b3_n_0)); - LUT6 #( - .INIT(64'hAF52257D47CBC912)) - g3_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g3_b3__0_n_0)); - LUT6 #( - .INIT(64'h9975BACCC27E4925)) - g3_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g3_b3__1_n_0)); - LUT6 #( - .INIT(64'h9975BACCC27E4925)) - g3_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g3_b3__2_n_0)); - LUT6 #( - .INIT(64'h0F487EECD299B22F)) - g3_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g3_b4_n_0)); - LUT6 #( - .INIT(64'h191C3F754DE2EBA1)) - g3_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g3_b4__0_n_0)); - LUT6 #( - .INIT(64'h0F84BDDCE166711F)) - g3_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g3_b4__1_n_0)); - LUT6 #( - .INIT(64'h0F84BDDCE166711F)) - g3_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g3_b4__2_n_0)); - LUT6 #( - .INIT(64'h48BBFB02E021D636)) - g3_b5 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g3_b5_n_0)); - LUT6 #( - .INIT(64'h97C2F86862C0CA73)) - g3_b5__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g3_b5__0_n_0)); - LUT6 #( - .INIT(64'h8477F701D012E939)) - g3_b5__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g3_b5__1_n_0)); - LUT6 #( - .INIT(64'h8477F701D012E939)) - g3_b5__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g3_b5__2_n_0)); - LUT6 #( - .INIT(64'h71FE4D794A47525E)) - g3_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g3_b6_n_0)); - LUT6 #( - .INIT(64'hA76F13DE98C58967)) - g3_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g3_b6__0_n_0)); - LUT6 #( - .INIT(64'hB2FD8EB6858BA1AD)) - g3_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g3_b6__1_n_0)); - LUT6 #( - .INIT(64'hB2FD8EB6858BA1AD)) - g3_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g3_b6__2_n_0)); - LUT6 #( - .INIT(64'h32F7F1453F71E45C)) - g3_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g3_b7_n_0)); - LUT6 #( - .INIT(64'hAEA760ED3ABE6157)) - g3_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g3_b7__0_n_0)); - LUT6 #( - .INIT(64'h31FBF28A3FB2D8AC)) - g3_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g3_b7__1_n_0)); - LUT6 #( - .INIT(64'h31FBF28A3FB2D8AC)) - g3_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g3_b7__2_n_0)); - LUT6 #( - .INIT(64'h6FC356C840E14C9A)) - g4_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g4_b0_n_0)); - LUT6 #( - .INIT(64'hBCDC0D7406C49552)) - g4_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g4_b0__0_n_0)); - LUT6 #( - .INIT(64'h9FC3A9C480D28C65)) - g4_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g4_b0__1_n_0)); - LUT6 #( - .INIT(64'h9FC3A9C480D28C65)) - g4_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g4_b0__2_n_0)); - LUT6 #( - .INIT(64'hC10C876C20C3B97C)) - g4_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g4_b1_n_0)); - LUT6 #( - .INIT(64'h41494B1DA484732F)) - g4_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g4_b1__0_n_0)); - LUT6 #( - .INIT(64'hC20C4B9C10C376BC)) - g4_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g4_b1__1_n_0)); - LUT6 #( - .INIT(64'hC20C4B9C10C376BC)) - g4_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g4_b1__2_n_0)); - LUT6 #( - .INIT(64'h9658F5D180A56FA5)) - g4_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g4_b2_n_0)); - LUT6 #( - .INIT(64'h493664FE46813ED9)) - g4_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g4_b2__0_n_0)); - LUT6 #( - .INIT(64'h69A4FAE2405A9F5A)) - g4_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g4_b2__1_n_0)); - LUT6 #( - .INIT(64'h69A4FAE2405A9F5A)) - g4_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g4_b2__2_n_0)); - LUT6 #( - .INIT(64'hD865067860E51508)) - g4_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g4_b3_n_0)); - LUT6 #( - .INIT(64'h52E50B1626C50138)) - g4_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g4_b3__0_n_0)); - LUT6 #( - .INIT(64'hE49A09B490DA2A04)) - g4_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g4_b3__1_n_0)); - LUT6 #( - .INIT(64'hE49A09B490DA2A04)) - g4_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g4_b3__2_n_0)); - LUT6 #( - .INIT(64'h64EE201C4FF709E7)) - g4_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g4_b4_n_0)); - LUT6 #( - .INIT(64'hA75521039EDF968D)) - g4_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g4_b4__0_n_0)); - LUT6 #( - .INIT(64'h98DD102C8FFB06DB)) - g4_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g4_b4__1_n_0)); - LUT6 #( - .INIT(64'h98DD102C8FFB06DB)) - g4_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g4_b4__2_n_0)); - LUT6 #( - .INIT(64'hB564856332DA69A9)) - g4_b5 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g4_b5_n_0)); - LUT6 #( - .INIT(64'h623DC29CAD2637C8)) - g4_b5__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g4_b5__0_n_0)); - LUT6 #( - .INIT(64'h7A984A9331E59656)) - g4_b5__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g4_b5__1_n_0)); - LUT6 #( - .INIT(64'h7A984A9331E59656)) - g4_b5__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g4_b5__2_n_0)); - LUT6 #( - .INIT(64'h93CF9DD320CC6EE2)) - g4_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g4_b6_n_0)); - LUT6 #( - .INIT(64'hCDADD4BE2505BE54)) - g4_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g4_b6__0_n_0)); - LUT6 #( - .INIT(64'h63CF6EE310CC9DD1)) - g4_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g4_b6__1_n_0)); - LUT6 #( - .INIT(64'h63CF6EE310CC9DD1)) - g4_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g4_b6__2_n_0)); - LUT6 #( - .INIT(64'hC3D402F46CCBEFDB)) - g4_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g4_b7_n_0)); - LUT6 #( - .INIT(64'h4C4F0E07B5D4FDDE)) - g4_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g4_b7__0_n_0)); - LUT6 #( - .INIT(64'hC3E801F89CC7DFE7)) - g4_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g4_b7__1_n_0)); - LUT6 #( - .INIT(64'hC3E801F89CC7DFE7)) - g4_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g4_b7__2_n_0)); - LUT6 #( - .INIT(64'h3644F01ED12CE302)) - g5_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g5_b0_n_0)); - LUT6 #( - .INIT(64'h2835E1634369E848)) - g5_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g5_b0__0_n_0)); - LUT6 #( - .INIT(64'h3988F02DE21CD301)) - g5_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g5_b0__1_n_0)); - LUT6 #( - .INIT(64'h3988F02DE21CD301)) - g5_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g5_b0__2_n_0)); - LUT6 #( - .INIT(64'hD832302676257E3F)) - g5_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g5_b1_n_0)); - LUT6 #( - .INIT(64'hD262A2212AF1BBF3)) - g5_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g5_b1__0_n_0)); - LUT6 #( - .INIT(64'hE4313019B91ABD3F)) - g5_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g5_b1__1_n_0)); - LUT6 #( - .INIT(64'hE4313019B91ABD3F)) - g5_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g5_b1__2_n_0)); - LUT6 #( - .INIT(64'h3B21EC4536A92507)) - g5_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g5_b2_n_0)); - LUT6 #( - .INIT(64'h3AA870D52FB0A099)) - g5_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g5_b2__0_n_0)); - LUT6 #( - .INIT(64'h3712DC8A39561A0B)) - g5_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g5_b2__1_n_0)); - LUT6 #( - .INIT(64'h3712DC8A39561A0B)) - g5_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g5_b2__2_n_0)); - LUT6 #( - .INIT(64'h480EC765729F4CEB)) - g5_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g5_b3_n_0)); - LUT6 #( - .INIT(64'h91414ADDADE397D4)) - g5_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g5_b3__0_n_0)); - LUT6 #( - .INIT(64'h840DCB9AB16F8CD7)) - g5_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g5_b3__1_n_0)); - LUT6 #( - .INIT(64'h840DCB9AB16F8CD7)) - g5_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g5_b3__2_n_0)); - LUT6 #( - .INIT(64'hC795F38EC1A1C3A7)) - g5_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g5_b4_n_0)); - LUT6 #( - .INIT(64'h4CDBED6946C8CEC9)) - g5_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g5_b4__0_n_0)); - LUT6 #( - .INIT(64'hCB6AF34DC252C35B)) - g5_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g5_b4__1_n_0)); - LUT6 #( - .INIT(64'hCB6AF34DC252C35B)) - g5_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g5_b4__2_n_0)); - LUT6 #( - .INIT(64'h6B8F7CBC0D6EA657)) - g5_b5 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g5_b5_n_0)); - LUT6 #( - .INIT(64'hBDC93773931DE897)) - g5_b5__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g5_b5__0_n_0)); - LUT6 #( - .INIT(64'h974FBC7C0E9D59AB)) - g5_b5__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g5_b5__1_n_0)); - LUT6 #( - .INIT(64'h974FBC7C0E9D59AB)) - g5_b5__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g5_b5__2_n_0)); - LUT6 #( - .INIT(64'hAD05B63AB8F68DE0)) - g5_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g5_b6_n_0)); - LUT6 #( - .INIT(64'h7099EB32F627561C)) - g5_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g5_b6__0_n_0)); - LUT6 #( - .INIT(64'h5E0A793574F94ED0)) - g5_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g5_b6__1_n_0)); - LUT6 #( - .INIT(64'h5E0A793574F94ED0)) - g5_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g5_b6__2_n_0)); - LUT6 #( - .INIT(64'hC8A712AED7DA1CE8)) - g5_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g5_b7_n_0)); - LUT6 #( - .INIT(64'hD6C18F21CD7E1734)) - g5_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g5_b7__0_n_0)); - LUT6 #( - .INIT(64'hC45B215DEBE52CD4)) - g5_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g5_b7__1_n_0)); - LUT6 #( - .INIT(64'hC45B215DEBE52CD4)) - g5_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g5_b7__2_n_0)); - LUT6 #( - .INIT(64'hEB5CF99684AAF470)) - g6_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g6_b0_n_0)); - LUT6 #( - .INIT(64'h794FF46BC7106276)) - g6_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g6_b0__0_n_0)); - LUT6 #( - .INIT(64'hD7ACF6694855F8B0)) - g6_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g6_b0__1_n_0)); - LUT6 #( - .INIT(64'hD7ACF6694855F8B0)) - g6_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g6_b0__2_n_0)); - LUT6 #( - .INIT(64'h9FB21157825091B4)) - g6_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g6_b1_n_0)); - LUT6 #( - .INIT(64'hDE3A80AF4806462B)) - g6_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g6_b1__0_n_0)); - LUT6 #( - .INIT(64'h6F7122AB41A06278)) - g6_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g6_b1__1_n_0)); - LUT6 #( - .INIT(64'h6F7122AB41A06278)) - g6_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g6_b1__2_n_0)); - LUT6 #( - .INIT(64'hBA15D401E5AD3D43)) - g6_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g6_b2_n_0)); - LUT6 #( - .INIT(64'h78A340F067D9B0BC)) - g6_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g6_b2__0_n_0)); - LUT6 #( - .INIT(64'h752AE802DA5E3E83)) - g6_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g6_b2__1_n_0)); - LUT6 #( - .INIT(64'h752AE802DA5E3E83)) - g6_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g6_b2__2_n_0)); - LUT6 #( - .INIT(64'hF4B82FB49F20D093)) - g6_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g6_b3_n_0)); - LUT6 #( - .INIT(64'h67723E1B5A38C4E2)) - g6_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g6_b3__0_n_0)); - LUT6 #( - .INIT(64'hF8741F786F10E063)) - g6_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g6_b3__1_n_0)); - LUT6 #( - .INIT(64'hF8741F786F10E063)) - g6_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g6_b3__2_n_0)); - LUT6 #( - .INIT(64'hDB0AC8C367D1FB32)) - g6_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g6_b4_n_0)); - LUT6 #( - .INIT(64'hD968D4C42CDEFA6A)) - g6_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g6_b4__0_n_0)); - LUT6 #( - .INIT(64'hE705C4C39BE2F731)) - g6_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g6_b4__1_n_0)); - LUT6 #( - .INIT(64'hE705C4C39BE2F731)) - g6_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g6_b4__2_n_0)); - LUT6 #( - .INIT(64'h183AC302E031D1A2)) - g6_b5 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g6_b5_n_0)); - LUT6 #( - .INIT(64'h9322C84862C2C668)) - g6_b5__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g6_b5__0_n_0)); - LUT6 #( - .INIT(64'h2435C301D032E251)) - g6_b5__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g6_b5__1_n_0)); - LUT6 #( - .INIT(64'h2435C301D032E251)) - g6_b5__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g6_b5__2_n_0)); - LUT6 #( - .INIT(64'h642A202C1F12011F)) - g6_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g6_b6_n_0)); - LUT6 #( - .INIT(64'hA3502301983A818B)) - g6_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g6_b6__0_n_0)); - LUT6 #( - .INIT(64'h9815101C2F21022F)) - g6_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g6_b6__1_n_0)); - LUT6 #( - .INIT(64'h9815101C2F21022F)) - g6_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g6_b6__2_n_0)); - LUT6 #( - .INIT(64'hFABB358DE6AD2B91)) - g6_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g6_b7_n_0)); - LUT6 #( - .INIT(64'hFFE225B96FD13C8A)) - g6_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g6_b7__0_n_0)); - LUT6 #( - .INIT(64'hF5773A4ED95E1762)) - g6_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g6_b7__1_n_0)); - LUT6 #( - .INIT(64'hF5773A4ED95E1762)) - g6_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g6_b7__2_n_0)); - LUT6 #( - .INIT(64'h4C93CB456252E87E)) - g7_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g7_b0_n_0)); - LUT6 #( - .INIT(64'h94D258CDA846F347)) - g7_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g7_b0__0_n_0)); - LUT6 #( - .INIT(64'h8C63C78A91A1D4BD)) - g7_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g7_b0__1_n_0)); - LUT6 #( - .INIT(64'h8C63C78A91A1D4BD)) - g7_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g7_b0__2_n_0)); - LUT6 #( - .INIT(64'h02411B37BC076BF9)) - g7_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g7_b1_n_0)); - LUT6 #( - .INIT(64'h08849AABF0B13FCE)) - g7_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g7_b1__0_n_0)); - LUT6 #( - .INIT(64'h0182273B7C0B97F6)) - g7_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g7_b1__1_n_0)); - LUT6 #( - .INIT(64'h0182273B7C0B97F6)) - g7_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g7_b1__2_n_0)); - LUT6 #( - .INIT(64'hB2D3FA35FF37D702)) - g7_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g7_b2_n_0)); - LUT6 #( - .INIT(64'hECA67AE3FAFBC878)) - g7_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g7_b2__0_n_0)); - LUT6 #( - .INIT(64'h71E3F53AFF3BEB01)) - g7_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g7_b2__1_n_0)); - LUT6 #( - .INIT(64'h71E3F53AFF3BEB01)) - g7_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g7_b2__2_n_0)); - LUT6 #( - .INIT(64'h6CF4E517BF85CDC1)) - g7_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g7_b3_n_0)); - LUT6 #( - .INIT(64'h3657E0DB7CB954DC)) - g7_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g7_b3__0_n_0)); - LUT6 #( - .INIT(64'h9CF8DA2B7F4ACEC2)) - g7_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g7_b3__1_n_0)); - LUT6 #( - .INIT(64'h9CF8DA2B7F4ACEC2)) - g7_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g7_b3__2_n_0)); - LUT6 #( - .INIT(64'h1FE9C82F6B6B2029)) - g7_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g7_b4_n_0)); - LUT6 #( - .INIT(64'h1FBCD3C1BBCC2380)) - g7_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g7_b4__0_n_0)); - LUT6 #( - .INIT(64'h2FD6C41F97971016)) - g7_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g7_b4__1_n_0)); - LUT6 #( - .INIT(64'h2FD6C41F97971016)) - g7_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g7_b4__2_n_0)); - LUT6 #( - .INIT(64'hB74404FD1FDE29C9)) - g7_b5 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g7_b5_n_0)); - LUT6 #( - .INIT(64'h683D07979D3F358C)) - g7_b5__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g7_b5__0_n_0)); - LUT6 #( - .INIT(64'h7B8808FE2FED16C6)) - g7_b5__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g7_b5__1_n_0)); - LUT6 #( - .INIT(64'h7B8808FE2FED16C6)) - g7_b5__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g7_b5__2_n_0)); - LUT6 #( - .INIT(64'hC6BA498455997B97)) - g7_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g7_b6_n_0)); - LUT6 #( - .INIT(64'hCF52144905FABCEB)) - g7_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g7_b6__0_n_0)); - LUT6 #( - .INIT(64'hC9758648AA66B76B)) - g7_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g7_b6__1_n_0)); - LUT6 #( - .INIT(64'hC9758648AA66B76B)) - g7_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g7_b6__2_n_0)); - LUT6 #( - .INIT(64'h4B080E3ED5163222)) - g7_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g7_b7_n_0)); - LUT6 #( - .INIT(64'h19489B13C07BAA20)) - g7_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g7_b7__0_n_0)); - LUT6 #( - .INIT(64'h87040D3DEA293111)) - g7_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g7_b7__1_n_0)); - LUT6 #( - .INIT(64'h87040D3DEA293111)) - g7_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g7_b7__2_n_0)); - LUT6 #( - .INIT(64'h24A6969AA4FE19D0)) - g8_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g8_b0_n_0)); - LUT6 #( - .INIT(64'hA611CD32E717142E)) - g8_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g8_b0__0_n_0)); - LUT6 #( - .INIT(64'h1859696558FD26E0)) - g8_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g8_b0__1_n_0)); - LUT6 #( - .INIT(64'h1859696558FD26E0)) - g8_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g8_b0__2_n_0)); - LUT6 #( - .INIT(64'h654043D81A8450DB)) - g8_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g8_b1_n_0)); - LUT6 #( - .INIT(64'h205C0D4E1C2185E6)) - g8_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g8_b1__0_n_0)); - LUT6 #( - .INIT(64'h9A8083E42548A0E7)) - g8_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g8_b1__1_n_0)); - LUT6 #( - .INIT(64'h9A8083E42548A0E7)) - g8_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g8_b1__2_n_0)); - LUT6 #( - .INIT(64'h0F1AFB1F907A7CB5)) - g8_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g8_b2_n_0)); - LUT6 #( - .INIT(64'h991AF9EBC32636F3)) - g8_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g8_b2__0_n_0)); - LUT6 #( - .INIT(64'h0F25F72F60B5BC7A)) - g8_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g8_b2__1_n_0)); - LUT6 #( - .INIT(64'h0F25F72F60B5BC7A)) - g8_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g8_b2__2_n_0)); - LUT6 #( - .INIT(64'h4AC706708861C57C)) - g8_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g8_b3_n_0)); - LUT6 #( - .INIT(64'h9CC50A165284435F)) - g8_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g8_b3__0_n_0)); - LUT6 #( - .INIT(64'h85CB09B04492CABC)) - g8_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g8_b3__1_n_0)); - LUT6 #( - .INIT(64'h85CB09B04492CABC)) - g8_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g8_b3__2_n_0)); - LUT6 #( - .INIT(64'hD74A1E50ECFD94C6)) - g8_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g8_b4_n_0)); - LUT6 #( - .INIT(64'hC97C183677D7C435)) - g8_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g8_b4__0_n_0)); - LUT6 #( - .INIT(64'hEB852DA0DCFE68C9)) - g8_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g8_b4__1_n_0)); - LUT6 #( - .INIT(64'hEB852DA0DCFE68C9)) - g8_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g8_b4__2_n_0)); - LUT6 #( - .INIT(64'hD954E74FEDE9F8B4)) - g8_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g8_b6_n_0)); - LUT6 #( - .INIT(64'h506FE9DD77DC7663)) - g8_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g8_b6__0_n_0)); - LUT6 #( - .INIT(64'hE6A8DB8FDED6F478)) - g8_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g8_b6__1_n_0)); - LUT6 #( - .INIT(64'hE6A8DB8FDED6F478)) - g8_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g8_b6__2_n_0)); - LUT6 #( - .INIT(64'h743B9F075E158030)) - g8_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g8_b7_n_0)); - LUT6 #( - .INIT(64'hA3F2D8B918F34202)) - g8_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g8_b7__0_n_0)); - LUT6 #( - .INIT(64'hB8376F0BAD2A4030)) - g8_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g8_b7__1_n_0)); - LUT6 #( - .INIT(64'hB8376F0BAD2A4030)) - g8_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g8_b7__2_n_0)); - LUT6 #( - .INIT(64'h7AA6F9214334D059)) - g9_b0 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g9_b0_n_0)); - LUT6 #( - .INIT(64'hBE6172E80A4B41E6)) - g9_b0__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g9_b0__0_n_0)); - LUT6 #( - .INIT(64'hB559F6128338E0A6)) - g9_b0__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g9_b0__1_n_0)); - LUT6 #( - .INIT(64'hB559F6128338E0A6)) - g9_b0__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g9_b0__2_n_0)); - LUT6 #( - .INIT(64'hA990ABE4F9BE1939)) - g9_b1 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g9_b1_n_0)); - LUT6 #( - .INIT(64'h740A7E0DF76B13AA)) - g9_b1__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g9_b1__0_n_0)); - LUT6 #( - .INIT(64'h566057D8F67D2636)) - g9_b1__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g9_b1__1_n_0)); - LUT6 #( - .INIT(64'h566057D8F67D2636)) - g9_b1__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g9_b1__2_n_0)); - LUT6 #( - .INIT(64'h7E5B097A32926544)) - g9_b2 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g9_b2_n_0)); - LUT6 #( - .INIT(64'hB9F6930EAC22205D)) - g9_b2__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g9_b2__0_n_0)); - LUT6 #( - .INIT(64'hBDA706B531619A88)) - g9_b2__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g9_b2__1_n_0)); - LUT6 #( - .INIT(64'hBDA706B531619A88)) - g9_b2__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g9_b2__2_n_0)); - LUT6 #( - .INIT(64'h44A8966AA06CBE0D)) - g9_b3 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g9_b3_n_0)); - LUT6 #( - .INIT(64'h0750CB34630579B1)) - g9_b3__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g9_b3__0_n_0)); - LUT6 #( - .INIT(64'h88546995509C7D0E)) - g9_b3__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g9_b3__1_n_0)); - LUT6 #( - .INIT(64'h88546995509C7D0E)) - g9_b3__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g9_b3__2_n_0)); - LUT6 #( - .INIT(64'hF767B6505BFC19F4)) - g9_b4 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g9_b4_n_0)); - LUT6 #( - .INIT(64'hEAFD68361F6F162F)) - g9_b4__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g9_b4__0_n_0)); - LUT6 #( - .INIT(64'hFB9B79A0A7FC26F8)) - g9_b4__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g9_b4__1_n_0)); - LUT6 #( - .INIT(64'hFB9B79A0A7FC26F8)) - g9_b4__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g9_b4__2_n_0)); - LUT6 #( - .INIT(64'h397535794A67D448)) - g9_b6 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g9_b6_n_0)); - LUT6 #( - .INIT(64'h32AF23BE9AC54174)) - g9_b6__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g9_b6__0_n_0)); - LUT6 #( - .INIT(64'h36BA3AB6859BE884)) - g9_b6__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g9_b6__1_n_0)); - LUT6 #( - .INIT(64'h36BA3AB6859BE884)) - g9_b6__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g9_b6__2_n_0)); - LUT6 #( - .INIT(64'h2728EC106A24B31F)) - g9_b7 - (.I0(A_IBUF[0]), - .I1(A_IBUF[1]), - .I2(A_IBUF[2]), - .I3(A_IBUF[3]), - .I4(A_IBUF[4]), - .I5(A_IBUF[5]), - .O(g9_b7_n_0)); - LUT6 #( - .INIT(64'h2B1870523A41E9AB)) - g9_b7__0 - (.I0(A_IBUF[1]), - .I1(A_IBUF[2]), - .I2(A_IBUF[3]), - .I3(A_IBUF[0]), - .I4(g15_b7_i_1__1_n_0), - .I5(g15_b7_i_2__0_n_0), - .O(g9_b7__0_n_0)); - LUT6 #( - .INIT(64'h1B14DC209518732F)) - g9_b7__1 - (.I0(A_IBUF[0]), - .I1(sel[1]), - .I2(sel[2]), - .I3(sel[3]), - .I4(sel[4]), - .I5(sel[5]), - .O(g9_b7__1_n_0)); - LUT6 #( - .INIT(64'h1B14DC209518732F)) - g9_b7__2 - (.I0(A_IBUF[0]), - .I1(g15_b7_i_1__0_n_0), - .I2(g15_b7_i_2_n_0), - .I3(g15_b7_i_3_n_0), - .I4(g15_b7_i_4_n_0), - .I5(g15_b7_i_5_n_0), - .O(g9_b7__2_n_0)); +always_comb begin + case(addr_i > {12{1'b1}}) + 0: begin + read_data_o['h1f:'h1c]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][{5{1'b1}}:{3'd7,2'b00}]; + read_data_o[42-23-:`asdasdhkjasdsa]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][19:{1'b1,4'h0}]; + read_data_o[`akjsdnnaskjdn-:`asdasdhkjasdsa]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][{3{1'b1}}:{1'b1,2'h0}]; + read_data_o[42-19-:`asdasdhkjasdsa]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][23:{{2{2'b10}},1'b0}]; + read_data_o['h1b:'h18]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][27:{2'b11,3'b000}]; + read_data_o[`akjsdnnaskjdn+`asdasdhkjasdsa:(`akjsdnnaskjdn+`asdasdhkjasdsa)-`cdyfguvhbjnmk]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][11:8]; + read_data_o[`akjsdnnaskjdn-`asdasdhkjasdsa-:`asdasdhkjasdsa]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][3:0]; + read_data_o[(`akjsdnnaskjdn<<(`asdasdhkjasdsa-`cdyfguvhbjnmk)) + (`asdasdhkjasdsa-`cdyfguvhbjnmk):12 ]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][{4{1'b1}}:12]; + end + default: read_data_o = 'hBA & 'h45; + endcase +end endmodule - diff --git a/Labs/03. Register file and memory/tb_rf_riscv.sv b/Labs/03. Register file and memory/tb_rf_riscv.sv index 4b142435..a0c55f15 100644 --- a/Labs/03. Register file and memory/tb_rf_riscv.sv +++ b/Labs/03. Register file and memory/tb_rf_riscv.sv @@ -45,14 +45,14 @@ module tb_rf_riscv(); ); rf_riscv_ref DUTref( - .clk(CLK ), - .A1 (RA1 ), - .A2 (RA2 ), - .A3 (WA ), - .WD3(WD ), - .WE (WE ), - .RD1(RD1ref), - .RD2(RD2ref) + .clk_i (CLK ), + .read_addr1_i (RA1 ), + .read_addr2_i (RA2 ), + .write_addr_i (WA ), + .write_data_i (WD ), + .write_enable_i(WE ), + .read_data1_o (RD1ref), + .read_data2_o (RD2ref) ); integer i, err_count = 0; @@ -153,1062 +153,65 @@ module tb_rf_riscv(); end endmodule +module rf_riscv_ref( + input logic clk_i, + input logic write_enable_i, -(* STRUCTURAL_NETLIST = "yes" *) -module rf_riscv_ref - (clk, - A1, - A2, - A3, - WD3, - WE, - RD1, - RD2); - input clk; - input [4:0]A1; - input [4:0]A2; - input [4:0]A3; - input [31:0]WD3; - input WE; - output [31:0]RD1; - output [31:0]RD2; + input logic [ 4:0] write_addr_i, + input logic [ 4:0] read_addr1_i, + input logic [ 4:0] read_addr2_i, - wire \ ; - wire [4:0]A1; - wire [4:0]A2; - wire [4:0]A3; - wire [31:0]RD1; - wire [31:0]RD11; - wire [31:0]RD2; - wire [31:0]RD21; - wire [31:0]WD3; - wire WE; - wire clk; + input logic [31:0] write_data_i, + output logic [31:0] read_data1_o, + output logic [31:0] read_data2_o +); +logic [31:0] rf_mem [0:31]; + +`define akjsdnnaskjdnreg $clog2(128) +`define cdyfguvhbjnmkreg $clog2(`akjsdnnaskjdnreg) +`define qwenklfsaklasdreg $clog2(`cdyfguvhbjnmkreg) +`define asdasdhkjasdsareg (34 >> `cdyfguvhbjnmkreg) + +always_ff @(posedge clk_i) begin + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][{5{1'b1}}:{3'd7,2'b00}] <= write_data_i['h1f:'h1c]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][19:{1'b1,4'h0}] <= write_data_i[42-23-:`asdasdhkjasdsareg]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][{3{1'b1}}:{1'b1,2'h0}] <= write_data_i[`akjsdnnaskjdnreg-:`asdasdhkjasdsareg]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][23:{{2{2'b10}},1'b0}] <= write_data_i[42-19-:`asdasdhkjasdsareg]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][27:{2'b11,3'b000}] <= write_data_i['h1b:'h18]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][11:{1'b1,{3{1'b0}}}] <= write_data_i[`akjsdnnaskjdnreg+`asdasdhkjasdsareg:(`akjsdnnaskjdnreg+`asdasdhkjasdsareg)-`cdyfguvhbjnmkreg]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][{2{1'b1}}:{3{1'b0}}] <= write_data_i[`akjsdnnaskjdnreg-`asdasdhkjasdsareg-:`asdasdhkjasdsareg]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][{4{1'b1}}:4'b1100] <= write_data_i[(`akjsdnnaskjdnreg<<(`asdasdhkjasdsareg-`cdyfguvhbjnmkreg)) + (`asdasdhkjasdsareg-`cdyfguvhbjnmkreg):12]; +end + +always_comb begin + case(read_addr1_i === ('hBA & 'h45)) + 0: begin + read_data1_o['h1f:'h1c]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][{5{1'b1}}:{3'd7,2'b00}]; + read_data1_o[42-23-:`asdasdhkjasdsareg]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][19:{1'b1,4'h0}]; + read_data1_o[`akjsdnnaskjdnreg-:`asdasdhkjasdsareg]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][{3{1'b1}}:{1'b1,2'h0}]; + read_data1_o[42-19-:`asdasdhkjasdsareg]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][23:{{2{2'b10}},1'b0}]; + read_data1_o['h1b:'h18]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][27:{2'b11,3'b000}]; + read_data1_o[`akjsdnnaskjdnreg+`asdasdhkjasdsareg:(`akjsdnnaskjdnreg+`asdasdhkjasdsareg)-`cdyfguvhbjnmkreg]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][11:8]; + read_data1_o[`akjsdnnaskjdnreg-`asdasdhkjasdsareg-:`asdasdhkjasdsareg]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][3:0]; + read_data1_o[(`akjsdnnaskjdnreg<<(`asdasdhkjasdsareg-`cdyfguvhbjnmkreg)) + (`asdasdhkjasdsareg-`cdyfguvhbjnmkreg):12 ]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][{4{1'b1}}:12]; + end + default: read_data1_o = 'hBA & 'h45; + endcase +end +always_comb begin + case(read_addr2_i === ('hBA & 'h45)) + 0: begin + read_data2_o['h1f:'h1c]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][{5{1'b1}}:{3'd7,2'b00}]; + read_data2_o[42-23-:`asdasdhkjasdsareg]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][19:{1'b1,4'h0}]; + read_data2_o[`akjsdnnaskjdnreg-:`asdasdhkjasdsareg]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][{3{1'b1}}:{1'b1,2'h0}]; + read_data2_o[42-19-:`asdasdhkjasdsareg]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][23:{{2{2'b10}},1'b0}]; + read_data2_o['h1b:'h18]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][27:{2'b11,3'b000}]; + read_data2_o[`akjsdnnaskjdnreg+`asdasdhkjasdsareg:(`akjsdnnaskjdnreg+`asdasdhkjasdsareg)-`cdyfguvhbjnmkreg]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][11:8]; + read_data2_o[`akjsdnnaskjdnreg-`asdasdhkjasdsareg-:`asdasdhkjasdsareg]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][3:0]; + read_data2_o[(`akjsdnnaskjdnreg<<(`asdasdhkjasdsareg-`cdyfguvhbjnmkreg)) + (`asdasdhkjasdsareg-`cdyfguvhbjnmkreg):12 ]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][{4{1'b1}}:12]; + end + default: read_data2_o = 'hBA & 'h45; + endcase +end - GND GND - (.G(\ )); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "0" *) - (* ram_slice_end = "5" *) - RAM32M #( - .INIT_A(64'h0000000000000000), - .INIT_B(64'h0000000000000000), - .INIT_C(64'h0000000000000000), - .INIT_D(64'h0000000000000000)) - RAM_reg_r1_0_31_0_5 - (.ADDRA(A1), - .ADDRB(A1), - .ADDRC(A1), - .ADDRD(A3), - .DIA(WD3[1:0]), - .DIB(WD3[3:2]), - .DIC(WD3[5:4]), - .DID({\ ,\ }), - .DOA(RD11[1:0]), - .DOB(RD11[3:2]), - .DOC(RD11[5:4]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "12" *) - (* ram_slice_end = "17" *) - RAM32M #( - .INIT_A(64'h0000000000000000), - .INIT_B(64'h0000000000000000), - .INIT_C(64'h0000000000000000), - .INIT_D(64'h0000000000000000)) - RAM_reg_r1_0_31_12_17 - (.ADDRA(A1), - .ADDRB(A1), - .ADDRC(A1), - .ADDRD(A3), - .DIA(WD3[13:12]), - .DIB(WD3[15:14]), - .DIC(WD3[17:16]), - .DID({\ ,\ }), - .DOA(RD11[13:12]), - .DOB(RD11[15:14]), - .DOC(RD11[17:16]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "18" *) - (* ram_slice_end = "23" *) - RAM32M #( - .INIT_A(64'h0000000000000000), - .INIT_B(64'h0000000000000000), - .INIT_C(64'h0000000000000000), - .INIT_D(64'h0000000000000000)) - RAM_reg_r1_0_31_18_23 - (.ADDRA(A1), - .ADDRB(A1), - .ADDRC(A1), - .ADDRD(A3), - .DIA(WD3[19:18]), - .DIB(WD3[21:20]), - .DIC(WD3[23:22]), - .DID({\ ,\ }), - .DOA(RD11[19:18]), - .DOB(RD11[21:20]), - .DOC(RD11[23:22]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "24" *) - (* ram_slice_end = "29" *) - RAM32M #( - .INIT_A(64'h0000000000000000), - .INIT_B(64'h0000000000000000), - .INIT_C(64'h0000000000000000), - .INIT_D(64'h0000000000000000)) - RAM_reg_r1_0_31_24_29 - (.ADDRA(A1), - .ADDRB(A1), - .ADDRC(A1), - .ADDRD(A3), - .DIA(WD3[25:24]), - .DIB(WD3[27:26]), - .DIC(WD3[29:28]), - .DID({\ ,\ }), - .DOA(RD11[25:24]), - .DOB(RD11[27:26]), - .DOC(RD11[29:28]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "30" *) - (* ram_slice_end = "31" *) - RAM32X1D #( - .INIT(32'h00000000)) - RAM_reg_r1_0_31_30_31 - (.A0(A3[0]), - .A1(A3[1]), - .A2(A3[2]), - .A3(A3[3]), - .A4(A3[4]), - .D(WD3[30]), - .DPO(RD11[30]), - .DPRA0(A1[0]), - .DPRA1(A1[1]), - .DPRA2(A1[2]), - .DPRA3(A1[3]), - .DPRA4(A1[4]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "30" *) - (* ram_slice_end = "31" *) - RAM32X1D #( - .INIT(32'h00000000)) - RAM_reg_r1_0_31_30_31__0 - (.A0(A3[0]), - .A1(A3[1]), - .A2(A3[2]), - .A3(A3[3]), - .A4(A3[4]), - .D(WD3[31]), - .DPO(RD11[31]), - .DPRA0(A1[0]), - .DPRA1(A1[1]), - .DPRA2(A1[2]), - .DPRA3(A1[3]), - .DPRA4(A1[4]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "6" *) - (* ram_slice_end = "11" *) - RAM32M #( - .INIT_A(64'h0000000000000000), - .INIT_B(64'h0000000000000000), - .INIT_C(64'h0000000000000000), - .INIT_D(64'h0000000000000000)) - RAM_reg_r1_0_31_6_11 - (.ADDRA(A1), - .ADDRB(A1), - .ADDRC(A1), - .ADDRD(A3), - .DIA(WD3[7:6]), - .DIB(WD3[9:8]), - .DIC(WD3[11:10]), - .DID({\ ,\ }), - .DOA(RD11[7:6]), - .DOB(RD11[9:8]), - .DOC(RD11[11:10]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "0" *) - (* ram_slice_end = "5" *) - RAM32M #( - .INIT_A(64'h0000000000000000), - .INIT_B(64'h0000000000000000), - .INIT_C(64'h0000000000000000), - .INIT_D(64'h0000000000000000)) - RAM_reg_r2_0_31_0_5 - (.ADDRA(A2), - .ADDRB(A2), - .ADDRC(A2), - .ADDRD(A3), - .DIA(WD3[1:0]), - .DIB(WD3[3:2]), - .DIC(WD3[5:4]), - .DID({\ ,\ }), - .DOA(RD21[1:0]), - .DOB(RD21[3:2]), - .DOC(RD21[5:4]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "12" *) - (* ram_slice_end = "17" *) - RAM32M #( - .INIT_A(64'h0000000000000000), - .INIT_B(64'h0000000000000000), - .INIT_C(64'h0000000000000000), - .INIT_D(64'h0000000000000000)) - RAM_reg_r2_0_31_12_17 - (.ADDRA(A2), - .ADDRB(A2), - .ADDRC(A2), - .ADDRD(A3), - .DIA(WD3[13:12]), - .DIB(WD3[15:14]), - .DIC(WD3[17:16]), - .DID({\ ,\ }), - .DOA(RD21[13:12]), - .DOB(RD21[15:14]), - .DOC(RD21[17:16]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "18" *) - (* ram_slice_end = "23" *) - RAM32M #( - .INIT_A(64'h0000000000000000), - .INIT_B(64'h0000000000000000), - .INIT_C(64'h0000000000000000), - .INIT_D(64'h0000000000000000)) - RAM_reg_r2_0_31_18_23 - (.ADDRA(A2), - .ADDRB(A2), - .ADDRC(A2), - .ADDRD(A3), - .DIA(WD3[19:18]), - .DIB(WD3[21:20]), - .DIC(WD3[23:22]), - .DID({\ ,\ }), - .DOA(RD21[19:18]), - .DOB(RD21[21:20]), - .DOC(RD21[23:22]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "24" *) - (* ram_slice_end = "29" *) - RAM32M #( - .INIT_A(64'h0000000000000000), - .INIT_B(64'h0000000000000000), - .INIT_C(64'h0000000000000000), - .INIT_D(64'h0000000000000000)) - RAM_reg_r2_0_31_24_29 - (.ADDRA(A2), - .ADDRB(A2), - .ADDRC(A2), - .ADDRD(A3), - .DIA(WD3[25:24]), - .DIB(WD3[27:26]), - .DIC(WD3[29:28]), - .DID({\ ,\ }), - .DOA(RD21[25:24]), - .DOB(RD21[27:26]), - .DOC(RD21[29:28]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "30" *) - (* ram_slice_end = "31" *) - RAM32X1D #( - .INIT(32'h00000000)) - RAM_reg_r2_0_31_30_31 - (.A0(A3[0]), - .A1(A3[1]), - .A2(A3[2]), - .A3(A3[3]), - .A4(A3[4]), - .D(WD3[30]), - .DPO(RD21[30]), - .DPRA0(A2[0]), - .DPRA1(A2[1]), - .DPRA2(A2[2]), - .DPRA3(A2[3]), - .DPRA4(A2[4]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "30" *) - (* ram_slice_end = "31" *) - RAM32X1D #( - .INIT(32'h00000000)) - RAM_reg_r2_0_31_30_31__0 - (.A0(A3[0]), - .A1(A3[1]), - .A2(A3[2]), - .A3(A3[3]), - .A4(A3[4]), - .D(WD3[31]), - .DPO(RD21[31]), - .DPRA0(A2[0]), - .DPRA1(A2[1]), - .DPRA2(A2[2]), - .DPRA3(A2[3]), - .DPRA4(A2[4]), - .WCLK(clk), - .WE(WE)); - (* METHODOLOGY_DRC_VIOS = "" *) - (* RTL_RAM_BITS = "1024" *) - (* RTL_RAM_NAME = "RAM" *) - (* RTL_RAM_TYPE = "RAM_SDP" *) - (* ram_addr_begin = "0" *) - (* ram_addr_end = "31" *) - (* ram_offset = "0" *) - (* ram_slice_begin = "6" *) - (* ram_slice_end = "11" *) - RAM32M #( - .INIT_A(64'h0000000000000000), - .INIT_B(64'h0000000000000000), - .INIT_C(64'h0000000000000000), - .INIT_D(64'h0000000000000000)) - RAM_reg_r2_0_31_6_11 - (.ADDRA(A2), - .ADDRB(A2), - .ADDRC(A2), - .ADDRD(A3), - .DIA(WD3[7:6]), - .DIB(WD3[9:8]), - .DIC(WD3[11:10]), - .DID({\ ,\ }), - .DOA(RD21[7:6]), - .DOB(RD21[9:8]), - .DOC(RD21[11:10]), - .WCLK(clk), - .WE(WE)); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[0]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[0]), - .O(RD1[0])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[10]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[10]), - .O(RD1[10])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[11]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[11]), - .O(RD1[11])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[12]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[12]), - .O(RD1[12])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[13]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[13]), - .O(RD1[13])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[14]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[14]), - .O(RD1[14])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[15]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[15]), - .O(RD1[15])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[16]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[16]), - .O(RD1[16])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[17]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[17]), - .O(RD1[17])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[18]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[18]), - .O(RD1[18])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[19]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[19]), - .O(RD1[19])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[1]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[1]), - .O(RD1[1])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[20]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[20]), - .O(RD1[20])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[21]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[21]), - .O(RD1[21])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[22]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[22]), - .O(RD1[22])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[23]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[23]), - .O(RD1[23])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[24]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[24]), - .O(RD1[24])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[25]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[25]), - .O(RD1[25])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[26]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[26]), - .O(RD1[26])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[27]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[27]), - .O(RD1[27])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[28]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[28]), - .O(RD1[28])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[29]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[29]), - .O(RD1[29])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[2]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[2]), - .O(RD1[2])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[30]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[30]), - .O(RD1[30])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[31]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[31]), - .O(RD1[31])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[3]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[3]), - .O(RD1[3])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[4]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[4]), - .O(RD1[4])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[5]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[5]), - .O(RD1[5])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[6]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[6]), - .O(RD1[6])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[7]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[7]), - .O(RD1[7])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[8]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[8]), - .O(RD1[8])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD1[9]_INST_0 - (.I0(A1[2]), - .I1(A1[1]), - .I2(A1[4]), - .I3(A1[3]), - .I4(A1[0]), - .I5(RD11[9]), - .O(RD1[9])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[0]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[0]), - .O(RD2[0])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[10]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[10]), - .O(RD2[10])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[11]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[11]), - .O(RD2[11])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[12]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[12]), - .O(RD2[12])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[13]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[13]), - .O(RD2[13])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[14]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[14]), - .O(RD2[14])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[15]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[15]), - .O(RD2[15])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[16]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[16]), - .O(RD2[16])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[17]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[17]), - .O(RD2[17])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[18]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[18]), - .O(RD2[18])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[19]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[19]), - .O(RD2[19])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[1]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[1]), - .O(RD2[1])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[20]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[20]), - .O(RD2[20])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[21]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[21]), - .O(RD2[21])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[22]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[22]), - .O(RD2[22])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[23]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[23]), - .O(RD2[23])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[24]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[24]), - .O(RD2[24])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[25]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[25]), - .O(RD2[25])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[26]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[26]), - .O(RD2[26])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[27]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[27]), - .O(RD2[27])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[28]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[28]), - .O(RD2[28])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[29]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[29]), - .O(RD2[29])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[2]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[2]), - .O(RD2[2])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[30]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[30]), - .O(RD2[30])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[31]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[31]), - .O(RD2[31])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[3]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[3]), - .O(RD2[3])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[4]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[4]), - .O(RD2[4])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[5]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[5]), - .O(RD2[5])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[6]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[6]), - .O(RD2[6])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[7]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[7]), - .O(RD2[7])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[8]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[8]), - .O(RD2[8])); - LUT6 #( - .INIT(64'hFFFFFFFE00000000)) - \RD2[9]_INST_0 - (.I0(A2[2]), - .I1(A2[1]), - .I2(A2[4]), - .I3(A2[3]), - .I4(A2[0]), - .I5(RD21[9]), - .O(RD2[9])); endmodule diff --git a/Labs/04. Primitive programmable device/board files/demo.txt b/Labs/04. Primitive programmable device/board files/demo.txt index ce6ec5f4..c7215817 100644 --- a/Labs/04. Primitive programmable device/board files/demo.txt +++ b/Labs/04. Primitive programmable device/board files/demo.txt @@ -1,380 +1,95 @@ -21 -42 -07 -00 -02 -02 -00 -00 -01 -40 -84 -10 -63 -94 -11 -00 -01 -60 -04 -10 -0c -00 -06 -00 -0d -40 -01 -00 -0e -02 -00 -00 -2f -00 -00 -00 -0c -40 -b0 -10 -0d -40 -b4 -10 -0e -40 -b8 -10 -0f -40 -bc -10 -10 -00 -10 -00 -11 -80 -01 -00 -12 -14 -00 -00 -73 -00 -00 -00 -22 -00 -00 -00 -43 -00 -00 -00 -84 -00 -00 -00 -05 -01 -00 -00 -06 -02 -00 -00 -07 -04 -00 -00 -08 -08 -00 -00 -09 -10 -00 -00 -ea -1f -00 -00 -0b -00 -04 -20 -00 -00 -04 -30 -00 -00 -04 -30 -00 -00 -04 -30 -00 -00 -04 -30 -00 -00 -04 -30 -00 -00 -04 -30 -00 -00 -04 -30 -00 -00 -04 -30 -00 -00 -04 -30 -c0 -7e -a9 -7e -0b -40 -ad -13 -20 -45 -2c -7c -40 -65 -2c -7c -60 -85 -2c -7c -80 -a5 -2c -7c -a0 -c5 -2c -7c -c0 -e5 -2c -7c -e0 -05 -2d -7c -00 -26 -2d -7c -14 -60 -86 -13 -00 -02 -50 -7c -14 -40 -86 -13 -00 -02 -50 -7c -14 -20 -86 -13 -00 -02 -50 -7c -14 -00 -86 -13 -00 -02 -50 -7c -14 -e0 -85 -13 -00 -02 -50 -7c -14 -c0 -85 -13 -00 -02 -50 -7c -14 -a0 -85 -13 -00 -02 -50 -7c -14 -80 -85 -13 -00 -02 -50 -7c -00 -04 -04 -bc -01 -60 -06 -13 -c0 -03 -04 -bc -01 -40 -06 -13 -80 -03 -04 -bc -01 -20 -06 -13 -40 -03 -04 -bc -01 -00 -06 -13 -00 -03 -04 -bc -01 -e0 -05 -13 -c0 -02 -04 -bc -01 -c0 -05 -13 -80 -02 -04 -bc -01 -a0 -05 -13 -40 -02 -04 -bc -01 -80 -05 -13 -00 -02 -04 -bc -01 -60 -06 -12 -c0 -01 -04 -bc -01 -40 -06 -12 -80 -01 -04 -bc -01 -20 -06 -12 -40 -01 -04 -bc -01 -00 -06 -12 -00 -01 -04 -bc -01 -e0 -05 -12 -c0 -00 -04 -bc -01 -c0 -05 -12 -80 -00 -04 -bc -01 -a0 -05 -12 -40 -00 -04 -bc -01 -80 -05 -12 -60 -17 -04 -bc +00074221 +00000202 +10844001 +00119463 +10046001 +0006000c +0001400d +0000020e +0000002f +10b0400c +10b4400d +10b8400e +10bc400f +00100010 +00018011 +00001412 +00000073 +00000022 +00000043 +00000084 +00000105 +00000206 +00000407 +00000808 +00001009 +00001fea +2004000b +30040000 +30040000 +30040000 +30040000 +30040000 +30040000 +30040000 +30040000 +30040000 +7ea97ec0 +13ad400b +7c2c4520 +7c2c6540 +7c2c8560 +7c2ca580 +7c2cc5a0 +7c2ce5c0 +7c2d05e0 +7c2d2600 +13866014 +7c500200 +13864014 +7c500200 +13862014 +7c500200 +13860014 +7c500200 +1385e014 +7c500200 +1385c014 +7c500200 +1385a014 +7c500200 +13858014 +7c500200 +bc040400 +13066001 +bc0403c0 +13064001 +bc040380 +13062001 +bc040340 +13060001 +bc040300 +1305e001 +bc0402c0 +1305c001 +bc040280 +1305a001 +bc040240 +13058001 +bc040200 +12066001 +bc0401c0 +12064001 +bc040180 +12062001 +bc040140 +12060001 +bc040100 +1205e001 +bc0400c0 +1205c001 +bc040080 +1205a001 +bc040040 +12058001 +bc041760 diff --git a/Labs/04. Primitive programmable device/example.txt b/Labs/04. Primitive programmable device/example.txt index 88e8f2d3..7c67ae60 100644 --- a/Labs/04. Primitive programmable device/example.txt +++ b/Labs/04. Primitive programmable device/example.txt @@ -1,24 +1,6 @@ -E1 -FF -FF -0F -02 -00 -00 -20 -23 -00 -00 -00 -01 -60 -04 -10 -E0 -5F -04 -4F -00 -00 -04 -80 +0FFFFFE1 +20000002 +00000023 +10046001 +4F045FE0 +80040000 diff --git "a/Labs/04. Primitive programmable device/\320\230\320\275\320\264\320\270\320\262\320\270\320\264\321\203\320\260\320\273\321\214\320\275\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/README.md" "b/Labs/04. Primitive programmable device/\320\230\320\275\320\264\320\270\320\262\320\270\320\264\321\203\320\260\320\273\321\214\320\275\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/README.md" index bab05504..48e555b2 100644 --- "a/Labs/04. Primitive programmable device/\320\230\320\275\320\264\320\270\320\262\320\270\320\264\321\203\320\260\320\273\321\214\320\275\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/README.md" +++ "b/Labs/04. Primitive programmable device/\320\230\320\275\320\264\320\270\320\262\320\270\320\264\321\203\320\260\320\273\321\214\320\275\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/README.md" @@ -144,7 +144,7 @@ [cyberconverter](cyberconverter.cpp) — это программа, которая преобразует текстовый файл с инструкциями архитектуры CYBERcobra в текстовый файл, который сможет принять память инструкций. -cyberconverter может обрабатывать файлы, содержащие комментарии (начинающиеся с `//`), пробелы и пустые строки, а так же наборы символов `0` и `1`. Комментарии, пробелы и пустые строки удаляются, после чего оставшиеся строки из 32 нулей и единиц нарезаются на четверки по 8 бит, конвертируются в шестнадцатиричные значения и записываются в выходной файл. +cyberconverter может обрабатывать файлы, содержащие комментарии (начинающиеся с `//`), пробелы и пустые строки, а так же наборы символов `0` и `1`. Комментарии, пробелы и пустые строки удаляются, после чего оставшиеся строки из 32 нулей и единиц конвертируются в шестнадцатиричные значения и записываются в выходной файл. cyberconverter принимает до двух аргументов. Порядок запуска следующий: diff --git "a/Labs/04. Primitive programmable device/\320\230\320\275\320\264\320\270\320\262\320\270\320\264\321\203\320\260\320\273\321\214\320\275\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/cyberconverter.cpp" "b/Labs/04. Primitive programmable device/\320\230\320\275\320\264\320\270\320\262\320\270\320\264\321\203\320\260\320\273\321\214\320\275\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/cyberconverter.cpp" index dce2c1cb..f689b74b 100644 --- "a/Labs/04. Primitive programmable device/\320\230\320\275\320\264\320\270\320\262\320\270\320\264\321\203\320\260\320\273\321\214\320\275\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/cyberconverter.cpp" +++ "b/Labs/04. Primitive programmable device/\320\230\320\275\320\264\320\270\320\262\320\270\320\264\321\203\320\260\320\273\321\214\320\275\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/cyberconverter.cpp" @@ -12,7 +12,7 @@ void print_help(const std::string program_name) cout << "CYBERcobra program file may contain only comments (starting with \"//\"),\n"; cout << "whitespaces and binary digits '0' or '1'.\n"; cout << "This program will erase this parts from every line and then convert\n"; - cout << "32-bits binary strings into 4 little endian 8-bit strings in hex-format.\n\n"; + cout << "in hex-format.\n\n"; cout << "If output file omitted, the _converted.\n"; cout << "will be produced.\n\n"; cout << "If input file omitted, program.txt will be used.\n\n"; @@ -109,26 +109,20 @@ int main(int argc, char ** argv) cerr << "line " << line_counter << " length is not equal 32 after trimming comments and whitespaces" << endl; return -2; } - // split 32-bits binary line into 4 little-endian hex lines and write them into file - for (size_t i = 0; i < 4; i++) + // Convert into hex lines and write them into file + size_t valid_char_num; + uint32_t cur_word = std::stoll(str, &valid_char_num, 2); + if(valid_char_num != 32) { - // For every 8-bit part of 32-bit line get int representation. - // If illegal character found, throw error. - size_t valid_char_num; - string byte_substr = str.substr(8*(3-i), 8); - int cur_byte = std::stoi(byte_substr, &valid_char_num, 2); - if(valid_char_num != 8) - { - cerr << "Illegal character '" << byte_substr.at(valid_char_num) << - "' found in line " << line_counter << ": \"" << str << "\"\n"; - cerr << "Should be only '0' or '1'." << endl; - return -3; - } - char hex_byte_str[3]; + cerr << "Illegal character '" << str.at(valid_char_num) << + "' found in line " << line_counter << ": \"" << str << "\"\n"; + cerr << "Should be only '0' or '1'." << endl; + return -3; + } + char hex_byte_str[9]; // convert int representation into hex string - snprintf(hex_byte_str, 3, "%02x", cur_byte); + snprintf(hex_byte_str, 9, "%08x", cur_word); ofs << hex_byte_str << "\n"; - } } ifs.close(); ofs.close(); diff --git a/Labs/11. Interrupt integration/README.md b/Labs/11. Interrupt integration/README.md index 93eb8505..6d84ad28 100644 --- a/Labs/11. Interrupt integration/README.md +++ b/Labs/11. Interrupt integration/README.md @@ -18,7 +18,9 @@ ## Порядок выполнения работы 1. Интегрируйте модули `csr_controller` и `irq_controller` в модуль `riscv_core`. - 1. Обратите внимание, что что в модуле `riscv_core` появились новые входные и выходные сигналы. Эти сигналы должны быть подключены и в модуле `riscv_unit` (просто в виде проводов, которые с другой стороны не подключены ни к чему, в следующей лабораторной мы найдем им применение). + 1. Обратите внимание, что что в модуле `riscv_core` появились новые входные и выходные сигналы: `irq_req_i` и `irq_ret_o`. Эти сигналы должны быть использованы при подключении `riscv_core` в модуле `riscv_unit`. + 1. На вход `irq_req_i` пока что необходимо подать `32'd0` (в следующей лабораторной это будет изменено). + 2. При подключении сигнала `irq_ret_o` можно ничего не указывать (до следующей лабораторной к нему ничего не будет подключено). 2. Большой мультиплексор на схеме, определяющий записываемое в `PC` значение является мультиплексором с приоритетами (в первую очередь проверяется сигнал `trap`, затем, если он равен нулю, проверяется сигнал `mret`, и только если оба предыдущих равны нулю выдается значение `default`). Такой мультиплексор можно описать как на цепочке выражений `if-else-if`, так и с помощью выражения `case` в качестве управляющего сигнала которого подана единица, а выбор осуществляется не по значениям, а по сигналам: ```SystemVerilog diff --git a/Labs/12. Peripheral units/README.md b/Labs/12. Peripheral units/README.md index 7078611b..68b40fd4 100644 --- a/Labs/12. Peripheral units/README.md +++ b/Labs/12. Peripheral units/README.md @@ -1,4 +1,4 @@ -# Лабораторная работа 7 "Периферийные устройства" +# Лабораторная работа 12 "Периферийные устройства" На прошлой лабораторной работе вы реализовали свой собственный RISC-V процессор. Однако пока что он находится "в вакууме" и никак не связан с внешним миром. Для исправления этого недостатка вами будет реализована системная шина, через которую к процессору смогут подключаться различные периферийные устройства. @@ -35,15 +35,15 @@ ### Адресное пространство -Архитектура RISC-V подразумевает использование совместного адресного пространства, это значит, что в лабораторной работе будет использована единая шина для подключения памяти и регистров управления периферийными устройствами. При обращении по одному диапазону адресов процессор будет -попадать в память, при обращении по другим – взаимодействовать с регистрами управления/статуса периферийного устройства. Например, можно разделить 32-битное адресное пространство на 256 частей, отдав старшие 8 бит адреса под указание конкретного периферийного устройства. Тогда каждое из периферийных устройств получит 24-битное адресное пространство (16 MiB). Допустим, мы распределили эти части адресного пространства в следующем порядке (от младшего диапазона адресов к старшему): +Архитектура RISC-V подразумевает использование совместного адресного пространства, это значит, что в лабораторной работе будет использована единая шина для подключения памяти и регистров управления периферийными устройствами. При обращении по одному диапазону адресов процессор будет попадать в память, при обращении по другим – взаимодействовать с регистрами управления/статуса периферийного устройства. Например, можно разделить 32-битное адресное пространство на 256 частей, отдав старшие 8 бит адреса под указание конкретного периферийного устройства. Тогда каждое из периферийных устройств получит 24-битное адресное пространство (16 MiB). Допустим, мы распределили эти части адресного пространства в следующем порядке (от младшего диапазона адресов к старшему): -0. Переключатели -1. Светодиоды -2. Клавиатура PS/2 -3. Семисегментные индикаторы -4. UART-приемник -5. UART-передатчик +0. Память данных +1. Переключатели +2. Светодиоды +3. Клавиатура PS/2 +4. Семисегментные индикаторы +5. UART-приемник +6. UART-передатчик В таком случае, если мы захотим обратиться в четвертый регистр семисегментных индикаторов, мы должны будем использовать адрес `0x03000004`. Старшие 8 бит (`0x03`) определяют выбранное периферийное устройство, оставшиеся 24 бита определяют конкретный адрес в адресном пространстве этого устройства. @@ -51,11 +51,13 @@ ![../../.pic/Labs/lab_12_periph/fig_01.drawio.png](../../.pic/Labs/lab_12_periph/fig_01.drawio.png) +_Рисунок 1. Итоговая структура процессорной системы_ + ### Активация выбранного устройства В зависимости от интерфейса используемой шины, периферийные устройства либо знают какой диапазон адресов им выделен (например, в интерфейсе I²C), либо нет (интерфейс APB). В первом случае, устройство понимает что к нему обратились непосредственно по адресу в данном обращении, во втором случае — по специальному сигналу. -На приведенной выше схеме используется второй вариант — устройство понимает, что к нему обратились по специальному сигналу `req_i`. Данный сигнал формируется из двух частей: сигнала `req` исходящего из процессорного ядра (сигнал о том, обращение в память вообще происходит) и специального сигнала-селектора исходящего из 256-разрядной шины. Формирование значения на этой шине происходит с помощью [унитарного](https://ru.wikipedia.org/wiki/Унитарный_код) ([one-hot](https://en.wikipedia.org/wiki/One-hot)) кодирования. Процесс кодирования достаточно прост. В любой момент времени на выходной шине должен быть **ровно один** бит, равный единице. Индекс этого бита совпадает со значением старших восьми бит адреса. Поскольку для восьмибитного значения существует 256 комбинаций значений, именно такая разрядность будет на выходе кодировщика. Это означает, что в данной системе можно связать процессор с 256 устройствами (одним из которых будет память данных). +На _рис. 1_ используется второй вариант — устройство понимает, что к нему обратились по специальному сигналу `req_i`. Данный сигнал формируется из двух частей: сигнала `req` исходящего из процессорного ядра (сигнал о том, обращение в память вообще происходит) и специального сигнала-селектора исходящего из 256-разрядной шины. Формирование значения на этой шине происходит с помощью [унитарного](https://ru.wikipedia.org/wiki/Унитарный_код) ([one-hot](https://en.wikipedia.org/wiki/One-hot)) кодирования. Процесс кодирования достаточно прост. В любой момент времени на выходной шине должен быть **ровно один** бит, равный единице. Индекс этого бита совпадает со значением старших восьми бит адреса. Поскольку для восьмибитного значения существует 256 комбинаций значений, именно такая разрядность будет на выходе кодировщика. Это означает, что в данной системе можно связать процессор с 256 устройствами (одним из которых будет память данных). Реализация такого кодирования предельно проста: @@ -64,7 +66,7 @@ * ... * Двести пятьдесят пятый бит шины будет равен единице только если `data_addr_o[31:24] = 8'd255`. -Для реализации такого кодирования достаточно выполнить сдвиг влево `255'd1` на значение `data_addr_o[31:24]`. +Для реализации такого кодирования достаточно выполнить сдвиг влево константы `255'd1` на значение `data_addr_o[31:24]`. ### Дополнительные правки модуля riscv_unit @@ -91,7 +93,7 @@ module riscv_unit( endmodule ``` -Эти входы порты подключены к одноименным портам ваших контроллеров периферии (речь идет только о реализуемых вами контроллерах, остальные порты должны остаться неподключенными). +Эти порты подключены к одноименным портам ваших контроллеров периферии (речь идет только о реализуемых вами контроллерах, остальные порты должны остаться неподключенными). Обратите внимание на то, что изменился сигнал сброса (`resetn_i`). Буква `n` на конце означает, что сброс работает по уровню `0` (когда сигнал равен нулю — это сброс, когда единице — не сброс). @@ -99,8 +101,8 @@ endmodule Для этого необходимо: -1. Подключить файл [`sys_clk_rst_gen.v`](sys_clk_rst_gen.v) в ваш проект. -2. Подключить этот модуль внутри `riscv_unit` следующим образом: +1. Подключить файл [`sys_clk_rst_gen.sv`](sys_clk_rst_gen.sv) в ваш проект. +2. Подключить этот модуль в начале описания модуля `riscv_unit` следующим образом: ```SystemVerilog logic sysclk, rst; @@ -113,19 +115,19 @@ sys_clk_rst_gen divider(.ex_clk_i(clk_i),.ex_areset_n_i(resetn_i),.div_i(10),.sy ## Задание -В рамках данной лабораторной работы необходимо реализовать модули-контроллеры двух периферийных устройств, реализующих управление в соответствии с приведенной ниже картой памяти и встроить их в процессорную систему, используя используя схему приведенную выше. На карте приведено шесть периферийных устройств, вам необходимо взять только два из них в зависимости от вашего варианта индивидуального задания (ИЗ) по следующему правилу: +В рамках данной лабораторной работы необходимо реализовать модули-контроллеры двух периферийных устройств, реализующих управление в соответствии с приведенной ниже картой памяти и встроить их в процессорную систему, используя используя [_рис. 1_](../../.pic/Labs/lab_12_periph/fig_01.drawio.png). На карте приведено шесть периферийных устройств, вам необходимо взять только два из них в зависимости от вашего варианта индивидуального задания (ИЗ) по следующему правилу: 1. Те кому достались варианты ИЗ 1-5 должны реализовать контроллеры переключателей и светодиодов. 2. Те кому достались варианты ИЗ 6-15 должны реализовать контроллеры клавиатуры PS/2 и семисегментных индикаторов. 3. Те кому достались варианты BP 16-29 должны реализовать контроллеры приемника и передатчика UART. -![Карта памяти](../../.pic/Labs/riscv_periph_memory_map.png) +![Карта памяти](../../.pic/Labs/lab_12_periph/fig_02.png) Работа с картой осуществляется следующим образом. Под названием каждого периферийного устройства указана старшая часть адреса (чему должны быть равны старшие 8 бит адреса, чтобы было сформировано обращение к данному периферийному устройству). Например, для переключателей это значение равно `0x01`, для светодиодов `0x02` и т.п. В самом левом столбце указаны используемые/неиспользуемые адреса в адресном пространстве данного периферийного устройства. Например для переключателей есть только один используемый адрес: `0x000000`. Его функциональное назначение и разрешения на доступ указаны в столбце соответствующего периферийного устройства. Возвращаясь к адресу `0x000000` для переключателей мы видим следующее: -* (R) означает что разрешен доступ только на чтение (операция записи по этому адресу должна игнорироваться вашим контроллером). -* "Выставленное на переключателях значение" означает ровно то что и означает. Если процессор выполняет операцию чтения по адресу 0x01000000 (`0x01` (старшая часть адреса переключателей) + `0x000000` (младшая часть адреса для получения выставленного на переключателях значения) ), то контроллер должен выставить на выходной сигнал RD значение на переключателях (о том как получить это значение будет рассказано чуть позже). +* **(R)** означает что разрешен доступ только на чтение (операция записи по этому адресу должна игнорироваться вашим контроллером). +* **"Выставленное на переключателях значение"** означает ровно то что и означает. Если процессор выполняет операцию чтения по адресу `0x01000000` (`0x01` (старшая часть адреса переключателей) + `0x000000` (младшая часть адреса для получения выставленного на переключателях значения) ), то контроллер должен выставить на выходной сигнал `RD` значение на переключателях (о том как получить это значение будет рассказано чуть позже). Рассмотрим еще один пример. При обращении по адресу `0x02000024` (`0x02` (старшая часть адреса контроллера светодиодов) + `0x000024` (младшая часть адреса для доступа на запись к регистру сброса) ) должна произойти запись в регистр сброса, который должен сбросить значения в регистре управления зажигаемых светодиодов и регистре управления режимом "моргания" светодиодов (подробнее о том как должны работать эти регистры будет ниже). @@ -145,14 +147,15 @@ sys_clk_rst_gen divider(.ex_clk_i(clk_i),.ex_areset_n_i(resetn_i),.div_i(10),.sy 3. Реализуйте модули контроллеров периферии. Имена модулей и их порты будут указаны в [описании контроллеров](#описание-контроллеров-периферийных-устройств). Пример разработки контроллера приведен [здесь](../../Basic%20Verilog%20structures/Controllers.md). 4. Обновите модуль `riscv_unit` в соответствии с разделом ["Дополнительные правки модуля riscv_unit"](#дополнительные-правки-модуля-riscv_unit). 1. Подключите в проект файл `sys_clk_rst_gen.sv`. - 2. Добавьте в модуль `riscv_unit` входы и выходы периферии. - 3. Подключите к модулю `riscv_unit` модуль `sys_clk_rst_gen` скопировав приведенный фрагмент кода. + 2. Добавьте в модуль `riscv_unit` входы и выходы периферии. Необходимо добавить порты даже тех периферийных устройств, которые вы не будете реализовывать. + 3. Создайте в начале описания модуля `riscv_unit` экземпляр модуля `sys_clk_rst_gen`, скопировав приведенный фрагмент кода. 4. Замените подключение тактового сигнала исходных подмодулей `riscv_unit` на появившийся сигнал `sysclk`. Убедитесь, что на модули имеющие сигнал сброса приходит сигнал `rst`. -5. Интегрируйте модули контроллеров периферии в процессорную систему по приведенной схеме руководствуясь старшими адресами контроллеров, представленными на карте памяти. Это означает, что если вы реализуете контроллер светодиодов, на его входов `req_i` должна подаваться единица в случае если `mem_req_o == 1` и старшие 8 бит адреса равны `0x02`. +5. Интегрируйте модули контроллеров периферии в процессорную систему по приведенной схеме руководствуясь старшими адресами контроллеров, представленными на карте памяти ([_рис. 2_](../../.pic/Labs/lab_12_periph/fig_02.png)). Это означает, что если вы реализуете контроллер светодиодов, на его вход `req_i` должна подаваться единица в случае если `mem_req_o == 1` и старшие 8 бит адреса равны `0x02`. 1. При интеграции вы должны подключить только модули-контроллеры вашего варианта. Контроллеры периферии других вариантов подключать не надо. 2. При этом во время интеграции, вы должны использовать старшую часть адреса, представленную в карте памяти для формирования сигнала `req_i` для ваших модулей-контроллеров. 3. Даже если вы не используете какие-то входные/выходные сигналы в модуле `riscv_unit` (например по варианту вам не достался контроллер клавиатуры и поэтому вы не используете сигналы `kclk_i` и `kdata_i`), вы все равно должны их описать во входах и выходах модуля `riscv_unit`. -6. Проинициализируйте память инструкций с помощью предоставленной для каждой пары контроллеров программы. +6. Проверьте работу процессорной системы с помощью моделирования. + 1. Для каждой пары контроллеров периферии предложено две программы: с обновлением данных по опросу и по прерываниям. Запустите моделирование сначала для одной программы, затем для другой (для этого необходимо обновить файл, инициализирующий память инструкций). После проверки работоспособности процессора, сравните поведение сигналов LSU для этих программ. 7. Подключите к проекту файл ограничений ([nexys_a7_100t.xdc](nexys_a7_100t.xdc)), если тот еще не был подключен, либо замените его содержимое данными из файла к этой лабораторной работе. 8. Проверьте работу вашей процессорной системы с помощью отладочного стенда с ПЛИС и (при соответствующем варианте) клавиатуры/рабочего компьютера. 1. Обратите внимание, что в данной лабораторной уже не будет модуля верхнего уровня `nexys_...`, так как ваш модуль процессорной системы уже полностью самостоятелен и взаимодействует непосредственно с ножками ПЛИС через модули, управляемые контроллерами периферии. @@ -183,7 +186,7 @@ sys_clk_rst_gen divider(.ex_clk_i(clk_i),.ex_areset_n_i(resetn_i),.div_i(10),.sy В случае отсутствия **запроса на чтения**, на выход `read_data_o` должно подаваться значение `32'hfa11_1eaf`. Это никак не повлияет на работу процессора, но будет удобно в процессе отладки на временной диаграмме (тоже самое было сделано в процессе разработки памяти данных). -Если пришел **запрос на запись** или **чтение**, это еще не значит, что контроллер должен его выполнить. В случае, если запрос происходит по адресу, не поддерживающему этот запрос (например **запрос на запись** по адресу поддерживающему только чтение или наоборот), данный запрос должен игнорироваться, а на выходе `read_data_o` должно появиться значение `32'hdead_beef`. +Если пришел **запрос на запись** или **чтение**, это еще не значит, что контроллер должен его выполнить. В случае, если запрос происходит по адресу, не поддерживающему этот запрос (например **запрос на запись** по адресу поддерживающему только чтение), данный запрос должен игнорироваться. В случае **запроса на чтение** по недоступному адресу, на выходе `read_data_o` должно появиться значение `32'hdead_beef`. К примеру, в случае запроса на чтение по адресу `0x0100004` (четвертый байт в адресном пространстве периферийного устройства "переключатели"), на выходе `read_data_o` должно оказаться значение `32'hdead_beef`. В случае отсутствия запроса на чтение (`req_i == 0` или `write_enable_i == 1`), на выходе `read_data_o` контроллера переключателей должно оказаться значение `32'hfa11_1eaf`. @@ -201,7 +204,7 @@ module sw_sb_ctrl( Часть интерфейса модуля, отвечающая за подключение к системной шине */ input logic clk_i, - input logic rst_i + input logic rst_i, input logic req_i, input logic write_enable_i, input logic [31:0] addr_i, @@ -237,7 +240,7 @@ module led_sb_ctrl( Часть интерфейса модуля, отвечающая за подключение к системной шине */ input logic clk_i, - input logic rst_i + input logic rst_i, input logic req_i, input logic write_enable_i, input logic [31:0] addr_i, @@ -318,7 +321,7 @@ logic scan_code_is_unread; endmodule ``` -В первую очередь, вы должны инстанциировать модуль `PS2Receiver` внутри вашего модуля-контроллера, соединив соответствующие входы. Для подключения к выходам необходимо создать дополнительные провода. +В первую очередь, вы должны создать экземпляр модуля `PS2Receiver` внутри вашего модуля-контроллера, соединив соответствующие входы. Для подключения к выходам необходимо создать дополнительные провода. По каждому восходящему фронту сигнала `clk_i` вы должны проверять выход `keycode_valid_o` и если тот равен единице, записать значение с выхода `keycode_o` в регистр `scan_code`. При этом значение регистра `scan_code_is_unread` необходимо выставить в единицу. @@ -355,7 +358,7 @@ module hex_digits( input logic [7:0] bitmask_i, // Битовая маска для включения/отключения // отдельных индикаторов - output logic [6:0] hex_led_o // Сигнал, контролирующий каждый отдельный + output logic [6:0] hex_led_o, // Сигнал, контролирующий каждый отдельный // светодиод индикатора output logic [7:0] hex_sel_o // Сигнал, указывающий на какой индикатор // выставляется hex_led @@ -408,14 +411,14 @@ endmodule |Адрес|Режим доступа|Допустимые значения| Функциональное назначение | |-----|-------------|-------------------|---------------------------------------------------------| -|0x00 | RW | [0:31] | Регистр, хранящий значение, выводимое на hex0 | -|0x04 | RW | [0:31] | Регистр, хранящий значение, выводимое на hex1 | -|0x08 | RW | [0:31] | Регистр, хранящий значение, выводимое на hex2 | -|0x0C | RW | [0:31] | Регистр, хранящий значение, выводимое на hex3 | -|0x10 | RW | [0:31] | Регистр, хранящий значение, выводимое на hex4 | -|0x14 | RW | [0:31] | Регистр, хранящий значение, выводимое на hex5 | -|0x18 | RW | [0:31] | Регистр, хранящий значение, выводимое на hex6 | -|0x1C | RW | [0:31] | Регистр, хранящий значение, выводимое на hex7 | +|0x00 | RW | [0:15] | Регистр, хранящий значение, выводимое на hex0 | +|0x04 | RW | [0:15] | Регистр, хранящий значение, выводимое на hex1 | +|0x08 | RW | [0:15] | Регистр, хранящий значение, выводимое на hex2 | +|0x0C | RW | [0:15] | Регистр, хранящий значение, выводимое на hex3 | +|0x10 | RW | [0:15] | Регистр, хранящий значение, выводимое на hex4 | +|0x14 | RW | [0:15] | Регистр, хранящий значение, выводимое на hex5 | +|0x18 | RW | [0:15] | Регистр, хранящий значение, выводимое на hex6 | +|0x1C | RW | [0:15] | Регистр, хранящий значение, выводимое на hex7 | |0x20 | RW | [0:255] | Регистр, управляющий включением/отключением индикаторов | |0x24 | W | 1 | Запись сигнала сброса | @@ -472,7 +475,7 @@ module uart_rx_sb_ctrl( Часть интерфейса модуля, отвечающая за подключение к системной шине */ input logic clk_i, - input logic rst_i + input logic rst_i, input logic [31:0] addr_i, input logic req_i, input logic [31:0] write_data_i, @@ -502,7 +505,7 @@ module uart_tx_sb_ctrl( Часть интерфейса модуля, отвечающая за подключение к системной шине */ input logic clk_i, - input logic rst_i + input logic rst_i, input logic [31:0] addr_i, input logic req_i, input logic [31:0] write_data_i, diff --git a/Labs/12. Peripheral units/sw_led.txt b/Labs/12. Peripheral units/sw_led.txt deleted file mode 100644 index 4d7f32fd..00000000 --- a/Labs/12. Peripheral units/sw_led.txt +++ /dev/null @@ -1,21 +0,0 @@ -93 04 10 00 -13 09 a0 0a -93 02 a0 0a -13 19 89 00 -33 09 59 00 -93 09 50 55 -93 02 50 00 -93 99 49 00 -b3 89 59 00 -37 0e 00 01 -b7 0e 00 02 -03 2a 0e 00 -63 0a 2a 01 -63 0c 3a 01 -23 a0 4e 01 -23 a2 0e 00 -ef f2 df fe -23 a2 9e 02 -ef f2 5f fe -23 a2 9e 00 -ef f2 df fd diff --git a/Labs/12. Peripheral units/sw_led_irq.txt b/Labs/12. Peripheral units/sw_led_irq.txt new file mode 100644 index 00000000..ebcdb0e9 --- /dev/null +++ b/Labs/12. Peripheral units/sw_led_irq.txt @@ -0,0 +1,32 @@ +01400293 +30529073 +00200293 +30429073 +00000063 +34202373 +00200393 +06731063 +01000337 +00032383 +0000BE37 +AAAE0E13 +01C39463 +FCDFF06F +00005E37 +555E0E13 +01C38A63 +02000E37 +007E2023 +000E2223 +02C0006F +02000E37 +004E0E13 +00100E93 +01DE2023 +0180006F +02000E37 +024E0E13 +00100E93 +01DE2023 +0040006F +30200073 diff --git a/Labs/12. Peripheral units/sw_led_poll.txt b/Labs/12. Peripheral units/sw_led_poll.txt new file mode 100644 index 00000000..812227a1 --- /dev/null +++ b/Labs/12. Peripheral units/sw_led_poll.txt @@ -0,0 +1,21 @@ +00100493 +0aa00913 +0aa00293 +00891913 +00590933 +55500993 +00500293 +00499993 +005989b3 +01000e37 +02000eb7 +000e2a03 +012a0a63 +013a0c63 +014ea023 +000ea223 +fedff2ef +029ea223 +fe5ff2ef +009ea223 +fddff2ef diff --git a/Labs/12. Peripheral units/sys_clk_rst_gen.sv b/Labs/12. Peripheral units/sys_clk_rst_gen.sv new file mode 100644 index 00000000..817eb006 --- /dev/null +++ b/Labs/12. Peripheral units/sys_clk_rst_gen.sv @@ -0,0 +1,54 @@ +module sys_clk_rst_gen#( + parameter DIV_WIDTH = 4 +)( + input logic ex_clk_i, + input logic ex_areset_n_i, + input logic [DIV_WIDTH-1:0] div_i, + + output logic sys_clk_o, + output logic sys_reset_o +); + +logic [1:0] ex_arstn_buf; +logic [1:0] sys_rstn_buf; + +logic ex_arstn_buffered; +assign ex_arstn_buffered = ex_arstn_buf[1]; +assign sys_reset_o = !sys_rstn_buf[1]; + +always_ff @(posedge ex_clk_i or negedge ex_areset_n_i) begin + if(!ex_areset_n_i) begin + ex_arstn_buf <= 2'b0; + end + else begin + ex_arstn_buf <= {ex_arstn_buf[0], 1'b1}; + end +end + +logic [DIV_WIDTH-1:0] cnt; +logic clk_div; +always_ff @(posedge ex_clk_i or negedge ex_arstn_buffered) begin + if ( ~ex_arstn_buffered ) begin + cnt <= 0; + clk_div <= 0; + end else if ( cnt == 0 ) begin + cnt <= div_i; + clk_div <= !clk_div; + end else begin + cnt <= cnt - 1; + end +end + +BUFG clkbuf (.O(sys_clk_o),.I(clk_div)); + +always_ff @(posedge sys_clk_o or negedge ex_arstn_buffered) begin + if(!ex_arstn_buffered) begin + sys_rstn_buf <= 2'b0; + end + else begin + sys_rstn_buf <= {sys_rstn_buf[0], 1'b1}; + end +end + + +endmodule diff --git a/Labs/12. Peripheral units/sys_clk_rst_gen.v b/Labs/12. Peripheral units/sys_clk_rst_gen.v deleted file mode 100644 index 5fad1d6a..00000000 --- a/Labs/12. Peripheral units/sys_clk_rst_gen.v +++ /dev/null @@ -1,54 +0,0 @@ -module sys_clk_rst_gen#( - parameter DIV_WIDTH = 4 -)( - input ex_clk_i, - input ex_areset_n_i, - input [DIV_WIDTH-1:0] div_i, - - output sys_clk_o, - output sys_reset_o -); - -reg [1:0] ex_arstn_buf; -reg [1:0] sys_rstn_buf; - -wire ex_arstn_buffered; -assign ex_arstn_buffered = ex_arstn_buf[1]; -assign sys_reset_o = !sys_rstn_buf[1]; - -always @(posedge ex_clk_i or negedge ex_areset_n_i) begin - if(!ex_areset_n_i) begin - ex_arstn_buf <= 2'b0; - end - else begin - ex_arstn_buf <= {ex_arstn_buf[0], 1'b1}; - end -end - -reg [DIV_WIDTH-1:0] cnt; -reg clk_div; -always@( posedge ex_clk_i or negedge ex_arstn_buffered ) begin - if ( ~ex_arstn_buffered ) begin - cnt <= 0; - clk_div <= 0; - end else if ( cnt == 0 ) begin - cnt <= div_i; - clk_div <= !clk_div; - end else begin - cnt <= cnt - 1; - end -end - -BUFG clkbuf (.O(sys_clk_o),.I(clk_div)); - -always @(posedge sys_clk_o or negedge ex_arstn_buffered) begin - if(!ex_arstn_buffered) begin - sys_rstn_buf <= 2'b0; - end - else begin - sys_rstn_buf <= {sys_rstn_buf[0], 1'b1}; - end -end - - -endmodule diff --git a/Labs/13. Programming/README.md b/Labs/13. Programming/README.md index 7dab7887..40c220ff 100644 --- a/Labs/13. Programming/README.md +++ b/Labs/13. Programming/README.md @@ -1,4 +1,4 @@ -# Лабораторная работа 8 "Высокоуровневое программирование" +# Лабораторная работа 13 "Высокоуровневое программирование" ## Цель diff --git a/Labs/Made-up modules/README.md b/Labs/Made-up modules/README.md new file mode 100644 index 00000000..c9221a10 --- /dev/null +++ b/Labs/Made-up modules/README.md @@ -0,0 +1,7 @@ +# Заготовленные модули + +Все лабораторные работы курса построены по последовательному принципу: модули предыдущих лабораторных работ используются для описания модулей следующих лабораторных работ. + +Это приводит к тому, что нельзя выполнить очередную лабу, не выполнив все предыдущие. В случае, если нужен модуль из лабы, которой нет в учебном плане, либо по какой-то причине вы не появились на лабораторном занятии / не успели сделать лабу, у вас всё ещё остается возможность продолжить обучение. Для этого, вы можете воспользоваться реализациями модулей из данной папки. + +Обратите внимание на то, что реализации этих модулей неоптимальны, странны и намеренным образом сделаны так, чтобы было тяжело разобраться в принципе их работы. Это сделано для того, чтобы сохранить таинство выполнения соответствующей этому модулю лабы и разумеется ни один из этих модулей не может использоваться на защите лабораторной работы, посвященной этому модулю. diff --git a/Labs/Made-up modules/lab_01.fulladder32.sv b/Labs/Made-up modules/lab_01.fulladder32.sv new file mode 100644 index 00000000..f715cf3b --- /dev/null +++ b/Labs/Made-up modules/lab_01.fulladder32.sv @@ -0,0 +1,11 @@ +module fulladder32( + input logic [31:0] a_i, + input logic [31:0] b_i, + input logic carry_i, + output logic [31:0] sum_o, + output logic carry_o +); + +assign {carry_o, sum_o} = a_i + b_i + carry_i; + +endmodule \ No newline at end of file diff --git a/Labs/Made-up modules/lab_02.alu.sv b/Labs/Made-up modules/lab_02.alu.sv new file mode 100644 index 00000000..601582e8 --- /dev/null +++ b/Labs/Made-up modules/lab_02.alu.sv @@ -0,0 +1,6434 @@ +`timescale 1 ps / 1 ps + +(* STRUCTURAL_NETLIST = "yes" *) +module alu_riscv + (alu_op_i, + a_i, + b_i, + result_o, + flag_o); + input [4:0]alu_op_i; + input [31:0]a_i; + input [31:0]b_i; + output [31:0]result_o; + output flag_o; + + wire \ ; + wire \ ; + wire [31:0]a_i; + wire [4:0]alu_op_i; + wire [31:0]b_i; + wire [31:0]data0; + wire [31:0]data1; + wire data3; + wire data4; + wire [0:0]data6; + wire flag_o; + wire flag_o_INST_0_i_10_n_0; + wire flag_o_INST_0_i_10_n_1; + wire flag_o_INST_0_i_10_n_2; + wire flag_o_INST_0_i_10_n_3; + wire flag_o_INST_0_i_11_n_0; + wire flag_o_INST_0_i_12_n_0; + wire flag_o_INST_0_i_13_n_0; + wire flag_o_INST_0_i_14_n_0; + wire flag_o_INST_0_i_14_n_1; + wire flag_o_INST_0_i_14_n_2; + wire flag_o_INST_0_i_14_n_3; + wire flag_o_INST_0_i_15_n_0; + wire flag_o_INST_0_i_16_n_0; + wire flag_o_INST_0_i_17_n_0; + wire flag_o_INST_0_i_18_n_0; + wire flag_o_INST_0_i_19_n_0; + wire flag_o_INST_0_i_1_n_0; + wire flag_o_INST_0_i_20_n_0; + wire flag_o_INST_0_i_21_n_0; + wire flag_o_INST_0_i_22_n_0; + wire flag_o_INST_0_i_23_n_0; + wire flag_o_INST_0_i_23_n_1; + wire flag_o_INST_0_i_23_n_2; + wire flag_o_INST_0_i_23_n_3; + wire flag_o_INST_0_i_24_n_0; + wire flag_o_INST_0_i_25_n_0; + wire flag_o_INST_0_i_26_n_0; + wire flag_o_INST_0_i_27_n_0; + wire flag_o_INST_0_i_28_n_0; + wire flag_o_INST_0_i_28_n_1; + wire flag_o_INST_0_i_28_n_2; + wire flag_o_INST_0_i_28_n_3; + wire flag_o_INST_0_i_29_n_0; + wire flag_o_INST_0_i_2_n_0; + wire flag_o_INST_0_i_30_n_0; + wire flag_o_INST_0_i_31_n_0; + wire flag_o_INST_0_i_32_n_0; + wire flag_o_INST_0_i_33_n_0; + wire flag_o_INST_0_i_33_n_1; + wire flag_o_INST_0_i_33_n_2; + wire flag_o_INST_0_i_33_n_3; + wire flag_o_INST_0_i_34_n_0; + wire flag_o_INST_0_i_35_n_0; + wire flag_o_INST_0_i_36_n_0; + wire flag_o_INST_0_i_37_n_0; + wire flag_o_INST_0_i_38_n_0; + wire flag_o_INST_0_i_39_n_0; + wire flag_o_INST_0_i_3_n_1; + wire flag_o_INST_0_i_3_n_2; + wire flag_o_INST_0_i_3_n_3; + wire flag_o_INST_0_i_40_n_0; + wire flag_o_INST_0_i_41_n_0; + wire flag_o_INST_0_i_42_n_0; + wire flag_o_INST_0_i_43_n_0; + wire flag_o_INST_0_i_44_n_0; + wire flag_o_INST_0_i_45_n_0; + wire flag_o_INST_0_i_46_n_0; + wire flag_o_INST_0_i_47_n_0; + wire flag_o_INST_0_i_48_n_0; + wire flag_o_INST_0_i_49_n_0; + wire flag_o_INST_0_i_4_n_1; + wire flag_o_INST_0_i_4_n_2; + wire flag_o_INST_0_i_4_n_3; + wire flag_o_INST_0_i_50_n_0; + wire flag_o_INST_0_i_50_n_1; + wire flag_o_INST_0_i_50_n_2; + wire flag_o_INST_0_i_50_n_3; + wire flag_o_INST_0_i_51_n_0; + wire flag_o_INST_0_i_52_n_0; + wire flag_o_INST_0_i_53_n_0; + wire flag_o_INST_0_i_54_n_0; + wire flag_o_INST_0_i_55_n_0; + wire flag_o_INST_0_i_56_n_0; + wire flag_o_INST_0_i_57_n_0; + wire flag_o_INST_0_i_58_n_0; + wire flag_o_INST_0_i_59_n_0; + wire flag_o_INST_0_i_5_n_1; + wire flag_o_INST_0_i_5_n_2; + wire flag_o_INST_0_i_5_n_3; + wire flag_o_INST_0_i_60_n_0; + wire flag_o_INST_0_i_61_n_0; + wire flag_o_INST_0_i_62_n_0; + wire flag_o_INST_0_i_63_n_0; + wire flag_o_INST_0_i_64_n_0; + wire flag_o_INST_0_i_65_n_0; + wire flag_o_INST_0_i_66_n_0; + wire flag_o_INST_0_i_6_n_0; + wire flag_o_INST_0_i_6_n_1; + wire flag_o_INST_0_i_6_n_2; + wire flag_o_INST_0_i_6_n_3; + wire flag_o_INST_0_i_7_n_0; + wire flag_o_INST_0_i_8_n_0; + wire flag_o_INST_0_i_9_n_0; + wire [31:0]result_o; + wire \result_o[0]_INST_0_i_10_n_0 ; + wire \result_o[0]_INST_0_i_11_n_0 ; + wire \result_o[0]_INST_0_i_12_n_1 ; + wire \result_o[0]_INST_0_i_12_n_2 ; + wire \result_o[0]_INST_0_i_12_n_3 ; + wire \result_o[0]_INST_0_i_13_n_0 ; + wire \result_o[0]_INST_0_i_13_n_1 ; + wire \result_o[0]_INST_0_i_13_n_2 ; + wire \result_o[0]_INST_0_i_13_n_3 ; + wire \result_o[0]_INST_0_i_14_n_0 ; + wire \result_o[0]_INST_0_i_15_n_0 ; + wire \result_o[0]_INST_0_i_15_n_1 ; + wire \result_o[0]_INST_0_i_15_n_2 ; + wire \result_o[0]_INST_0_i_15_n_3 ; + wire \result_o[0]_INST_0_i_16_n_0 ; + wire \result_o[0]_INST_0_i_17_n_0 ; + wire \result_o[0]_INST_0_i_18_n_0 ; + wire \result_o[0]_INST_0_i_19_n_0 ; + wire \result_o[0]_INST_0_i_1_n_0 ; + wire \result_o[0]_INST_0_i_20_n_0 ; + wire \result_o[0]_INST_0_i_21_n_0 ; + wire \result_o[0]_INST_0_i_22_n_0 ; + wire \result_o[0]_INST_0_i_23_n_0 ; + wire \result_o[0]_INST_0_i_24_n_0 ; + wire \result_o[0]_INST_0_i_24_n_1 ; + wire \result_o[0]_INST_0_i_24_n_2 ; + wire \result_o[0]_INST_0_i_24_n_3 ; + wire \result_o[0]_INST_0_i_25_n_0 ; + wire \result_o[0]_INST_0_i_26_n_0 ; + wire \result_o[0]_INST_0_i_27_n_0 ; + wire \result_o[0]_INST_0_i_28_n_0 ; + wire \result_o[0]_INST_0_i_29_n_0 ; + wire \result_o[0]_INST_0_i_2_n_0 ; + wire \result_o[0]_INST_0_i_30_n_0 ; + wire \result_o[0]_INST_0_i_31_n_0 ; + wire \result_o[0]_INST_0_i_32_n_0 ; + wire \result_o[0]_INST_0_i_33_n_0 ; + wire \result_o[0]_INST_0_i_33_n_1 ; + wire \result_o[0]_INST_0_i_33_n_2 ; + wire \result_o[0]_INST_0_i_33_n_3 ; + wire \result_o[0]_INST_0_i_34_n_0 ; + wire \result_o[0]_INST_0_i_35_n_0 ; + wire \result_o[0]_INST_0_i_36_n_0 ; + wire \result_o[0]_INST_0_i_37_n_0 ; + wire \result_o[0]_INST_0_i_38_n_0 ; + wire \result_o[0]_INST_0_i_39_n_0 ; + wire \result_o[0]_INST_0_i_3_n_0 ; + wire \result_o[0]_INST_0_i_40_n_0 ; + wire \result_o[0]_INST_0_i_41_n_0 ; + wire \result_o[0]_INST_0_i_42_n_0 ; + wire \result_o[0]_INST_0_i_42_n_1 ; + wire \result_o[0]_INST_0_i_42_n_2 ; + wire \result_o[0]_INST_0_i_42_n_3 ; + wire \result_o[0]_INST_0_i_43_n_0 ; + wire \result_o[0]_INST_0_i_44_n_0 ; + wire \result_o[0]_INST_0_i_45_n_0 ; + wire \result_o[0]_INST_0_i_46_n_0 ; + wire \result_o[0]_INST_0_i_47_n_0 ; + wire \result_o[0]_INST_0_i_48_n_0 ; + wire \result_o[0]_INST_0_i_49_n_0 ; + wire \result_o[0]_INST_0_i_50_n_0 ; + wire \result_o[0]_INST_0_i_51_n_0 ; + wire \result_o[0]_INST_0_i_51_n_1 ; + wire \result_o[0]_INST_0_i_51_n_2 ; + wire \result_o[0]_INST_0_i_51_n_3 ; + wire \result_o[0]_INST_0_i_52_n_0 ; + wire \result_o[0]_INST_0_i_53_n_0 ; + wire \result_o[0]_INST_0_i_54_n_0 ; + wire \result_o[0]_INST_0_i_55_n_0 ; + wire \result_o[0]_INST_0_i_56_n_0 ; + wire \result_o[0]_INST_0_i_57_n_0 ; + wire \result_o[0]_INST_0_i_58_n_0 ; + wire \result_o[0]_INST_0_i_59_n_0 ; + wire \result_o[0]_INST_0_i_5_n_0 ; + wire \result_o[0]_INST_0_i_60_n_0 ; + wire \result_o[0]_INST_0_i_60_n_1 ; + wire \result_o[0]_INST_0_i_60_n_2 ; + wire \result_o[0]_INST_0_i_60_n_3 ; + wire \result_o[0]_INST_0_i_61_n_0 ; + wire \result_o[0]_INST_0_i_62_n_0 ; + wire \result_o[0]_INST_0_i_63_n_0 ; + wire \result_o[0]_INST_0_i_64_n_0 ; + wire \result_o[0]_INST_0_i_65_n_0 ; + wire \result_o[0]_INST_0_i_66_n_0 ; + wire \result_o[0]_INST_0_i_67_n_0 ; + wire \result_o[0]_INST_0_i_68_n_0 ; + wire \result_o[0]_INST_0_i_69_n_0 ; + wire \result_o[0]_INST_0_i_6_n_0 ; + wire \result_o[0]_INST_0_i_70_n_0 ; + wire \result_o[0]_INST_0_i_71_n_0 ; + wire \result_o[0]_INST_0_i_72_n_0 ; + wire \result_o[0]_INST_0_i_73_n_0 ; + wire \result_o[0]_INST_0_i_74_n_0 ; + wire \result_o[0]_INST_0_i_75_n_0 ; + wire \result_o[0]_INST_0_i_76_n_0 ; + wire \result_o[0]_INST_0_i_77_n_0 ; + wire \result_o[0]_INST_0_i_78_n_0 ; + wire \result_o[0]_INST_0_i_79_n_0 ; + wire \result_o[0]_INST_0_i_7_n_0 ; + wire \result_o[0]_INST_0_i_80_n_0 ; + wire \result_o[0]_INST_0_i_81_n_0 ; + wire \result_o[0]_INST_0_i_82_n_0 ; + wire \result_o[0]_INST_0_i_83_n_0 ; + wire \result_o[0]_INST_0_i_84_n_0 ; + wire \result_o[0]_INST_0_i_8_n_0 ; + wire \result_o[0]_INST_0_i_9_n_0 ; + wire \result_o[10]_INST_0_i_10_n_0 ; + wire \result_o[10]_INST_0_i_11_n_0 ; + wire \result_o[10]_INST_0_i_12_n_0 ; + wire \result_o[10]_INST_0_i_1_n_0 ; + wire \result_o[10]_INST_0_i_2_n_0 ; + wire \result_o[10]_INST_0_i_3_n_0 ; + wire \result_o[10]_INST_0_i_4_n_0 ; + wire \result_o[10]_INST_0_i_5_n_0 ; + wire \result_o[10]_INST_0_i_6_n_0 ; + wire \result_o[10]_INST_0_i_7_n_0 ; + wire \result_o[10]_INST_0_i_8_n_0 ; + wire \result_o[10]_INST_0_i_9_n_0 ; + wire \result_o[11]_INST_0_i_10_n_0 ; + wire \result_o[11]_INST_0_i_11_n_0 ; + wire \result_o[11]_INST_0_i_11_n_1 ; + wire \result_o[11]_INST_0_i_11_n_2 ; + wire \result_o[11]_INST_0_i_11_n_3 ; + wire \result_o[11]_INST_0_i_12_n_0 ; + wire \result_o[11]_INST_0_i_13_n_0 ; + wire \result_o[11]_INST_0_i_14_n_0 ; + wire \result_o[11]_INST_0_i_15_n_0 ; + wire \result_o[11]_INST_0_i_16_n_0 ; + wire \result_o[11]_INST_0_i_17_n_0 ; + wire \result_o[11]_INST_0_i_18_n_0 ; + wire \result_o[11]_INST_0_i_19_n_0 ; + wire \result_o[11]_INST_0_i_1_n_0 ; + wire \result_o[11]_INST_0_i_20_n_0 ; + wire \result_o[11]_INST_0_i_21_n_0 ; + wire \result_o[11]_INST_0_i_22_n_0 ; + wire \result_o[11]_INST_0_i_2_n_0 ; + wire \result_o[11]_INST_0_i_3_n_0 ; + wire \result_o[11]_INST_0_i_4_n_0 ; + wire \result_o[11]_INST_0_i_5_n_0 ; + wire \result_o[11]_INST_0_i_6_n_0 ; + wire \result_o[11]_INST_0_i_7_n_0 ; + wire \result_o[11]_INST_0_i_8_n_0 ; + wire \result_o[11]_INST_0_i_9_n_0 ; + wire \result_o[11]_INST_0_i_9_n_1 ; + wire \result_o[11]_INST_0_i_9_n_2 ; + wire \result_o[11]_INST_0_i_9_n_3 ; + wire \result_o[12]_INST_0_i_10_n_0 ; + wire \result_o[12]_INST_0_i_11_n_0 ; + wire \result_o[12]_INST_0_i_12_n_0 ; + wire \result_o[12]_INST_0_i_1_n_0 ; + wire \result_o[12]_INST_0_i_2_n_0 ; + wire \result_o[12]_INST_0_i_3_n_0 ; + wire \result_o[12]_INST_0_i_4_n_0 ; + wire \result_o[12]_INST_0_i_5_n_0 ; + wire \result_o[12]_INST_0_i_6_n_0 ; + wire \result_o[12]_INST_0_i_7_n_0 ; + wire \result_o[12]_INST_0_i_8_n_0 ; + wire \result_o[12]_INST_0_i_9_n_0 ; + wire \result_o[13]_INST_0_i_10_n_0 ; + wire \result_o[13]_INST_0_i_11_n_0 ; + wire \result_o[13]_INST_0_i_12_n_0 ; + wire \result_o[13]_INST_0_i_1_n_0 ; + wire \result_o[13]_INST_0_i_2_n_0 ; + wire \result_o[13]_INST_0_i_3_n_0 ; + wire \result_o[13]_INST_0_i_4_n_0 ; + wire \result_o[13]_INST_0_i_5_n_0 ; + wire \result_o[13]_INST_0_i_6_n_0 ; + wire \result_o[13]_INST_0_i_7_n_0 ; + wire \result_o[13]_INST_0_i_8_n_0 ; + wire \result_o[13]_INST_0_i_9_n_0 ; + wire \result_o[14]_INST_0_i_10_n_0 ; + wire \result_o[14]_INST_0_i_11_n_0 ; + wire \result_o[14]_INST_0_i_12_n_0 ; + wire \result_o[14]_INST_0_i_1_n_0 ; + wire \result_o[14]_INST_0_i_2_n_0 ; + wire \result_o[14]_INST_0_i_3_n_0 ; + wire \result_o[14]_INST_0_i_4_n_0 ; + wire \result_o[14]_INST_0_i_5_n_0 ; + wire \result_o[14]_INST_0_i_6_n_0 ; + wire \result_o[14]_INST_0_i_7_n_0 ; + wire \result_o[14]_INST_0_i_8_n_0 ; + wire \result_o[14]_INST_0_i_9_n_0 ; + wire \result_o[15]_INST_0_i_10_n_0 ; + wire \result_o[15]_INST_0_i_11_n_0 ; + wire \result_o[15]_INST_0_i_11_n_1 ; + wire \result_o[15]_INST_0_i_11_n_2 ; + wire \result_o[15]_INST_0_i_11_n_3 ; + wire \result_o[15]_INST_0_i_12_n_0 ; + wire \result_o[15]_INST_0_i_13_n_0 ; + wire \result_o[15]_INST_0_i_14_n_0 ; + wire \result_o[15]_INST_0_i_15_n_0 ; + wire \result_o[15]_INST_0_i_16_n_0 ; + wire \result_o[15]_INST_0_i_17_n_0 ; + wire \result_o[15]_INST_0_i_18_n_0 ; + wire \result_o[15]_INST_0_i_19_n_0 ; + wire \result_o[15]_INST_0_i_1_n_0 ; + wire \result_o[15]_INST_0_i_20_n_0 ; + wire \result_o[15]_INST_0_i_21_n_0 ; + wire \result_o[15]_INST_0_i_22_n_0 ; + wire \result_o[15]_INST_0_i_2_n_0 ; + wire \result_o[15]_INST_0_i_3_n_0 ; + wire \result_o[15]_INST_0_i_4_n_0 ; + wire \result_o[15]_INST_0_i_5_n_0 ; + wire \result_o[15]_INST_0_i_6_n_0 ; + wire \result_o[15]_INST_0_i_7_n_0 ; + wire \result_o[15]_INST_0_i_8_n_0 ; + wire \result_o[15]_INST_0_i_9_n_0 ; + wire \result_o[15]_INST_0_i_9_n_1 ; + wire \result_o[15]_INST_0_i_9_n_2 ; + wire \result_o[15]_INST_0_i_9_n_3 ; + wire \result_o[16]_INST_0_i_10_n_0 ; + wire \result_o[16]_INST_0_i_11_n_0 ; + wire \result_o[16]_INST_0_i_1_n_0 ; + wire \result_o[16]_INST_0_i_2_n_0 ; + wire \result_o[16]_INST_0_i_3_n_0 ; + wire \result_o[16]_INST_0_i_4_n_0 ; + wire \result_o[16]_INST_0_i_5_n_0 ; + wire \result_o[16]_INST_0_i_6_n_0 ; + wire \result_o[16]_INST_0_i_7_n_0 ; + wire \result_o[16]_INST_0_i_8_n_0 ; + wire \result_o[16]_INST_0_i_9_n_0 ; + wire \result_o[17]_INST_0_i_10_n_0 ; + wire \result_o[17]_INST_0_i_11_n_0 ; + wire \result_o[17]_INST_0_i_1_n_0 ; + wire \result_o[17]_INST_0_i_2_n_0 ; + wire \result_o[17]_INST_0_i_3_n_0 ; + wire \result_o[17]_INST_0_i_4_n_0 ; + wire \result_o[17]_INST_0_i_5_n_0 ; + wire \result_o[17]_INST_0_i_6_n_0 ; + wire \result_o[17]_INST_0_i_7_n_0 ; + wire \result_o[17]_INST_0_i_8_n_0 ; + wire \result_o[17]_INST_0_i_9_n_0 ; + wire \result_o[18]_INST_0_i_10_n_0 ; + wire \result_o[18]_INST_0_i_11_n_0 ; + wire \result_o[18]_INST_0_i_12_n_0 ; + wire \result_o[18]_INST_0_i_1_n_0 ; + wire \result_o[18]_INST_0_i_2_n_0 ; + wire \result_o[18]_INST_0_i_3_n_0 ; + wire \result_o[18]_INST_0_i_4_n_0 ; + wire \result_o[18]_INST_0_i_5_n_0 ; + wire \result_o[18]_INST_0_i_6_n_0 ; + wire \result_o[18]_INST_0_i_7_n_0 ; + wire \result_o[18]_INST_0_i_8_n_0 ; + wire \result_o[18]_INST_0_i_9_n_0 ; + wire \result_o[19]_INST_0_i_10_n_0 ; + wire \result_o[19]_INST_0_i_10_n_1 ; + wire \result_o[19]_INST_0_i_10_n_2 ; + wire \result_o[19]_INST_0_i_10_n_3 ; + wire \result_o[19]_INST_0_i_11_n_0 ; + wire \result_o[19]_INST_0_i_12_n_0 ; + wire \result_o[19]_INST_0_i_13_n_0 ; + wire \result_o[19]_INST_0_i_14_n_0 ; + wire \result_o[19]_INST_0_i_15_n_0 ; + wire \result_o[19]_INST_0_i_16_n_0 ; + wire \result_o[19]_INST_0_i_17_n_0 ; + wire \result_o[19]_INST_0_i_18_n_0 ; + wire \result_o[19]_INST_0_i_19_n_0 ; + wire \result_o[19]_INST_0_i_1_n_0 ; + wire \result_o[19]_INST_0_i_20_n_0 ; + wire \result_o[19]_INST_0_i_21_n_0 ; + wire \result_o[19]_INST_0_i_22_n_0 ; + wire \result_o[19]_INST_0_i_2_n_0 ; + wire \result_o[19]_INST_0_i_3_n_0 ; + wire \result_o[19]_INST_0_i_4_n_0 ; + wire \result_o[19]_INST_0_i_5_n_0 ; + wire \result_o[19]_INST_0_i_6_n_0 ; + wire \result_o[19]_INST_0_i_7_n_0 ; + wire \result_o[19]_INST_0_i_8_n_0 ; + wire \result_o[19]_INST_0_i_9_n_0 ; + wire \result_o[19]_INST_0_i_9_n_1 ; + wire \result_o[19]_INST_0_i_9_n_2 ; + wire \result_o[19]_INST_0_i_9_n_3 ; + wire \result_o[1]_INST_0_i_1_n_0 ; + wire \result_o[1]_INST_0_i_2_n_0 ; + wire \result_o[1]_INST_0_i_3_n_0 ; + wire \result_o[1]_INST_0_i_4_n_0 ; + wire \result_o[1]_INST_0_i_5_n_0 ; + wire \result_o[1]_INST_0_i_6_n_0 ; + wire \result_o[1]_INST_0_i_7_n_0 ; + wire \result_o[1]_INST_0_i_8_n_0 ; + wire \result_o[1]_INST_0_i_9_n_0 ; + wire \result_o[20]_INST_0_i_10_n_0 ; + wire \result_o[20]_INST_0_i_11_n_0 ; + wire \result_o[20]_INST_0_i_12_n_0 ; + wire \result_o[20]_INST_0_i_1_n_0 ; + wire \result_o[20]_INST_0_i_2_n_0 ; + wire \result_o[20]_INST_0_i_3_n_0 ; + wire \result_o[20]_INST_0_i_4_n_0 ; + wire \result_o[20]_INST_0_i_5_n_0 ; + wire \result_o[20]_INST_0_i_6_n_0 ; + wire \result_o[20]_INST_0_i_7_n_0 ; + wire \result_o[20]_INST_0_i_8_n_0 ; + wire \result_o[20]_INST_0_i_9_n_0 ; + wire \result_o[21]_INST_0_i_10_n_0 ; + wire \result_o[21]_INST_0_i_11_n_0 ; + wire \result_o[21]_INST_0_i_12_n_0 ; + wire \result_o[21]_INST_0_i_1_n_0 ; + wire \result_o[21]_INST_0_i_2_n_0 ; + wire \result_o[21]_INST_0_i_3_n_0 ; + wire \result_o[21]_INST_0_i_4_n_0 ; + wire \result_o[21]_INST_0_i_5_n_0 ; + wire \result_o[21]_INST_0_i_6_n_0 ; + wire \result_o[21]_INST_0_i_7_n_0 ; + wire \result_o[21]_INST_0_i_8_n_0 ; + wire \result_o[21]_INST_0_i_9_n_0 ; + wire \result_o[22]_INST_0_i_10_n_0 ; + wire \result_o[22]_INST_0_i_11_n_0 ; + wire \result_o[22]_INST_0_i_12_n_0 ; + wire \result_o[22]_INST_0_i_1_n_0 ; + wire \result_o[22]_INST_0_i_2_n_0 ; + wire \result_o[22]_INST_0_i_3_n_0 ; + wire \result_o[22]_INST_0_i_4_n_0 ; + wire \result_o[22]_INST_0_i_5_n_0 ; + wire \result_o[22]_INST_0_i_6_n_0 ; + wire \result_o[22]_INST_0_i_7_n_0 ; + wire \result_o[22]_INST_0_i_8_n_0 ; + wire \result_o[22]_INST_0_i_9_n_0 ; + wire \result_o[23]_INST_0_i_10_n_0 ; + wire \result_o[23]_INST_0_i_11_n_0 ; + wire \result_o[23]_INST_0_i_12_n_0 ; + wire \result_o[23]_INST_0_i_13_n_0 ; + wire \result_o[23]_INST_0_i_14_n_0 ; + wire \result_o[23]_INST_0_i_15_n_0 ; + wire \result_o[23]_INST_0_i_16_n_0 ; + wire \result_o[23]_INST_0_i_17_n_0 ; + wire \result_o[23]_INST_0_i_1_n_0 ; + wire \result_o[23]_INST_0_i_2_n_0 ; + wire \result_o[23]_INST_0_i_3_n_0 ; + wire \result_o[23]_INST_0_i_4_n_0 ; + wire \result_o[23]_INST_0_i_5_n_0 ; + wire \result_o[23]_INST_0_i_6_n_0 ; + wire \result_o[23]_INST_0_i_7_n_0 ; + wire \result_o[23]_INST_0_i_8_n_0 ; + wire \result_o[23]_INST_0_i_9_n_0 ; + wire \result_o[23]_INST_0_i_9_n_1 ; + wire \result_o[23]_INST_0_i_9_n_2 ; + wire \result_o[23]_INST_0_i_9_n_3 ; + wire \result_o[24]_INST_0_i_10_n_0 ; + wire \result_o[24]_INST_0_i_11_n_0 ; + wire \result_o[24]_INST_0_i_1_n_0 ; + wire \result_o[24]_INST_0_i_2_n_0 ; + wire \result_o[24]_INST_0_i_3_n_0 ; + wire \result_o[24]_INST_0_i_4_n_0 ; + wire \result_o[24]_INST_0_i_5_n_0 ; + wire \result_o[24]_INST_0_i_6_n_0 ; + wire \result_o[24]_INST_0_i_7_n_0 ; + wire \result_o[24]_INST_0_i_8_n_0 ; + wire \result_o[24]_INST_0_i_9_n_0 ; + wire \result_o[25]_INST_0_i_10_n_0 ; + wire \result_o[25]_INST_0_i_11_n_0 ; + wire \result_o[25]_INST_0_i_12_n_0 ; + wire \result_o[25]_INST_0_i_1_n_0 ; + wire \result_o[25]_INST_0_i_2_n_0 ; + wire \result_o[25]_INST_0_i_3_n_0 ; + wire \result_o[25]_INST_0_i_4_n_0 ; + wire \result_o[25]_INST_0_i_5_n_0 ; + wire \result_o[25]_INST_0_i_6_n_0 ; + wire \result_o[25]_INST_0_i_7_n_0 ; + wire \result_o[25]_INST_0_i_8_n_0 ; + wire \result_o[25]_INST_0_i_9_n_0 ; + wire \result_o[26]_INST_0_i_10_n_0 ; + wire \result_o[26]_INST_0_i_11_n_0 ; + wire \result_o[26]_INST_0_i_12_n_0 ; + wire \result_o[26]_INST_0_i_1_n_0 ; + wire \result_o[26]_INST_0_i_2_n_0 ; + wire \result_o[26]_INST_0_i_3_n_0 ; + wire \result_o[26]_INST_0_i_4_n_0 ; + wire \result_o[26]_INST_0_i_5_n_0 ; + wire \result_o[26]_INST_0_i_6_n_0 ; + wire \result_o[26]_INST_0_i_7_n_0 ; + wire \result_o[26]_INST_0_i_8_n_0 ; + wire \result_o[26]_INST_0_i_9_n_0 ; + wire \result_o[27]_INST_0_i_10_n_0 ; + wire \result_o[27]_INST_0_i_11_n_0 ; + wire \result_o[27]_INST_0_i_12_n_0 ; + wire \result_o[27]_INST_0_i_13_n_0 ; + wire \result_o[27]_INST_0_i_14_n_0 ; + wire \result_o[27]_INST_0_i_15_n_0 ; + wire \result_o[27]_INST_0_i_16_n_0 ; + wire \result_o[27]_INST_0_i_17_n_0 ; + wire \result_o[27]_INST_0_i_18_n_0 ; + wire \result_o[27]_INST_0_i_19_n_0 ; + wire \result_o[27]_INST_0_i_1_n_0 ; + wire \result_o[27]_INST_0_i_20_n_0 ; + wire \result_o[27]_INST_0_i_21_n_0 ; + wire \result_o[27]_INST_0_i_22_n_0 ; + wire \result_o[27]_INST_0_i_23_n_0 ; + wire \result_o[27]_INST_0_i_24_n_0 ; + wire \result_o[27]_INST_0_i_25_n_0 ; + wire \result_o[27]_INST_0_i_2_n_0 ; + wire \result_o[27]_INST_0_i_3_n_0 ; + wire \result_o[27]_INST_0_i_4_n_0 ; + wire \result_o[27]_INST_0_i_4_n_1 ; + wire \result_o[27]_INST_0_i_4_n_2 ; + wire \result_o[27]_INST_0_i_4_n_3 ; + wire \result_o[27]_INST_0_i_5_n_0 ; + wire \result_o[27]_INST_0_i_6_n_0 ; + wire \result_o[27]_INST_0_i_7_n_0 ; + wire \result_o[27]_INST_0_i_8_n_0 ; + wire \result_o[27]_INST_0_i_8_n_1 ; + wire \result_o[27]_INST_0_i_8_n_2 ; + wire \result_o[27]_INST_0_i_8_n_3 ; + wire \result_o[27]_INST_0_i_9_n_0 ; + wire \result_o[27]_INST_0_i_9_n_1 ; + wire \result_o[27]_INST_0_i_9_n_2 ; + wire \result_o[27]_INST_0_i_9_n_3 ; + wire \result_o[28]_INST_0_i_10_n_0 ; + wire \result_o[28]_INST_0_i_11_n_0 ; + wire \result_o[28]_INST_0_i_12_n_0 ; + wire \result_o[28]_INST_0_i_13_n_0 ; + wire \result_o[28]_INST_0_i_14_n_0 ; + wire \result_o[28]_INST_0_i_15_n_0 ; + wire \result_o[28]_INST_0_i_1_n_0 ; + wire \result_o[28]_INST_0_i_2_n_0 ; + wire \result_o[28]_INST_0_i_3_n_0 ; + wire \result_o[28]_INST_0_i_4_n_0 ; + wire \result_o[28]_INST_0_i_5_n_1 ; + wire \result_o[28]_INST_0_i_5_n_2 ; + wire \result_o[28]_INST_0_i_5_n_3 ; + wire \result_o[28]_INST_0_i_6_n_0 ; + wire \result_o[28]_INST_0_i_7_n_0 ; + wire \result_o[28]_INST_0_i_8_n_0 ; + wire \result_o[28]_INST_0_i_9_n_0 ; + wire \result_o[29]_INST_0_i_10_n_0 ; + wire \result_o[29]_INST_0_i_1_n_0 ; + wire \result_o[29]_INST_0_i_2_n_0 ; + wire \result_o[29]_INST_0_i_3_n_0 ; + wire \result_o[29]_INST_0_i_4_n_0 ; + wire \result_o[29]_INST_0_i_5_n_0 ; + wire \result_o[29]_INST_0_i_6_n_0 ; + wire \result_o[29]_INST_0_i_7_n_0 ; + wire \result_o[29]_INST_0_i_8_n_0 ; + wire \result_o[29]_INST_0_i_9_n_0 ; + wire \result_o[2]_INST_0_i_10_n_0 ; + wire \result_o[2]_INST_0_i_11_n_0 ; + wire \result_o[2]_INST_0_i_12_n_0 ; + wire \result_o[2]_INST_0_i_13_n_0 ; + wire \result_o[2]_INST_0_i_14_n_0 ; + wire \result_o[2]_INST_0_i_1_n_0 ; + wire \result_o[2]_INST_0_i_2_n_0 ; + wire \result_o[2]_INST_0_i_3_n_0 ; + wire \result_o[2]_INST_0_i_4_n_0 ; + wire \result_o[2]_INST_0_i_5_n_0 ; + wire \result_o[2]_INST_0_i_6_n_0 ; + wire \result_o[2]_INST_0_i_7_n_0 ; + wire \result_o[2]_INST_0_i_8_n_0 ; + wire \result_o[2]_INST_0_i_9_n_0 ; + wire \result_o[30]_INST_0_i_10_n_0 ; + wire \result_o[30]_INST_0_i_11_n_0 ; + wire \result_o[30]_INST_0_i_12_n_0 ; + wire \result_o[30]_INST_0_i_13_n_0 ; + wire \result_o[30]_INST_0_i_14_n_0 ; + wire \result_o[30]_INST_0_i_15_n_0 ; + wire \result_o[30]_INST_0_i_16_n_0 ; + wire \result_o[30]_INST_0_i_17_n_0 ; + wire \result_o[30]_INST_0_i_1_n_0 ; + wire \result_o[30]_INST_0_i_2_n_0 ; + wire \result_o[30]_INST_0_i_3_n_0 ; + wire \result_o[30]_INST_0_i_4_n_0 ; + wire \result_o[30]_INST_0_i_5_n_0 ; + wire \result_o[30]_INST_0_i_6_n_0 ; + wire \result_o[30]_INST_0_i_7_n_0 ; + wire \result_o[30]_INST_0_i_8_n_0 ; + wire \result_o[30]_INST_0_i_9_n_0 ; + wire \result_o[31]_INST_0_i_10_n_0 ; + wire \result_o[31]_INST_0_i_11_n_0 ; + wire \result_o[31]_INST_0_i_12_n_0 ; + wire \result_o[31]_INST_0_i_13_n_0 ; + wire \result_o[31]_INST_0_i_14_n_0 ; + wire \result_o[31]_INST_0_i_15_n_0 ; + wire \result_o[31]_INST_0_i_16_n_0 ; + wire \result_o[31]_INST_0_i_17_n_0 ; + wire \result_o[31]_INST_0_i_18_n_1 ; + wire \result_o[31]_INST_0_i_18_n_2 ; + wire \result_o[31]_INST_0_i_18_n_3 ; + wire \result_o[31]_INST_0_i_19_n_0 ; + wire \result_o[31]_INST_0_i_1_n_0 ; + wire \result_o[31]_INST_0_i_20_n_0 ; + wire \result_o[31]_INST_0_i_21_n_0 ; + wire \result_o[31]_INST_0_i_22_n_0 ; + wire \result_o[31]_INST_0_i_23_n_0 ; + wire \result_o[31]_INST_0_i_24_n_0 ; + wire \result_o[31]_INST_0_i_25_n_0 ; + wire \result_o[31]_INST_0_i_26_n_0 ; + wire \result_o[31]_INST_0_i_27_n_0 ; + wire \result_o[31]_INST_0_i_28_n_0 ; + wire \result_o[31]_INST_0_i_29_n_0 ; + wire \result_o[31]_INST_0_i_2_n_0 ; + wire \result_o[31]_INST_0_i_30_n_0 ; + wire \result_o[31]_INST_0_i_31_n_0 ; + wire \result_o[31]_INST_0_i_32_n_0 ; + wire \result_o[31]_INST_0_i_3_n_0 ; + wire \result_o[31]_INST_0_i_4_n_0 ; + wire \result_o[31]_INST_0_i_5_n_0 ; + wire \result_o[31]_INST_0_i_6_n_0 ; + wire \result_o[31]_INST_0_i_7_n_0 ; + wire \result_o[31]_INST_0_i_8_n_0 ; + wire \result_o[31]_INST_0_i_9_n_0 ; + wire \result_o[3]_INST_0_i_10_n_0 ; + wire \result_o[3]_INST_0_i_10_n_1 ; + wire \result_o[3]_INST_0_i_10_n_2 ; + wire \result_o[3]_INST_0_i_10_n_3 ; + wire \result_o[3]_INST_0_i_11_n_0 ; + wire \result_o[3]_INST_0_i_12_n_0 ; + wire \result_o[3]_INST_0_i_12_n_1 ; + wire \result_o[3]_INST_0_i_12_n_2 ; + wire \result_o[3]_INST_0_i_12_n_3 ; + wire \result_o[3]_INST_0_i_13_n_0 ; + wire \result_o[3]_INST_0_i_14_n_0 ; + wire \result_o[3]_INST_0_i_15_n_0 ; + wire \result_o[3]_INST_0_i_16_n_0 ; + wire \result_o[3]_INST_0_i_17_n_0 ; + wire \result_o[3]_INST_0_i_18_n_0 ; + wire \result_o[3]_INST_0_i_19_n_0 ; + wire \result_o[3]_INST_0_i_1_n_0 ; + wire \result_o[3]_INST_0_i_20_n_0 ; + wire \result_o[3]_INST_0_i_21_n_0 ; + wire \result_o[3]_INST_0_i_22_n_0 ; + wire \result_o[3]_INST_0_i_23_n_0 ; + wire \result_o[3]_INST_0_i_2_n_0 ; + wire \result_o[3]_INST_0_i_3_n_0 ; + wire \result_o[3]_INST_0_i_4_n_0 ; + wire \result_o[3]_INST_0_i_5_n_0 ; + wire \result_o[3]_INST_0_i_6_n_0 ; + wire \result_o[3]_INST_0_i_7_n_0 ; + wire \result_o[3]_INST_0_i_8_n_0 ; + wire \result_o[3]_INST_0_i_9_n_0 ; + wire \result_o[4]_INST_0_i_10_n_0 ; + wire \result_o[4]_INST_0_i_1_n_0 ; + wire \result_o[4]_INST_0_i_2_n_0 ; + wire \result_o[4]_INST_0_i_3_n_0 ; + wire \result_o[4]_INST_0_i_4_n_0 ; + wire \result_o[4]_INST_0_i_5_n_0 ; + wire \result_o[4]_INST_0_i_6_n_0 ; + wire \result_o[4]_INST_0_i_7_n_0 ; + wire \result_o[4]_INST_0_i_8_n_0 ; + wire \result_o[4]_INST_0_i_9_n_0 ; + wire \result_o[5]_INST_0_i_10_n_0 ; + wire \result_o[5]_INST_0_i_1_n_0 ; + wire \result_o[5]_INST_0_i_2_n_0 ; + wire \result_o[5]_INST_0_i_3_n_0 ; + wire \result_o[5]_INST_0_i_4_n_0 ; + wire \result_o[5]_INST_0_i_5_n_0 ; + wire \result_o[5]_INST_0_i_6_n_0 ; + wire \result_o[5]_INST_0_i_7_n_0 ; + wire \result_o[5]_INST_0_i_8_n_0 ; + wire \result_o[5]_INST_0_i_9_n_0 ; + wire \result_o[6]_INST_0_i_10_n_0 ; + wire \result_o[6]_INST_0_i_1_n_0 ; + wire \result_o[6]_INST_0_i_2_n_0 ; + wire \result_o[6]_INST_0_i_3_n_0 ; + wire \result_o[6]_INST_0_i_4_n_0 ; + wire \result_o[6]_INST_0_i_5_n_0 ; + wire \result_o[6]_INST_0_i_6_n_0 ; + wire \result_o[6]_INST_0_i_7_n_0 ; + wire \result_o[6]_INST_0_i_8_n_0 ; + wire \result_o[6]_INST_0_i_9_n_0 ; + wire \result_o[7]_INST_0_i_10_n_0 ; + wire \result_o[7]_INST_0_i_11_n_0 ; + wire \result_o[7]_INST_0_i_11_n_1 ; + wire \result_o[7]_INST_0_i_11_n_2 ; + wire \result_o[7]_INST_0_i_11_n_3 ; + wire \result_o[7]_INST_0_i_12_n_0 ; + wire \result_o[7]_INST_0_i_13_n_0 ; + wire \result_o[7]_INST_0_i_14_n_0 ; + wire \result_o[7]_INST_0_i_15_n_0 ; + wire \result_o[7]_INST_0_i_16_n_0 ; + wire \result_o[7]_INST_0_i_17_n_0 ; + wire \result_o[7]_INST_0_i_18_n_0 ; + wire \result_o[7]_INST_0_i_19_n_0 ; + wire \result_o[7]_INST_0_i_1_n_0 ; + wire \result_o[7]_INST_0_i_20_n_0 ; + wire \result_o[7]_INST_0_i_21_n_0 ; + wire \result_o[7]_INST_0_i_2_n_0 ; + wire \result_o[7]_INST_0_i_3_n_0 ; + wire \result_o[7]_INST_0_i_4_n_0 ; + wire \result_o[7]_INST_0_i_5_n_0 ; + wire \result_o[7]_INST_0_i_6_n_0 ; + wire \result_o[7]_INST_0_i_7_n_0 ; + wire \result_o[7]_INST_0_i_8_n_0 ; + wire \result_o[7]_INST_0_i_9_n_0 ; + wire \result_o[7]_INST_0_i_9_n_1 ; + wire \result_o[7]_INST_0_i_9_n_2 ; + wire \result_o[7]_INST_0_i_9_n_3 ; + wire \result_o[8]_INST_0_i_10_n_0 ; + wire \result_o[8]_INST_0_i_11_n_0 ; + wire \result_o[8]_INST_0_i_12_n_0 ; + wire \result_o[8]_INST_0_i_1_n_0 ; + wire \result_o[8]_INST_0_i_2_n_0 ; + wire \result_o[8]_INST_0_i_3_n_0 ; + wire \result_o[8]_INST_0_i_4_n_0 ; + wire \result_o[8]_INST_0_i_5_n_0 ; + wire \result_o[8]_INST_0_i_6_n_0 ; + wire \result_o[8]_INST_0_i_7_n_0 ; + wire \result_o[8]_INST_0_i_8_n_0 ; + wire \result_o[8]_INST_0_i_9_n_0 ; + wire \result_o[9]_INST_0_i_10_n_0 ; + wire \result_o[9]_INST_0_i_1_n_0 ; + wire \result_o[9]_INST_0_i_2_n_0 ; + wire \result_o[9]_INST_0_i_3_n_0 ; + wire \result_o[9]_INST_0_i_4_n_0 ; + wire \result_o[9]_INST_0_i_5_n_0 ; + wire \result_o[9]_INST_0_i_6_n_0 ; + wire \result_o[9]_INST_0_i_7_n_0 ; + wire \result_o[9]_INST_0_i_8_n_0 ; + wire \result_o[9]_INST_0_i_9_n_0 ; + + GND GND + (.G(\ )); + VCC VCC + (.P(\ )); + LUT4 #( + .INIT(16'h8880)) + flag_o_INST_0 + (.I0(alu_op_i[4]), + .I1(alu_op_i[3]), + .I2(flag_o_INST_0_i_1_n_0), + .I3(flag_o_INST_0_i_2_n_0), + .O(flag_o)); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT5 #( + .INIT(32'h000000E2)) + flag_o_INST_0_i_1 + (.I0(flag_o_INST_0_i_3_n_1), + .I1(alu_op_i[0]), + .I2(flag_o_INST_0_i_4_n_1), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .O(flag_o_INST_0_i_1_n_0)); + CARRY4 flag_o_INST_0_i_10 + (.CI(flag_o_INST_0_i_28_n_0), + .CO({flag_o_INST_0_i_10_n_0,flag_o_INST_0_i_10_n_1,flag_o_INST_0_i_10_n_2,flag_o_INST_0_i_10_n_3}), + .CYINIT(\ ), + .DI({\ ,\ ,\ ,\ }), + .S({flag_o_INST_0_i_29_n_0,flag_o_INST_0_i_30_n_0,flag_o_INST_0_i_31_n_0,flag_o_INST_0_i_32_n_0})); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_11 + (.I0(b_i[30]), + .I1(a_i[30]), + .I2(b_i[31]), + .I3(a_i[31]), + .O(flag_o_INST_0_i_11_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_12 + (.I0(a_i[29]), + .I1(b_i[29]), + .I2(a_i[28]), + .I3(b_i[28]), + .I4(b_i[27]), + .I5(a_i[27]), + .O(flag_o_INST_0_i_12_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_13 + (.I0(a_i[26]), + .I1(b_i[26]), + .I2(a_i[25]), + .I3(b_i[25]), + .I4(b_i[24]), + .I5(a_i[24]), + .O(flag_o_INST_0_i_13_n_0)); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 flag_o_INST_0_i_14 + (.CI(flag_o_INST_0_i_33_n_0), + .CO({flag_o_INST_0_i_14_n_0,flag_o_INST_0_i_14_n_1,flag_o_INST_0_i_14_n_2,flag_o_INST_0_i_14_n_3}), + .CYINIT(\ ), + .DI({flag_o_INST_0_i_34_n_0,flag_o_INST_0_i_35_n_0,flag_o_INST_0_i_36_n_0,flag_o_INST_0_i_37_n_0}), + .S({flag_o_INST_0_i_38_n_0,flag_o_INST_0_i_39_n_0,flag_o_INST_0_i_40_n_0,flag_o_INST_0_i_41_n_0})); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_15 + (.I0(a_i[30]), + .I1(b_i[30]), + .I2(a_i[31]), + .I3(b_i[31]), + .O(flag_o_INST_0_i_15_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_16 + (.I0(a_i[28]), + .I1(b_i[28]), + .I2(b_i[29]), + .I3(a_i[29]), + .O(flag_o_INST_0_i_16_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_17 + (.I0(a_i[26]), + .I1(b_i[26]), + .I2(b_i[27]), + .I3(a_i[27]), + .O(flag_o_INST_0_i_17_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_18 + (.I0(a_i[24]), + .I1(b_i[24]), + .I2(b_i[25]), + .I3(a_i[25]), + .O(flag_o_INST_0_i_18_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_19 + (.I0(b_i[31]), + .I1(a_i[31]), + .I2(b_i[30]), + .I3(a_i[30]), + .O(flag_o_INST_0_i_19_n_0)); + LUT6 #( + .INIT(64'h2828AAA028280A00)) + flag_o_INST_0_i_2 + (.I0(alu_op_i[2]), + .I1(data4), + .I2(alu_op_i[0]), + .I3(\result_o[0]_INST_0_i_13_n_0 ), + .I4(alu_op_i[1]), + .I5(data3), + .O(flag_o_INST_0_i_2_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_20 + (.I0(b_i[29]), + .I1(a_i[29]), + .I2(b_i[28]), + .I3(a_i[28]), + .O(flag_o_INST_0_i_20_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_21 + (.I0(b_i[27]), + .I1(a_i[27]), + .I2(b_i[26]), + .I3(a_i[26]), + .O(flag_o_INST_0_i_21_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_22 + (.I0(b_i[25]), + .I1(a_i[25]), + .I2(b_i[24]), + .I3(a_i[24]), + .O(flag_o_INST_0_i_22_n_0)); + CARRY4 flag_o_INST_0_i_23 + (.CI(\ ), + .CO({flag_o_INST_0_i_23_n_0,flag_o_INST_0_i_23_n_1,flag_o_INST_0_i_23_n_2,flag_o_INST_0_i_23_n_3}), + .CYINIT(\ ), + .DI({\ ,\ ,\ ,\ }), + .S({flag_o_INST_0_i_42_n_0,flag_o_INST_0_i_43_n_0,flag_o_INST_0_i_44_n_0,flag_o_INST_0_i_45_n_0})); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_24 + (.I0(a_i[23]), + .I1(b_i[23]), + .I2(a_i[22]), + .I3(b_i[22]), + .I4(b_i[21]), + .I5(a_i[21]), + .O(flag_o_INST_0_i_24_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_25 + (.I0(a_i[20]), + .I1(b_i[20]), + .I2(a_i[19]), + .I3(b_i[19]), + .I4(b_i[18]), + .I5(a_i[18]), + .O(flag_o_INST_0_i_25_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_26 + (.I0(a_i[17]), + .I1(b_i[17]), + .I2(a_i[16]), + .I3(b_i[16]), + .I4(b_i[15]), + .I5(a_i[15]), + .O(flag_o_INST_0_i_26_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_27 + (.I0(a_i[14]), + .I1(b_i[14]), + .I2(a_i[13]), + .I3(b_i[13]), + .I4(b_i[12]), + .I5(a_i[12]), + .O(flag_o_INST_0_i_27_n_0)); + CARRY4 flag_o_INST_0_i_28 + (.CI(\ ), + .CO({flag_o_INST_0_i_28_n_0,flag_o_INST_0_i_28_n_1,flag_o_INST_0_i_28_n_2,flag_o_INST_0_i_28_n_3}), + .CYINIT(\ ), + .DI({\ ,\ ,\ ,\ }), + .S({flag_o_INST_0_i_46_n_0,flag_o_INST_0_i_47_n_0,flag_o_INST_0_i_48_n_0,flag_o_INST_0_i_49_n_0})); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_29 + (.I0(a_i[23]), + .I1(b_i[23]), + .I2(a_i[22]), + .I3(b_i[22]), + .I4(b_i[21]), + .I5(a_i[21]), + .O(flag_o_INST_0_i_29_n_0)); + CARRY4 flag_o_INST_0_i_3 + (.CI(flag_o_INST_0_i_6_n_0), + .CO({flag_o_INST_0_i_3_n_1,flag_o_INST_0_i_3_n_2,flag_o_INST_0_i_3_n_3}), + .CYINIT(\ ), + .DI({\ ,\ ,\ ,\ }), + .S({\ ,flag_o_INST_0_i_7_n_0,flag_o_INST_0_i_8_n_0,flag_o_INST_0_i_9_n_0})); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_30 + (.I0(a_i[20]), + .I1(b_i[20]), + .I2(a_i[19]), + .I3(b_i[19]), + .I4(b_i[18]), + .I5(a_i[18]), + .O(flag_o_INST_0_i_30_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_31 + (.I0(a_i[17]), + .I1(b_i[17]), + .I2(a_i[16]), + .I3(b_i[16]), + .I4(b_i[15]), + .I5(a_i[15]), + .O(flag_o_INST_0_i_31_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_32 + (.I0(a_i[14]), + .I1(b_i[14]), + .I2(a_i[13]), + .I3(b_i[13]), + .I4(b_i[12]), + .I5(a_i[12]), + .O(flag_o_INST_0_i_32_n_0)); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 flag_o_INST_0_i_33 + (.CI(flag_o_INST_0_i_50_n_0), + .CO({flag_o_INST_0_i_33_n_0,flag_o_INST_0_i_33_n_1,flag_o_INST_0_i_33_n_2,flag_o_INST_0_i_33_n_3}), + .CYINIT(\ ), + .DI({flag_o_INST_0_i_51_n_0,flag_o_INST_0_i_52_n_0,flag_o_INST_0_i_53_n_0,flag_o_INST_0_i_54_n_0}), + .S({flag_o_INST_0_i_55_n_0,flag_o_INST_0_i_56_n_0,flag_o_INST_0_i_57_n_0,flag_o_INST_0_i_58_n_0})); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_34 + (.I0(a_i[22]), + .I1(b_i[22]), + .I2(b_i[23]), + .I3(a_i[23]), + .O(flag_o_INST_0_i_34_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_35 + (.I0(a_i[20]), + .I1(b_i[20]), + .I2(b_i[21]), + .I3(a_i[21]), + .O(flag_o_INST_0_i_35_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_36 + (.I0(a_i[18]), + .I1(b_i[18]), + .I2(b_i[19]), + .I3(a_i[19]), + .O(flag_o_INST_0_i_36_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_37 + (.I0(a_i[16]), + .I1(b_i[16]), + .I2(b_i[17]), + .I3(a_i[17]), + .O(flag_o_INST_0_i_37_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_38 + (.I0(b_i[23]), + .I1(a_i[23]), + .I2(b_i[22]), + .I3(a_i[22]), + .O(flag_o_INST_0_i_38_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_39 + (.I0(b_i[21]), + .I1(a_i[21]), + .I2(b_i[20]), + .I3(a_i[20]), + .O(flag_o_INST_0_i_39_n_0)); + CARRY4 flag_o_INST_0_i_4 + (.CI(flag_o_INST_0_i_10_n_0), + .CO({flag_o_INST_0_i_4_n_1,flag_o_INST_0_i_4_n_2,flag_o_INST_0_i_4_n_3}), + .CYINIT(\ ), + .DI({\ ,\ ,\ ,\ }), + .S({\ ,flag_o_INST_0_i_11_n_0,flag_o_INST_0_i_12_n_0,flag_o_INST_0_i_13_n_0})); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_40 + (.I0(b_i[19]), + .I1(a_i[19]), + .I2(b_i[18]), + .I3(a_i[18]), + .O(flag_o_INST_0_i_40_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_41 + (.I0(b_i[17]), + .I1(a_i[17]), + .I2(b_i[16]), + .I3(a_i[16]), + .O(flag_o_INST_0_i_41_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_42 + (.I0(a_i[11]), + .I1(b_i[11]), + .I2(a_i[10]), + .I3(b_i[10]), + .I4(b_i[9]), + .I5(a_i[9]), + .O(flag_o_INST_0_i_42_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_43 + (.I0(a_i[8]), + .I1(b_i[8]), + .I2(a_i[7]), + .I3(b_i[7]), + .I4(b_i[6]), + .I5(a_i[6]), + .O(flag_o_INST_0_i_43_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_44 + (.I0(a_i[5]), + .I1(b_i[5]), + .I2(a_i[4]), + .I3(b_i[4]), + .I4(b_i[3]), + .I5(a_i[3]), + .O(flag_o_INST_0_i_44_n_0)); + LUT6 #( + .INIT(64'h9000090000900009)) + flag_o_INST_0_i_45 + (.I0(a_i[0]), + .I1(b_i[0]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(a_i[1]), + .I5(a_i[2]), + .O(flag_o_INST_0_i_45_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_46 + (.I0(a_i[11]), + .I1(b_i[11]), + .I2(a_i[10]), + .I3(b_i[10]), + .I4(b_i[9]), + .I5(a_i[9]), + .O(flag_o_INST_0_i_46_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_47 + (.I0(a_i[8]), + .I1(b_i[8]), + .I2(a_i[7]), + .I3(b_i[7]), + .I4(b_i[6]), + .I5(a_i[6]), + .O(flag_o_INST_0_i_47_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_48 + (.I0(a_i[5]), + .I1(b_i[5]), + .I2(a_i[4]), + .I3(b_i[4]), + .I4(b_i[3]), + .I5(a_i[3]), + .O(flag_o_INST_0_i_48_n_0)); + LUT6 #( + .INIT(64'h9000090000900009)) + flag_o_INST_0_i_49 + (.I0(a_i[0]), + .I1(b_i[0]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(a_i[1]), + .I5(a_i[2]), + .O(flag_o_INST_0_i_49_n_0)); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 flag_o_INST_0_i_5 + (.CI(flag_o_INST_0_i_14_n_0), + .CO({data3,flag_o_INST_0_i_5_n_1,flag_o_INST_0_i_5_n_2,flag_o_INST_0_i_5_n_3}), + .CYINIT(\ ), + .DI({flag_o_INST_0_i_15_n_0,flag_o_INST_0_i_16_n_0,flag_o_INST_0_i_17_n_0,flag_o_INST_0_i_18_n_0}), + .S({flag_o_INST_0_i_19_n_0,flag_o_INST_0_i_20_n_0,flag_o_INST_0_i_21_n_0,flag_o_INST_0_i_22_n_0})); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 flag_o_INST_0_i_50 + (.CI(\ ), + .CO({flag_o_INST_0_i_50_n_0,flag_o_INST_0_i_50_n_1,flag_o_INST_0_i_50_n_2,flag_o_INST_0_i_50_n_3}), + .CYINIT(\ ), + .DI({flag_o_INST_0_i_59_n_0,flag_o_INST_0_i_60_n_0,flag_o_INST_0_i_61_n_0,flag_o_INST_0_i_62_n_0}), + .S({flag_o_INST_0_i_63_n_0,flag_o_INST_0_i_64_n_0,flag_o_INST_0_i_65_n_0,flag_o_INST_0_i_66_n_0})); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_51 + (.I0(a_i[14]), + .I1(b_i[14]), + .I2(b_i[15]), + .I3(a_i[15]), + .O(flag_o_INST_0_i_51_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_52 + (.I0(a_i[12]), + .I1(b_i[12]), + .I2(b_i[13]), + .I3(a_i[13]), + .O(flag_o_INST_0_i_52_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_53 + (.I0(a_i[10]), + .I1(b_i[10]), + .I2(b_i[11]), + .I3(a_i[11]), + .O(flag_o_INST_0_i_53_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_54 + (.I0(a_i[8]), + .I1(b_i[8]), + .I2(b_i[9]), + .I3(a_i[9]), + .O(flag_o_INST_0_i_54_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_55 + (.I0(b_i[15]), + .I1(a_i[15]), + .I2(b_i[14]), + .I3(a_i[14]), + .O(flag_o_INST_0_i_55_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_56 + (.I0(b_i[13]), + .I1(a_i[13]), + .I2(b_i[12]), + .I3(a_i[12]), + .O(flag_o_INST_0_i_56_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_57 + (.I0(b_i[11]), + .I1(a_i[11]), + .I2(b_i[10]), + .I3(a_i[10]), + .O(flag_o_INST_0_i_57_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_58 + (.I0(b_i[9]), + .I1(a_i[9]), + .I2(b_i[8]), + .I3(a_i[8]), + .O(flag_o_INST_0_i_58_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_59 + (.I0(a_i[6]), + .I1(b_i[6]), + .I2(b_i[7]), + .I3(a_i[7]), + .O(flag_o_INST_0_i_59_n_0)); + CARRY4 flag_o_INST_0_i_6 + (.CI(flag_o_INST_0_i_23_n_0), + .CO({flag_o_INST_0_i_6_n_0,flag_o_INST_0_i_6_n_1,flag_o_INST_0_i_6_n_2,flag_o_INST_0_i_6_n_3}), + .CYINIT(\ ), + .DI({\ ,\ ,\ ,\ }), + .S({flag_o_INST_0_i_24_n_0,flag_o_INST_0_i_25_n_0,flag_o_INST_0_i_26_n_0,flag_o_INST_0_i_27_n_0})); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_60 + (.I0(a_i[4]), + .I1(b_i[4]), + .I2(b_i[5]), + .I3(a_i[5]), + .O(flag_o_INST_0_i_60_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_61 + (.I0(a_i[2]), + .I1(b_i[2]), + .I2(b_i[3]), + .I3(a_i[3]), + .O(flag_o_INST_0_i_61_n_0)); + LUT4 #( + .INIT(16'h2F02)) + flag_o_INST_0_i_62 + (.I0(a_i[0]), + .I1(b_i[0]), + .I2(b_i[1]), + .I3(a_i[1]), + .O(flag_o_INST_0_i_62_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_63 + (.I0(b_i[7]), + .I1(a_i[7]), + .I2(b_i[6]), + .I3(a_i[6]), + .O(flag_o_INST_0_i_63_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_64 + (.I0(b_i[5]), + .I1(a_i[5]), + .I2(b_i[4]), + .I3(a_i[4]), + .O(flag_o_INST_0_i_64_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_65 + (.I0(b_i[3]), + .I1(a_i[3]), + .I2(b_i[2]), + .I3(a_i[2]), + .O(flag_o_INST_0_i_65_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_66 + (.I0(b_i[1]), + .I1(a_i[1]), + .I2(b_i[0]), + .I3(a_i[0]), + .O(flag_o_INST_0_i_66_n_0)); + LUT4 #( + .INIT(16'h9009)) + flag_o_INST_0_i_7 + (.I0(b_i[30]), + .I1(a_i[30]), + .I2(b_i[31]), + .I3(a_i[31]), + .O(flag_o_INST_0_i_7_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_8 + (.I0(a_i[29]), + .I1(b_i[29]), + .I2(a_i[28]), + .I3(b_i[28]), + .I4(b_i[27]), + .I5(a_i[27]), + .O(flag_o_INST_0_i_8_n_0)); + LUT6 #( + .INIT(64'h9009000000009009)) + flag_o_INST_0_i_9 + (.I0(a_i[26]), + .I1(b_i[26]), + .I2(a_i[25]), + .I3(b_i[25]), + .I4(b_i[24]), + .I5(a_i[24]), + .O(flag_o_INST_0_i_9_n_0)); + LUT6 #( + .INIT(64'hFFFFFEEEFEEEFEEE)) + \result_o[0]_INST_0 + (.I0(\result_o[0]_INST_0_i_1_n_0 ), + .I1(\result_o[0]_INST_0_i_2_n_0 ), + .I2(\result_o[0]_INST_0_i_3_n_0 ), + .I3(data6), + .I4(\result_o[0]_INST_0_i_5_n_0 ), + .I5(\result_o[0]_INST_0_i_6_n_0 ), + .O(result_o[0])); + LUT6 #( + .INIT(64'h0023000000200000)) + \result_o[0]_INST_0_i_1 + (.I0(\result_o[0]_INST_0_i_7_n_0 ), + .I1(alu_op_i[1]), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(\result_o[30]_INST_0_i_2_n_0 ), + .I5(data0[0]), + .O(\result_o[0]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'h4444444044404440)) + \result_o[0]_INST_0_i_10 + (.I0(b_i[0]), + .I1(b_i[1]), + .I2(\result_o[2]_INST_0_i_14_n_0 ), + .I3(\result_o[2]_INST_0_i_13_n_0 ), + .I4(b_i[2]), + .I5(\result_o[6]_INST_0_i_10_n_0 ), + .O(\result_o[0]_INST_0_i_10_n_0 )); + LUT6 #( + .INIT(64'h0000000000B00080)) + \result_o[0]_INST_0_i_11 + (.I0(a_i[24]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(\result_o[30]_INST_0_i_8_n_0 ), + .I4(a_i[16]), + .I5(b_i[0]), + .O(\result_o[0]_INST_0_i_11_n_0 )); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 \result_o[0]_INST_0_i_12 + (.CI(\result_o[0]_INST_0_i_15_n_0 ), + .CO({data4,\result_o[0]_INST_0_i_12_n_1 ,\result_o[0]_INST_0_i_12_n_2 ,\result_o[0]_INST_0_i_12_n_3 }), + .CYINIT(\ ), + .DI({\result_o[0]_INST_0_i_16_n_0 ,\result_o[0]_INST_0_i_17_n_0 ,\result_o[0]_INST_0_i_18_n_0 ,\result_o[0]_INST_0_i_19_n_0 }), + .S({\result_o[0]_INST_0_i_20_n_0 ,\result_o[0]_INST_0_i_21_n_0 ,\result_o[0]_INST_0_i_22_n_0 ,\result_o[0]_INST_0_i_23_n_0 })); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 \result_o[0]_INST_0_i_13 + (.CI(\result_o[0]_INST_0_i_24_n_0 ), + .CO({\result_o[0]_INST_0_i_13_n_0 ,\result_o[0]_INST_0_i_13_n_1 ,\result_o[0]_INST_0_i_13_n_2 ,\result_o[0]_INST_0_i_13_n_3 }), + .CYINIT(\ ), + .DI({\result_o[0]_INST_0_i_25_n_0 ,\result_o[0]_INST_0_i_26_n_0 ,\result_o[0]_INST_0_i_27_n_0 ,\result_o[0]_INST_0_i_28_n_0 }), + .S({\result_o[0]_INST_0_i_29_n_0 ,\result_o[0]_INST_0_i_30_n_0 ,\result_o[0]_INST_0_i_31_n_0 ,\result_o[0]_INST_0_i_32_n_0 })); + LUT6 #( + .INIT(64'h0000000000040000)) + \result_o[0]_INST_0_i_14 + (.I0(b_i[0]), + .I1(a_i[8]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(b_i[3]), + .I5(b_i[4]), + .O(\result_o[0]_INST_0_i_14_n_0 )); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 \result_o[0]_INST_0_i_15 + (.CI(\result_o[0]_INST_0_i_33_n_0 ), + .CO({\result_o[0]_INST_0_i_15_n_0 ,\result_o[0]_INST_0_i_15_n_1 ,\result_o[0]_INST_0_i_15_n_2 ,\result_o[0]_INST_0_i_15_n_3 }), + .CYINIT(\ ), + .DI({\result_o[0]_INST_0_i_34_n_0 ,\result_o[0]_INST_0_i_35_n_0 ,\result_o[0]_INST_0_i_36_n_0 ,\result_o[0]_INST_0_i_37_n_0 }), + .S({\result_o[0]_INST_0_i_38_n_0 ,\result_o[0]_INST_0_i_39_n_0 ,\result_o[0]_INST_0_i_40_n_0 ,\result_o[0]_INST_0_i_41_n_0 })); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_16 + (.I0(b_i[30]), + .I1(a_i[30]), + .I2(a_i[31]), + .I3(b_i[31]), + .O(\result_o[0]_INST_0_i_16_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_17 + (.I0(b_i[28]), + .I1(a_i[28]), + .I2(a_i[29]), + .I3(b_i[29]), + .O(\result_o[0]_INST_0_i_17_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_18 + (.I0(b_i[26]), + .I1(a_i[26]), + .I2(a_i[27]), + .I3(b_i[27]), + .O(\result_o[0]_INST_0_i_18_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_19 + (.I0(b_i[24]), + .I1(a_i[24]), + .I2(a_i[25]), + .I3(b_i[25]), + .O(\result_o[0]_INST_0_i_19_n_0 )); + LUT6 #( + .INIT(64'hF888888888888888)) + \result_o[0]_INST_0_i_2 + (.I0(data1[0]), + .I1(\result_o[28]_INST_0_i_4_n_0 ), + .I2(\result_o[31]_INST_0_i_11_n_0 ), + .I3(a_i[0]), + .I4(\result_o[30]_INST_0_i_2_n_0 ), + .I5(\result_o[0]_INST_0_i_8_n_0 ), + .O(\result_o[0]_INST_0_i_2_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_20 + (.I0(b_i[31]), + .I1(a_i[31]), + .I2(b_i[30]), + .I3(a_i[30]), + .O(\result_o[0]_INST_0_i_20_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_21 + (.I0(b_i[29]), + .I1(a_i[29]), + .I2(b_i[28]), + .I3(a_i[28]), + .O(\result_o[0]_INST_0_i_21_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_22 + (.I0(b_i[27]), + .I1(a_i[27]), + .I2(b_i[26]), + .I3(a_i[26]), + .O(\result_o[0]_INST_0_i_22_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_23 + (.I0(b_i[25]), + .I1(a_i[25]), + .I2(b_i[24]), + .I3(a_i[24]), + .O(\result_o[0]_INST_0_i_23_n_0 )); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 \result_o[0]_INST_0_i_24 + (.CI(\result_o[0]_INST_0_i_42_n_0 ), + .CO({\result_o[0]_INST_0_i_24_n_0 ,\result_o[0]_INST_0_i_24_n_1 ,\result_o[0]_INST_0_i_24_n_2 ,\result_o[0]_INST_0_i_24_n_3 }), + .CYINIT(\ ), + .DI({\result_o[0]_INST_0_i_43_n_0 ,\result_o[0]_INST_0_i_44_n_0 ,\result_o[0]_INST_0_i_45_n_0 ,\result_o[0]_INST_0_i_46_n_0 }), + .S({\result_o[0]_INST_0_i_47_n_0 ,\result_o[0]_INST_0_i_48_n_0 ,\result_o[0]_INST_0_i_49_n_0 ,\result_o[0]_INST_0_i_50_n_0 })); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_25 + (.I0(b_i[30]), + .I1(a_i[30]), + .I2(b_i[31]), + .I3(a_i[31]), + .O(\result_o[0]_INST_0_i_25_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_26 + (.I0(b_i[28]), + .I1(a_i[28]), + .I2(a_i[29]), + .I3(b_i[29]), + .O(\result_o[0]_INST_0_i_26_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_27 + (.I0(b_i[26]), + .I1(a_i[26]), + .I2(a_i[27]), + .I3(b_i[27]), + .O(\result_o[0]_INST_0_i_27_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_28 + (.I0(b_i[24]), + .I1(a_i[24]), + .I2(a_i[25]), + .I3(b_i[25]), + .O(\result_o[0]_INST_0_i_28_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_29 + (.I0(b_i[31]), + .I1(a_i[31]), + .I2(b_i[30]), + .I3(a_i[30]), + .O(\result_o[0]_INST_0_i_29_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT4 #( + .INIT(16'h0008)) + \result_o[0]_INST_0_i_3 + (.I0(alu_op_i[2]), + .I1(alu_op_i[0]), + .I2(alu_op_i[1]), + .I3(alu_op_i[4]), + .O(\result_o[0]_INST_0_i_3_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_30 + (.I0(b_i[29]), + .I1(a_i[29]), + .I2(b_i[28]), + .I3(a_i[28]), + .O(\result_o[0]_INST_0_i_30_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_31 + (.I0(b_i[27]), + .I1(a_i[27]), + .I2(b_i[26]), + .I3(a_i[26]), + .O(\result_o[0]_INST_0_i_31_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_32 + (.I0(b_i[25]), + .I1(a_i[25]), + .I2(b_i[24]), + .I3(a_i[24]), + .O(\result_o[0]_INST_0_i_32_n_0 )); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 \result_o[0]_INST_0_i_33 + (.CI(\result_o[0]_INST_0_i_51_n_0 ), + .CO({\result_o[0]_INST_0_i_33_n_0 ,\result_o[0]_INST_0_i_33_n_1 ,\result_o[0]_INST_0_i_33_n_2 ,\result_o[0]_INST_0_i_33_n_3 }), + .CYINIT(\ ), + .DI({\result_o[0]_INST_0_i_52_n_0 ,\result_o[0]_INST_0_i_53_n_0 ,\result_o[0]_INST_0_i_54_n_0 ,\result_o[0]_INST_0_i_55_n_0 }), + .S({\result_o[0]_INST_0_i_56_n_0 ,\result_o[0]_INST_0_i_57_n_0 ,\result_o[0]_INST_0_i_58_n_0 ,\result_o[0]_INST_0_i_59_n_0 })); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_34 + (.I0(b_i[22]), + .I1(a_i[22]), + .I2(a_i[23]), + .I3(b_i[23]), + .O(\result_o[0]_INST_0_i_34_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_35 + (.I0(b_i[20]), + .I1(a_i[20]), + .I2(a_i[21]), + .I3(b_i[21]), + .O(\result_o[0]_INST_0_i_35_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_36 + (.I0(b_i[18]), + .I1(a_i[18]), + .I2(a_i[19]), + .I3(b_i[19]), + .O(\result_o[0]_INST_0_i_36_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_37 + (.I0(b_i[16]), + .I1(a_i[16]), + .I2(a_i[17]), + .I3(b_i[17]), + .O(\result_o[0]_INST_0_i_37_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_38 + (.I0(b_i[23]), + .I1(a_i[23]), + .I2(b_i[22]), + .I3(a_i[22]), + .O(\result_o[0]_INST_0_i_38_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_39 + (.I0(b_i[21]), + .I1(a_i[21]), + .I2(b_i[20]), + .I3(a_i[20]), + .O(\result_o[0]_INST_0_i_39_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFFFFFFFE0)) + \result_o[0]_INST_0_i_4 + (.I0(\result_o[1]_INST_0_i_7_n_0 ), + .I1(\result_o[1]_INST_0_i_6_n_0 ), + .I2(b_i[0]), + .I3(\result_o[0]_INST_0_i_9_n_0 ), + .I4(\result_o[0]_INST_0_i_10_n_0 ), + .I5(\result_o[0]_INST_0_i_11_n_0 ), + .O(data6)); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_40 + (.I0(b_i[19]), + .I1(a_i[19]), + .I2(b_i[18]), + .I3(a_i[18]), + .O(\result_o[0]_INST_0_i_40_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_41 + (.I0(b_i[17]), + .I1(a_i[17]), + .I2(b_i[16]), + .I3(a_i[16]), + .O(\result_o[0]_INST_0_i_41_n_0 )); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 \result_o[0]_INST_0_i_42 + (.CI(\result_o[0]_INST_0_i_60_n_0 ), + .CO({\result_o[0]_INST_0_i_42_n_0 ,\result_o[0]_INST_0_i_42_n_1 ,\result_o[0]_INST_0_i_42_n_2 ,\result_o[0]_INST_0_i_42_n_3 }), + .CYINIT(\ ), + .DI({\result_o[0]_INST_0_i_61_n_0 ,\result_o[0]_INST_0_i_62_n_0 ,\result_o[0]_INST_0_i_63_n_0 ,\result_o[0]_INST_0_i_64_n_0 }), + .S({\result_o[0]_INST_0_i_65_n_0 ,\result_o[0]_INST_0_i_66_n_0 ,\result_o[0]_INST_0_i_67_n_0 ,\result_o[0]_INST_0_i_68_n_0 })); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_43 + (.I0(b_i[22]), + .I1(a_i[22]), + .I2(a_i[23]), + .I3(b_i[23]), + .O(\result_o[0]_INST_0_i_43_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_44 + (.I0(b_i[20]), + .I1(a_i[20]), + .I2(a_i[21]), + .I3(b_i[21]), + .O(\result_o[0]_INST_0_i_44_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_45 + (.I0(b_i[18]), + .I1(a_i[18]), + .I2(a_i[19]), + .I3(b_i[19]), + .O(\result_o[0]_INST_0_i_45_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_46 + (.I0(b_i[16]), + .I1(a_i[16]), + .I2(a_i[17]), + .I3(b_i[17]), + .O(\result_o[0]_INST_0_i_46_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_47 + (.I0(b_i[23]), + .I1(a_i[23]), + .I2(b_i[22]), + .I3(a_i[22]), + .O(\result_o[0]_INST_0_i_47_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_48 + (.I0(b_i[21]), + .I1(a_i[21]), + .I2(b_i[20]), + .I3(a_i[20]), + .O(\result_o[0]_INST_0_i_48_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_49 + (.I0(b_i[19]), + .I1(a_i[19]), + .I2(b_i[18]), + .I3(a_i[18]), + .O(\result_o[0]_INST_0_i_49_n_0 )); + LUT3 #( + .INIT(8'h10)) + \result_o[0]_INST_0_i_5 + (.I0(alu_op_i[4]), + .I1(alu_op_i[3]), + .I2(alu_op_i[1]), + .O(\result_o[0]_INST_0_i_5_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_50 + (.I0(b_i[17]), + .I1(a_i[17]), + .I2(b_i[16]), + .I3(a_i[16]), + .O(\result_o[0]_INST_0_i_50_n_0 )); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 \result_o[0]_INST_0_i_51 + (.CI(\ ), + .CO({\result_o[0]_INST_0_i_51_n_0 ,\result_o[0]_INST_0_i_51_n_1 ,\result_o[0]_INST_0_i_51_n_2 ,\result_o[0]_INST_0_i_51_n_3 }), + .CYINIT(\ ), + .DI({\result_o[0]_INST_0_i_69_n_0 ,\result_o[0]_INST_0_i_70_n_0 ,\result_o[0]_INST_0_i_71_n_0 ,\result_o[0]_INST_0_i_72_n_0 }), + .S({\result_o[0]_INST_0_i_73_n_0 ,\result_o[0]_INST_0_i_74_n_0 ,\result_o[0]_INST_0_i_75_n_0 ,\result_o[0]_INST_0_i_76_n_0 })); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_52 + (.I0(b_i[14]), + .I1(a_i[14]), + .I2(a_i[15]), + .I3(b_i[15]), + .O(\result_o[0]_INST_0_i_52_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_53 + (.I0(b_i[12]), + .I1(a_i[12]), + .I2(a_i[13]), + .I3(b_i[13]), + .O(\result_o[0]_INST_0_i_53_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_54 + (.I0(b_i[10]), + .I1(a_i[10]), + .I2(a_i[11]), + .I3(b_i[11]), + .O(\result_o[0]_INST_0_i_54_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_55 + (.I0(b_i[8]), + .I1(a_i[8]), + .I2(a_i[9]), + .I3(b_i[9]), + .O(\result_o[0]_INST_0_i_55_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_56 + (.I0(b_i[15]), + .I1(a_i[15]), + .I2(b_i[14]), + .I3(a_i[14]), + .O(\result_o[0]_INST_0_i_56_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_57 + (.I0(b_i[13]), + .I1(a_i[13]), + .I2(b_i[12]), + .I3(a_i[12]), + .O(\result_o[0]_INST_0_i_57_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_58 + (.I0(b_i[11]), + .I1(a_i[11]), + .I2(b_i[10]), + .I3(a_i[10]), + .O(\result_o[0]_INST_0_i_58_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_59 + (.I0(b_i[9]), + .I1(a_i[9]), + .I2(b_i[8]), + .I3(a_i[8]), + .O(\result_o[0]_INST_0_i_59_n_0 )); + LUT6 #( + .INIT(64'hF000AAAAFFF0CCCC)) + \result_o[0]_INST_0_i_6 + (.I0(data4), + .I1(\result_o[0]_INST_0_i_13_n_0 ), + .I2(b_i[0]), + .I3(a_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[0]_INST_0_i_6_n_0 )); + (* COMPARATOR_THRESHOLD = "11" *) + CARRY4 \result_o[0]_INST_0_i_60 + (.CI(\ ), + .CO({\result_o[0]_INST_0_i_60_n_0 ,\result_o[0]_INST_0_i_60_n_1 ,\result_o[0]_INST_0_i_60_n_2 ,\result_o[0]_INST_0_i_60_n_3 }), + .CYINIT(\ ), + .DI({\result_o[0]_INST_0_i_77_n_0 ,\result_o[0]_INST_0_i_78_n_0 ,\result_o[0]_INST_0_i_79_n_0 ,\result_o[0]_INST_0_i_80_n_0 }), + .S({\result_o[0]_INST_0_i_81_n_0 ,\result_o[0]_INST_0_i_82_n_0 ,\result_o[0]_INST_0_i_83_n_0 ,\result_o[0]_INST_0_i_84_n_0 })); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_61 + (.I0(b_i[14]), + .I1(a_i[14]), + .I2(a_i[15]), + .I3(b_i[15]), + .O(\result_o[0]_INST_0_i_61_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_62 + (.I0(b_i[12]), + .I1(a_i[12]), + .I2(a_i[13]), + .I3(b_i[13]), + .O(\result_o[0]_INST_0_i_62_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_63 + (.I0(b_i[10]), + .I1(a_i[10]), + .I2(a_i[11]), + .I3(b_i[11]), + .O(\result_o[0]_INST_0_i_63_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_64 + (.I0(b_i[8]), + .I1(a_i[8]), + .I2(a_i[9]), + .I3(b_i[9]), + .O(\result_o[0]_INST_0_i_64_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_65 + (.I0(b_i[15]), + .I1(a_i[15]), + .I2(b_i[14]), + .I3(a_i[14]), + .O(\result_o[0]_INST_0_i_65_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_66 + (.I0(b_i[13]), + .I1(a_i[13]), + .I2(b_i[12]), + .I3(a_i[12]), + .O(\result_o[0]_INST_0_i_66_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_67 + (.I0(b_i[11]), + .I1(a_i[11]), + .I2(b_i[10]), + .I3(a_i[10]), + .O(\result_o[0]_INST_0_i_67_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_68 + (.I0(b_i[9]), + .I1(a_i[9]), + .I2(b_i[8]), + .I3(a_i[8]), + .O(\result_o[0]_INST_0_i_68_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_69 + (.I0(b_i[6]), + .I1(a_i[6]), + .I2(a_i[7]), + .I3(b_i[7]), + .O(\result_o[0]_INST_0_i_69_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[0]_INST_0_i_7 + (.I0(a_i[0]), + .I1(b_i[0]), + .O(\result_o[0]_INST_0_i_7_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_70 + (.I0(b_i[4]), + .I1(a_i[4]), + .I2(a_i[5]), + .I3(b_i[5]), + .O(\result_o[0]_INST_0_i_70_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_71 + (.I0(b_i[2]), + .I1(a_i[2]), + .I2(a_i[3]), + .I3(b_i[3]), + .O(\result_o[0]_INST_0_i_71_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_72 + (.I0(b_i[0]), + .I1(a_i[0]), + .I2(a_i[1]), + .I3(b_i[1]), + .O(\result_o[0]_INST_0_i_72_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_73 + (.I0(b_i[7]), + .I1(a_i[7]), + .I2(b_i[6]), + .I3(a_i[6]), + .O(\result_o[0]_INST_0_i_73_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_74 + (.I0(b_i[5]), + .I1(a_i[5]), + .I2(b_i[4]), + .I3(a_i[4]), + .O(\result_o[0]_INST_0_i_74_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_75 + (.I0(b_i[3]), + .I1(a_i[3]), + .I2(b_i[2]), + .I3(a_i[2]), + .O(\result_o[0]_INST_0_i_75_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_76 + (.I0(b_i[1]), + .I1(a_i[1]), + .I2(b_i[0]), + .I3(a_i[0]), + .O(\result_o[0]_INST_0_i_76_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_77 + (.I0(b_i[6]), + .I1(a_i[6]), + .I2(a_i[7]), + .I3(b_i[7]), + .O(\result_o[0]_INST_0_i_77_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_78 + (.I0(b_i[4]), + .I1(a_i[4]), + .I2(a_i[5]), + .I3(b_i[5]), + .O(\result_o[0]_INST_0_i_78_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_79 + (.I0(b_i[2]), + .I1(a_i[2]), + .I2(a_i[3]), + .I3(b_i[3]), + .O(\result_o[0]_INST_0_i_79_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT4 #( + .INIT(16'h0001)) + \result_o[0]_INST_0_i_8 + (.I0(b_i[2]), + .I1(b_i[1]), + .I2(b_i[4]), + .I3(b_i[3]), + .O(\result_o[0]_INST_0_i_8_n_0 )); + LUT4 #( + .INIT(16'h2F02)) + \result_o[0]_INST_0_i_80 + (.I0(b_i[0]), + .I1(a_i[0]), + .I2(a_i[1]), + .I3(b_i[1]), + .O(\result_o[0]_INST_0_i_80_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_81 + (.I0(b_i[7]), + .I1(a_i[7]), + .I2(b_i[6]), + .I3(a_i[6]), + .O(\result_o[0]_INST_0_i_81_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_82 + (.I0(b_i[5]), + .I1(a_i[5]), + .I2(b_i[4]), + .I3(a_i[4]), + .O(\result_o[0]_INST_0_i_82_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_83 + (.I0(b_i[3]), + .I1(a_i[3]), + .I2(b_i[2]), + .I3(a_i[2]), + .O(\result_o[0]_INST_0_i_83_n_0 )); + LUT4 #( + .INIT(16'h9009)) + \result_o[0]_INST_0_i_84 + (.I0(b_i[1]), + .I1(a_i[1]), + .I2(b_i[0]), + .I3(a_i[0]), + .O(\result_o[0]_INST_0_i_84_n_0 )); + LUT6 #( + .INIT(64'hF0F0F0F0FFF8F8F8)) + \result_o[0]_INST_0_i_9 + (.I0(a_i[0]), + .I1(\result_o[0]_INST_0_i_8_n_0 ), + .I2(\result_o[0]_INST_0_i_14_n_0 ), + .I3(\result_o[4]_INST_0_i_10_n_0 ), + .I4(\result_o[31]_INST_0_i_25_n_0 ), + .I5(b_i[0]), + .O(\result_o[0]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[10]_INST_0 + (.I0(\result_o[10]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[10]_INST_0_i_2_n_0 ), + .I3(\result_o[10]_INST_0_i_3_n_0 ), + .I4(\result_o[10]_INST_0_i_4_n_0 ), + .I5(\result_o[10]_INST_0_i_5_n_0 ), + .O(result_o[10])); + (* SOFT_HLUTNM = "soft_lutpair39" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[10]_INST_0_i_1 + (.I0(\result_o[11]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[10]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[10]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hFF00AAAACCCCF0F0)) + \result_o[10]_INST_0_i_10 + (.I0(a_i[26]), + .I1(a_i[18]), + .I2(a_i[10]), + .I3(a_i[31]), + .I4(b_i[3]), + .I5(b_i[4]), + .O(\result_o[10]_INST_0_i_10_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[10]_INST_0_i_11 + (.I0(a_i[3]), + .I1(a_i[5]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[10]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair13" *) + LUT5 #( + .INIT(32'h3E0E3202)) + \result_o[10]_INST_0_i_12 + (.I0(a_i[10]), + .I1(b_i[4]), + .I2(b_i[3]), + .I3(a_i[18]), + .I4(a_i[26]), + .O(\result_o[10]_INST_0_i_12_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[10]_INST_0_i_2 + (.I0(\result_o[10]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[11]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[10]_INST_0_i_8_n_0 ), + .O(\result_o[10]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[10]_INST_0_i_3 + (.I0(data0[10]), + .I1(a_i[10]), + .I2(b_i[10]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[10]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[10]_INST_0_i_4 + (.I0(\result_o[11]_INST_0_i_10_n_0 ), + .I1(\result_o[10]_INST_0_i_9_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[10]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[10]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[10]), + .O(\result_o[10]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[10]_INST_0_i_6 + (.I0(\result_o[14]_INST_0_i_10_n_0 ), + .I1(\result_o[16]_INST_0_i_9_n_0 ), + .I2(\result_o[10]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[12]_INST_0_i_10_n_0 ), + .O(\result_o[10]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hC0004000)) + \result_o[10]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[10]), + .I4(b_i[10]), + .O(\result_o[10]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hAAAEAFAEAAAEAAAE)) + \result_o[10]_INST_0_i_8 + (.I0(\result_o[10]_INST_0_i_11_n_0 ), + .I1(\result_o[16]_INST_0_i_11_n_0 ), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(\result_o[30]_INST_0_i_9_n_0 ), + .I5(a_i[7]), + .O(\result_o[10]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[10]_INST_0_i_9 + (.I0(\result_o[14]_INST_0_i_12_n_0 ), + .I1(\result_o[16]_INST_0_i_10_n_0 ), + .I2(\result_o[10]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[12]_INST_0_i_12_n_0 ), + .O(\result_o[10]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[11]_INST_0 + (.I0(\result_o[11]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[11]_INST_0_i_2_n_0 ), + .I3(\result_o[11]_INST_0_i_3_n_0 ), + .I4(\result_o[11]_INST_0_i_4_n_0 ), + .I5(\result_o[11]_INST_0_i_5_n_0 ), + .O(result_o[11])); + (* SOFT_HLUTNM = "soft_lutpair39" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[11]_INST_0_i_1 + (.I0(\result_o[12]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[11]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[11]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[11]_INST_0_i_10 + (.I0(\result_o[15]_INST_0_i_18_n_0 ), + .I1(\result_o[17]_INST_0_i_10_n_0 ), + .I2(\result_o[11]_INST_0_i_18_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[13]_INST_0_i_12_n_0 ), + .O(\result_o[11]_INST_0_i_10_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[11]_INST_0_i_11 + (.CI(\result_o[7]_INST_0_i_11_n_0 ), + .CO({\result_o[11]_INST_0_i_11_n_0 ,\result_o[11]_INST_0_i_11_n_1 ,\result_o[11]_INST_0_i_11_n_2 ,\result_o[11]_INST_0_i_11_n_3 }), + .CYINIT(\ ), + .DI(a_i[11:8]), + .O(data1[11:8]), + .S({\result_o[11]_INST_0_i_19_n_0 ,\result_o[11]_INST_0_i_20_n_0 ,\result_o[11]_INST_0_i_21_n_0 ,\result_o[11]_INST_0_i_22_n_0 })); + LUT6 #( + .INIT(64'hFF00AAAACCCCF0F0)) + \result_o[11]_INST_0_i_12 + (.I0(a_i[27]), + .I1(a_i[19]), + .I2(a_i[11]), + .I3(a_i[31]), + .I4(b_i[3]), + .I5(b_i[4]), + .O(\result_o[11]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[11]_INST_0_i_13 + (.I0(a_i[4]), + .I1(a_i[6]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[11]_INST_0_i_13_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[11]_INST_0_i_14 + (.I0(a_i[11]), + .I1(b_i[11]), + .O(\result_o[11]_INST_0_i_14_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[11]_INST_0_i_15 + (.I0(a_i[10]), + .I1(b_i[10]), + .O(\result_o[11]_INST_0_i_15_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[11]_INST_0_i_16 + (.I0(a_i[9]), + .I1(b_i[9]), + .O(\result_o[11]_INST_0_i_16_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[11]_INST_0_i_17 + (.I0(a_i[8]), + .I1(b_i[8]), + .O(\result_o[11]_INST_0_i_17_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair14" *) + LUT5 #( + .INIT(32'h3E0E3202)) + \result_o[11]_INST_0_i_18 + (.I0(a_i[11]), + .I1(b_i[4]), + .I2(b_i[3]), + .I3(a_i[19]), + .I4(a_i[27]), + .O(\result_o[11]_INST_0_i_18_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[11]_INST_0_i_19 + (.I0(b_i[11]), + .I1(a_i[11]), + .O(\result_o[11]_INST_0_i_19_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[11]_INST_0_i_2 + (.I0(\result_o[11]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[12]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[11]_INST_0_i_8_n_0 ), + .O(\result_o[11]_INST_0_i_2_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[11]_INST_0_i_20 + (.I0(b_i[10]), + .I1(a_i[10]), + .O(\result_o[11]_INST_0_i_20_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[11]_INST_0_i_21 + (.I0(b_i[9]), + .I1(a_i[9]), + .O(\result_o[11]_INST_0_i_21_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[11]_INST_0_i_22 + (.I0(b_i[8]), + .I1(a_i[8]), + .O(\result_o[11]_INST_0_i_22_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[11]_INST_0_i_3 + (.I0(data0[11]), + .I1(a_i[11]), + .I2(b_i[11]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[11]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[11]_INST_0_i_4 + (.I0(\result_o[12]_INST_0_i_9_n_0 ), + .I1(\result_o[11]_INST_0_i_10_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[11]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[11]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[11]), + .O(\result_o[11]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[11]_INST_0_i_6 + (.I0(\result_o[15]_INST_0_i_12_n_0 ), + .I1(\result_o[17]_INST_0_i_9_n_0 ), + .I2(\result_o[11]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[13]_INST_0_i_10_n_0 ), + .O(\result_o[11]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hC0004000)) + \result_o[11]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[11]), + .I4(b_i[11]), + .O(\result_o[11]_INST_0_i_7_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT5 #( + .INIT(32'hAFAEAAAE)) + \result_o[11]_INST_0_i_8 + (.I0(\result_o[11]_INST_0_i_13_n_0 ), + .I1(\result_o[17]_INST_0_i_11_n_0 ), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(\result_o[15]_INST_0_i_13_n_0 ), + .O(\result_o[11]_INST_0_i_8_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[11]_INST_0_i_9 + (.CI(\result_o[7]_INST_0_i_9_n_0 ), + .CO({\result_o[11]_INST_0_i_9_n_0 ,\result_o[11]_INST_0_i_9_n_1 ,\result_o[11]_INST_0_i_9_n_2 ,\result_o[11]_INST_0_i_9_n_3 }), + .CYINIT(\ ), + .DI(a_i[11:8]), + .O(data0[11:8]), + .S({\result_o[11]_INST_0_i_14_n_0 ,\result_o[11]_INST_0_i_15_n_0 ,\result_o[11]_INST_0_i_16_n_0 ,\result_o[11]_INST_0_i_17_n_0 })); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[12]_INST_0 + (.I0(\result_o[12]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[12]_INST_0_i_2_n_0 ), + .I3(\result_o[12]_INST_0_i_3_n_0 ), + .I4(\result_o[12]_INST_0_i_4_n_0 ), + .I5(\result_o[12]_INST_0_i_5_n_0 ), + .O(result_o[12])); + (* SOFT_HLUTNM = "soft_lutpair40" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[12]_INST_0_i_1 + (.I0(\result_o[13]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[12]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[12]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hFF00AAAACCCCF0F0)) + \result_o[12]_INST_0_i_10 + (.I0(a_i[28]), + .I1(a_i[20]), + .I2(a_i[12]), + .I3(a_i[31]), + .I4(b_i[3]), + .I5(b_i[4]), + .O(\result_o[12]_INST_0_i_10_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[12]_INST_0_i_11 + (.I0(a_i[5]), + .I1(a_i[7]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[12]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair15" *) + LUT5 #( + .INIT(32'h3E0E3202)) + \result_o[12]_INST_0_i_12 + (.I0(a_i[12]), + .I1(b_i[4]), + .I2(b_i[3]), + .I3(a_i[20]), + .I4(a_i[28]), + .O(\result_o[12]_INST_0_i_12_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[12]_INST_0_i_2 + (.I0(\result_o[12]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[13]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[12]_INST_0_i_8_n_0 ), + .O(\result_o[12]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[12]_INST_0_i_3 + (.I0(data0[12]), + .I1(a_i[12]), + .I2(b_i[12]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[12]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[12]_INST_0_i_4 + (.I0(\result_o[13]_INST_0_i_9_n_0 ), + .I1(\result_o[12]_INST_0_i_9_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[12]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[12]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[12]), + .O(\result_o[12]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[12]_INST_0_i_6 + (.I0(\result_o[16]_INST_0_i_9_n_0 ), + .I1(\result_o[18]_INST_0_i_9_n_0 ), + .I2(\result_o[12]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[14]_INST_0_i_10_n_0 ), + .O(\result_o[12]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hC0004000)) + \result_o[12]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[12]), + .I4(b_i[12]), + .O(\result_o[12]_INST_0_i_7_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT5 #( + .INIT(32'hAFAEAAAE)) + \result_o[12]_INST_0_i_8 + (.I0(\result_o[12]_INST_0_i_11_n_0 ), + .I1(\result_o[18]_INST_0_i_12_n_0 ), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(\result_o[16]_INST_0_i_11_n_0 ), + .O(\result_o[12]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[12]_INST_0_i_9 + (.I0(\result_o[16]_INST_0_i_10_n_0 ), + .I1(\result_o[18]_INST_0_i_11_n_0 ), + .I2(\result_o[12]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[14]_INST_0_i_12_n_0 ), + .O(\result_o[12]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[13]_INST_0 + (.I0(\result_o[13]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[13]_INST_0_i_2_n_0 ), + .I3(\result_o[13]_INST_0_i_3_n_0 ), + .I4(\result_o[13]_INST_0_i_4_n_0 ), + .I5(\result_o[13]_INST_0_i_5_n_0 ), + .O(result_o[13])); + (* SOFT_HLUTNM = "soft_lutpair40" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[13]_INST_0_i_1 + (.I0(\result_o[14]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[13]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[13]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hFF00AAAACCCCF0F0)) + \result_o[13]_INST_0_i_10 + (.I0(a_i[29]), + .I1(a_i[21]), + .I2(a_i[13]), + .I3(a_i[31]), + .I4(b_i[3]), + .I5(b_i[4]), + .O(\result_o[13]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT5 #( + .INIT(32'h10000000)) + \result_o[13]_INST_0_i_11 + (.I0(b_i[3]), + .I1(b_i[4]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(a_i[6]), + .O(\result_o[13]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair16" *) + LUT5 #( + .INIT(32'h3E0E3202)) + \result_o[13]_INST_0_i_12 + (.I0(a_i[13]), + .I1(b_i[4]), + .I2(b_i[3]), + .I3(a_i[21]), + .I4(a_i[29]), + .O(\result_o[13]_INST_0_i_12_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[13]_INST_0_i_2 + (.I0(\result_o[13]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[14]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[13]_INST_0_i_8_n_0 ), + .O(\result_o[13]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[13]_INST_0_i_3 + (.I0(data0[13]), + .I1(a_i[13]), + .I2(b_i[13]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[13]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[13]_INST_0_i_4 + (.I0(\result_o[14]_INST_0_i_9_n_0 ), + .I1(\result_o[13]_INST_0_i_9_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[13]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[13]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[13]), + .O(\result_o[13]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[13]_INST_0_i_6 + (.I0(\result_o[17]_INST_0_i_9_n_0 ), + .I1(\result_o[19]_INST_0_i_11_n_0 ), + .I2(\result_o[13]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[15]_INST_0_i_12_n_0 ), + .O(\result_o[13]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hC0004000)) + \result_o[13]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[13]), + .I4(b_i[13]), + .O(\result_o[13]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFEEFCCCCCEEFC)) + \result_o[13]_INST_0_i_8 + (.I0(\result_o[15]_INST_0_i_13_n_0 ), + .I1(\result_o[13]_INST_0_i_11_n_0 ), + .I2(\result_o[19]_INST_0_i_14_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[17]_INST_0_i_11_n_0 ), + .O(\result_o[13]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[13]_INST_0_i_9 + (.I0(\result_o[17]_INST_0_i_10_n_0 ), + .I1(\result_o[19]_INST_0_i_13_n_0 ), + .I2(\result_o[13]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[15]_INST_0_i_18_n_0 ), + .O(\result_o[13]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[14]_INST_0 + (.I0(\result_o[14]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[14]_INST_0_i_2_n_0 ), + .I3(\result_o[14]_INST_0_i_3_n_0 ), + .I4(\result_o[14]_INST_0_i_4_n_0 ), + .I5(\result_o[14]_INST_0_i_5_n_0 ), + .O(result_o[14])); + (* SOFT_HLUTNM = "soft_lutpair41" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[14]_INST_0_i_1 + (.I0(\result_o[15]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[14]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[14]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hFF00CCCCAAAAF0F0)) + \result_o[14]_INST_0_i_10 + (.I0(a_i[22]), + .I1(a_i[30]), + .I2(a_i[14]), + .I3(a_i[31]), + .I4(b_i[3]), + .I5(b_i[4]), + .O(\result_o[14]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair7" *) + LUT5 #( + .INIT(32'h10000000)) + \result_o[14]_INST_0_i_11 + (.I0(b_i[3]), + .I1(b_i[4]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(a_i[7]), + .O(\result_o[14]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair17" *) + LUT5 #( + .INIT(32'h3E0E3202)) + \result_o[14]_INST_0_i_12 + (.I0(a_i[14]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[30]), + .I4(a_i[22]), + .O(\result_o[14]_INST_0_i_12_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[14]_INST_0_i_2 + (.I0(\result_o[14]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[15]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[14]_INST_0_i_8_n_0 ), + .O(\result_o[14]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[14]_INST_0_i_3 + (.I0(data0[14]), + .I1(a_i[14]), + .I2(b_i[14]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[14]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[14]_INST_0_i_4 + (.I0(\result_o[15]_INST_0_i_10_n_0 ), + .I1(\result_o[14]_INST_0_i_9_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[14]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[14]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[14]), + .O(\result_o[14]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[14]_INST_0_i_6 + (.I0(\result_o[18]_INST_0_i_9_n_0 ), + .I1(\result_o[20]_INST_0_i_9_n_0 ), + .I2(\result_o[14]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[16]_INST_0_i_9_n_0 ), + .O(\result_o[14]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hC0004000)) + \result_o[14]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[14]), + .I4(b_i[14]), + .O(\result_o[14]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFEEFCCCCCEEFC)) + \result_o[14]_INST_0_i_8 + (.I0(\result_o[16]_INST_0_i_11_n_0 ), + .I1(\result_o[14]_INST_0_i_11_n_0 ), + .I2(\result_o[20]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[18]_INST_0_i_12_n_0 ), + .O(\result_o[14]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[14]_INST_0_i_9 + (.I0(\result_o[18]_INST_0_i_11_n_0 ), + .I1(\result_o[20]_INST_0_i_11_n_0 ), + .I2(\result_o[14]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[16]_INST_0_i_10_n_0 ), + .O(\result_o[14]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[15]_INST_0 + (.I0(\result_o[15]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[15]_INST_0_i_2_n_0 ), + .I3(\result_o[15]_INST_0_i_3_n_0 ), + .I4(\result_o[15]_INST_0_i_4_n_0 ), + .I5(\result_o[15]_INST_0_i_5_n_0 ), + .O(result_o[15])); + (* SOFT_HLUTNM = "soft_lutpair41" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[15]_INST_0_i_1 + (.I0(\result_o[16]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[15]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[15]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[15]_INST_0_i_10 + (.I0(\result_o[19]_INST_0_i_13_n_0 ), + .I1(\result_o[21]_INST_0_i_11_n_0 ), + .I2(\result_o[15]_INST_0_i_18_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[17]_INST_0_i_10_n_0 ), + .O(\result_o[15]_INST_0_i_10_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[15]_INST_0_i_11 + (.CI(\result_o[11]_INST_0_i_11_n_0 ), + .CO({\result_o[15]_INST_0_i_11_n_0 ,\result_o[15]_INST_0_i_11_n_1 ,\result_o[15]_INST_0_i_11_n_2 ,\result_o[15]_INST_0_i_11_n_3 }), + .CYINIT(\ ), + .DI(a_i[15:12]), + .O(data1[15:12]), + .S({\result_o[15]_INST_0_i_19_n_0 ,\result_o[15]_INST_0_i_20_n_0 ,\result_o[15]_INST_0_i_21_n_0 ,\result_o[15]_INST_0_i_22_n_0 })); + (* SOFT_HLUTNM = "soft_lutpair18" *) + LUT5 #( + .INIT(32'hFF00E2E2)) + \result_o[15]_INST_0_i_12 + (.I0(a_i[15]), + .I1(b_i[3]), + .I2(a_i[23]), + .I3(a_i[31]), + .I4(b_i[4]), + .O(\result_o[15]_INST_0_i_12_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair20" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[15]_INST_0_i_13 + (.I0(a_i[0]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[8]), + .O(\result_o[15]_INST_0_i_13_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[15]_INST_0_i_14 + (.I0(a_i[15]), + .I1(b_i[15]), + .O(\result_o[15]_INST_0_i_14_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[15]_INST_0_i_15 + (.I0(a_i[14]), + .I1(b_i[14]), + .O(\result_o[15]_INST_0_i_15_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[15]_INST_0_i_16 + (.I0(a_i[13]), + .I1(b_i[13]), + .O(\result_o[15]_INST_0_i_16_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[15]_INST_0_i_17 + (.I0(a_i[12]), + .I1(b_i[12]), + .O(\result_o[15]_INST_0_i_17_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair18" *) + LUT5 #( + .INIT(32'h0FAC00AC)) + \result_o[15]_INST_0_i_18 + (.I0(a_i[31]), + .I1(a_i[15]), + .I2(b_i[4]), + .I3(b_i[3]), + .I4(a_i[23]), + .O(\result_o[15]_INST_0_i_18_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[15]_INST_0_i_19 + (.I0(b_i[15]), + .I1(a_i[15]), + .O(\result_o[15]_INST_0_i_19_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[15]_INST_0_i_2 + (.I0(\result_o[15]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[16]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[15]_INST_0_i_8_n_0 ), + .O(\result_o[15]_INST_0_i_2_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[15]_INST_0_i_20 + (.I0(b_i[14]), + .I1(a_i[14]), + .O(\result_o[15]_INST_0_i_20_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[15]_INST_0_i_21 + (.I0(b_i[13]), + .I1(a_i[13]), + .O(\result_o[15]_INST_0_i_21_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[15]_INST_0_i_22 + (.I0(b_i[12]), + .I1(a_i[12]), + .O(\result_o[15]_INST_0_i_22_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[15]_INST_0_i_3 + (.I0(data0[15]), + .I1(a_i[15]), + .I2(b_i[15]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[15]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[15]_INST_0_i_4 + (.I0(\result_o[16]_INST_0_i_7_n_0 ), + .I1(\result_o[15]_INST_0_i_10_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[15]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[15]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[15]), + .O(\result_o[15]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[15]_INST_0_i_6 + (.I0(\result_o[19]_INST_0_i_11_n_0 ), + .I1(\result_o[21]_INST_0_i_9_n_0 ), + .I2(\result_o[15]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[17]_INST_0_i_9_n_0 ), + .O(\result_o[15]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hC0004000)) + \result_o[15]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[15]), + .I4(b_i[15]), + .O(\result_o[15]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[15]_INST_0_i_8 + (.I0(\result_o[17]_INST_0_i_11_n_0 ), + .I1(\result_o[15]_INST_0_i_13_n_0 ), + .I2(\result_o[21]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[19]_INST_0_i_14_n_0 ), + .O(\result_o[15]_INST_0_i_8_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[15]_INST_0_i_9 + (.CI(\result_o[11]_INST_0_i_9_n_0 ), + .CO({\result_o[15]_INST_0_i_9_n_0 ,\result_o[15]_INST_0_i_9_n_1 ,\result_o[15]_INST_0_i_9_n_2 ,\result_o[15]_INST_0_i_9_n_3 }), + .CYINIT(\ ), + .DI(a_i[15:12]), + .O(data0[15:12]), + .S({\result_o[15]_INST_0_i_14_n_0 ,\result_o[15]_INST_0_i_15_n_0 ,\result_o[15]_INST_0_i_16_n_0 ,\result_o[15]_INST_0_i_17_n_0 })); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[16]_INST_0 + (.I0(\result_o[16]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[16]_INST_0_i_2_n_0 ), + .I3(\result_o[16]_INST_0_i_3_n_0 ), + .I4(\result_o[16]_INST_0_i_4_n_0 ), + .I5(\result_o[16]_INST_0_i_5_n_0 ), + .O(result_o[16])); + (* SOFT_HLUTNM = "soft_lutpair42" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[16]_INST_0_i_1 + (.I0(\result_o[17]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[16]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[16]_INST_0_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair11" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[16]_INST_0_i_10 + (.I0(a_i[24]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[16]), + .O(\result_o[16]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair22" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[16]_INST_0_i_11 + (.I0(a_i[1]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[9]), + .O(\result_o[16]_INST_0_i_11_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[16]_INST_0_i_2 + (.I0(\result_o[17]_INST_0_i_7_n_0 ), + .I1(\result_o[16]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[16]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[16]_INST_0_i_3 + (.I0(\result_o[16]_INST_0_i_8_n_0 ), + .I1(\result_o[17]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[16]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[16]_INST_0_i_4 + (.I0(data0[16]), + .I1(b_i[16]), + .I2(a_i[16]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[16]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[16]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[16]), + .O(\result_o[16]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[16]_INST_0_i_6 + (.I0(\result_o[20]_INST_0_i_9_n_0 ), + .I1(\result_o[22]_INST_0_i_9_n_0 ), + .I2(\result_o[16]_INST_0_i_9_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[18]_INST_0_i_9_n_0 ), + .O(\result_o[16]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[16]_INST_0_i_7 + (.I0(\result_o[20]_INST_0_i_11_n_0 ), + .I1(\result_o[22]_INST_0_i_11_n_0 ), + .I2(\result_o[16]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[18]_INST_0_i_11_n_0 ), + .O(\result_o[16]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[16]_INST_0_i_8 + (.I0(\result_o[18]_INST_0_i_12_n_0 ), + .I1(\result_o[16]_INST_0_i_11_n_0 ), + .I2(\result_o[22]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[20]_INST_0_i_12_n_0 ), + .O(\result_o[16]_INST_0_i_8_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair19" *) + LUT5 #( + .INIT(32'hFF00E2E2)) + \result_o[16]_INST_0_i_9 + (.I0(a_i[16]), + .I1(b_i[3]), + .I2(a_i[24]), + .I3(a_i[31]), + .I4(b_i[4]), + .O(\result_o[16]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[17]_INST_0 + (.I0(\result_o[17]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[17]_INST_0_i_2_n_0 ), + .I3(\result_o[17]_INST_0_i_3_n_0 ), + .I4(\result_o[17]_INST_0_i_4_n_0 ), + .I5(\result_o[17]_INST_0_i_5_n_0 ), + .O(result_o[17])); + (* SOFT_HLUTNM = "soft_lutpair42" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[17]_INST_0_i_1 + (.I0(\result_o[18]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[17]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[17]_INST_0_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair12" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[17]_INST_0_i_10 + (.I0(a_i[25]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[17]), + .O(\result_o[17]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair24" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[17]_INST_0_i_11 + (.I0(a_i[2]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[10]), + .O(\result_o[17]_INST_0_i_11_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[17]_INST_0_i_2 + (.I0(\result_o[18]_INST_0_i_7_n_0 ), + .I1(\result_o[17]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[17]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[17]_INST_0_i_3 + (.I0(\result_o[17]_INST_0_i_8_n_0 ), + .I1(\result_o[18]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[17]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[17]_INST_0_i_4 + (.I0(data0[17]), + .I1(b_i[17]), + .I2(a_i[17]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[17]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[17]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[17]), + .O(\result_o[17]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[17]_INST_0_i_6 + (.I0(\result_o[21]_INST_0_i_9_n_0 ), + .I1(\result_o[23]_INST_0_i_10_n_0 ), + .I2(\result_o[17]_INST_0_i_9_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[19]_INST_0_i_11_n_0 ), + .O(\result_o[17]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[17]_INST_0_i_7 + (.I0(\result_o[21]_INST_0_i_11_n_0 ), + .I1(\result_o[23]_INST_0_i_12_n_0 ), + .I2(\result_o[17]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[19]_INST_0_i_13_n_0 ), + .O(\result_o[17]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[17]_INST_0_i_8 + (.I0(\result_o[19]_INST_0_i_14_n_0 ), + .I1(\result_o[17]_INST_0_i_11_n_0 ), + .I2(\result_o[23]_INST_0_i_13_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[21]_INST_0_i_12_n_0 ), + .O(\result_o[17]_INST_0_i_8_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair21" *) + LUT5 #( + .INIT(32'hFF00E2E2)) + \result_o[17]_INST_0_i_9 + (.I0(a_i[17]), + .I1(b_i[3]), + .I2(a_i[25]), + .I3(a_i[31]), + .I4(b_i[4]), + .O(\result_o[17]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[18]_INST_0 + (.I0(\result_o[18]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[18]_INST_0_i_2_n_0 ), + .I3(\result_o[18]_INST_0_i_3_n_0 ), + .I4(\result_o[18]_INST_0_i_4_n_0 ), + .I5(\result_o[18]_INST_0_i_5_n_0 ), + .O(result_o[18])); + (* SOFT_HLUTNM = "soft_lutpair43" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[18]_INST_0_i_1 + (.I0(\result_o[19]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[18]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[18]_INST_0_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair8" *) + LUT5 #( + .INIT(32'h10000000)) + \result_o[18]_INST_0_i_10 + (.I0(b_i[3]), + .I1(b_i[4]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(a_i[24]), + .O(\result_o[18]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair13" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[18]_INST_0_i_11 + (.I0(a_i[26]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[18]), + .O(\result_o[18]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair26" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[18]_INST_0_i_12 + (.I0(a_i[3]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[11]), + .O(\result_o[18]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[18]_INST_0_i_2 + (.I0(\result_o[19]_INST_0_i_7_n_0 ), + .I1(\result_o[18]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[18]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[18]_INST_0_i_3 + (.I0(\result_o[18]_INST_0_i_8_n_0 ), + .I1(\result_o[19]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[18]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[18]_INST_0_i_4 + (.I0(data0[18]), + .I1(b_i[18]), + .I2(a_i[18]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[18]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[18]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[18]), + .O(\result_o[18]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[18]_INST_0_i_6 + (.I0(\result_o[22]_INST_0_i_9_n_0 ), + .I1(\result_o[24]_INST_0_i_9_n_0 ), + .I2(\result_o[18]_INST_0_i_9_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[20]_INST_0_i_9_n_0 ), + .O(\result_o[18]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'hCCFFEEFCCCCCEEFC)) + \result_o[18]_INST_0_i_7 + (.I0(\result_o[22]_INST_0_i_11_n_0 ), + .I1(\result_o[18]_INST_0_i_10_n_0 ), + .I2(\result_o[18]_INST_0_i_11_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[20]_INST_0_i_11_n_0 ), + .O(\result_o[18]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[18]_INST_0_i_8 + (.I0(\result_o[20]_INST_0_i_12_n_0 ), + .I1(\result_o[18]_INST_0_i_12_n_0 ), + .I2(\result_o[24]_INST_0_i_11_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[22]_INST_0_i_12_n_0 ), + .O(\result_o[18]_INST_0_i_8_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair23" *) + LUT5 #( + .INIT(32'hFF00E2E2)) + \result_o[18]_INST_0_i_9 + (.I0(a_i[18]), + .I1(b_i[3]), + .I2(a_i[26]), + .I3(a_i[31]), + .I4(b_i[4]), + .O(\result_o[18]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[19]_INST_0 + (.I0(\result_o[19]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[19]_INST_0_i_2_n_0 ), + .I3(\result_o[19]_INST_0_i_3_n_0 ), + .I4(\result_o[19]_INST_0_i_4_n_0 ), + .I5(\result_o[19]_INST_0_i_5_n_0 ), + .O(result_o[19])); + (* SOFT_HLUTNM = "soft_lutpair43" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[19]_INST_0_i_1 + (.I0(\result_o[20]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[19]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[19]_INST_0_i_1_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[19]_INST_0_i_10 + (.CI(\result_o[15]_INST_0_i_11_n_0 ), + .CO({\result_o[19]_INST_0_i_10_n_0 ,\result_o[19]_INST_0_i_10_n_1 ,\result_o[19]_INST_0_i_10_n_2 ,\result_o[19]_INST_0_i_10_n_3 }), + .CYINIT(\ ), + .DI(a_i[19:16]), + .O(data1[19:16]), + .S({\result_o[19]_INST_0_i_19_n_0 ,\result_o[19]_INST_0_i_20_n_0 ,\result_o[19]_INST_0_i_21_n_0 ,\result_o[19]_INST_0_i_22_n_0 })); + (* SOFT_HLUTNM = "soft_lutpair25" *) + LUT5 #( + .INIT(32'hFF00E2E2)) + \result_o[19]_INST_0_i_11 + (.I0(a_i[19]), + .I1(b_i[3]), + .I2(a_i[27]), + .I3(a_i[31]), + .I4(b_i[4]), + .O(\result_o[19]_INST_0_i_11_n_0 )); + LUT5 #( + .INIT(32'h10000000)) + \result_o[19]_INST_0_i_12 + (.I0(b_i[3]), + .I1(b_i[4]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(a_i[25]), + .O(\result_o[19]_INST_0_i_12_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair14" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[19]_INST_0_i_13 + (.I0(a_i[27]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[19]), + .O(\result_o[19]_INST_0_i_13_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair28" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[19]_INST_0_i_14 + (.I0(a_i[4]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[12]), + .O(\result_o[19]_INST_0_i_14_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[19]_INST_0_i_15 + (.I0(a_i[19]), + .I1(b_i[19]), + .O(\result_o[19]_INST_0_i_15_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[19]_INST_0_i_16 + (.I0(a_i[18]), + .I1(b_i[18]), + .O(\result_o[19]_INST_0_i_16_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[19]_INST_0_i_17 + (.I0(a_i[17]), + .I1(b_i[17]), + .O(\result_o[19]_INST_0_i_17_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[19]_INST_0_i_18 + (.I0(a_i[16]), + .I1(b_i[16]), + .O(\result_o[19]_INST_0_i_18_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[19]_INST_0_i_19 + (.I0(b_i[19]), + .I1(a_i[19]), + .O(\result_o[19]_INST_0_i_19_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[19]_INST_0_i_2 + (.I0(\result_o[20]_INST_0_i_7_n_0 ), + .I1(\result_o[19]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[19]_INST_0_i_2_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[19]_INST_0_i_20 + (.I0(b_i[18]), + .I1(a_i[18]), + .O(\result_o[19]_INST_0_i_20_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[19]_INST_0_i_21 + (.I0(b_i[17]), + .I1(a_i[17]), + .O(\result_o[19]_INST_0_i_21_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[19]_INST_0_i_22 + (.I0(b_i[16]), + .I1(a_i[16]), + .O(\result_o[19]_INST_0_i_22_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[19]_INST_0_i_3 + (.I0(\result_o[19]_INST_0_i_8_n_0 ), + .I1(\result_o[20]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[19]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[19]_INST_0_i_4 + (.I0(data0[19]), + .I1(b_i[19]), + .I2(a_i[19]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[19]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[19]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[19]), + .O(\result_o[19]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[19]_INST_0_i_6 + (.I0(\result_o[23]_INST_0_i_10_n_0 ), + .I1(\result_o[25]_INST_0_i_9_n_0 ), + .I2(\result_o[19]_INST_0_i_11_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[21]_INST_0_i_9_n_0 ), + .O(\result_o[19]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'hCCFFEEFCCCCCEEFC)) + \result_o[19]_INST_0_i_7 + (.I0(\result_o[23]_INST_0_i_12_n_0 ), + .I1(\result_o[19]_INST_0_i_12_n_0 ), + .I2(\result_o[19]_INST_0_i_13_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[21]_INST_0_i_11_n_0 ), + .O(\result_o[19]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[19]_INST_0_i_8 + (.I0(\result_o[21]_INST_0_i_12_n_0 ), + .I1(\result_o[19]_INST_0_i_14_n_0 ), + .I2(\result_o[25]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[23]_INST_0_i_13_n_0 ), + .O(\result_o[19]_INST_0_i_8_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[19]_INST_0_i_9 + (.CI(\result_o[15]_INST_0_i_9_n_0 ), + .CO({\result_o[19]_INST_0_i_9_n_0 ,\result_o[19]_INST_0_i_9_n_1 ,\result_o[19]_INST_0_i_9_n_2 ,\result_o[19]_INST_0_i_9_n_3 }), + .CYINIT(\ ), + .DI(a_i[19:16]), + .O(data0[19:16]), + .S({\result_o[19]_INST_0_i_15_n_0 ,\result_o[19]_INST_0_i_16_n_0 ,\result_o[19]_INST_0_i_17_n_0 ,\result_o[19]_INST_0_i_18_n_0 })); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[1]_INST_0 + (.I0(\result_o[1]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[1]_INST_0_i_2_n_0 ), + .I3(\result_o[1]_INST_0_i_3_n_0 ), + .I4(\result_o[1]_INST_0_i_4_n_0 ), + .I5(\result_o[1]_INST_0_i_5_n_0 ), + .O(result_o[1])); + LUT6 #( + .INIT(64'hFFFFFFE0E0E0E0E0)) + \result_o[1]_INST_0_i_1 + (.I0(\result_o[2]_INST_0_i_7_n_0 ), + .I1(\result_o[2]_INST_0_i_8_n_0 ), + .I2(\result_o[30]_INST_0_i_7_n_0 ), + .I3(\result_o[1]_INST_0_i_6_n_0 ), + .I4(\result_o[1]_INST_0_i_7_n_0 ), + .I5(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[1]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFF08080800)) + \result_o[1]_INST_0_i_2 + (.I0(alu_op_i[1]), + .I1(alu_op_i[2]), + .I2(alu_op_i[0]), + .I3(a_i[1]), + .I4(b_i[1]), + .I5(\result_o[1]_INST_0_i_8_n_0 ), + .O(\result_o[1]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'hC1C0454445440100)) + \result_o[1]_INST_0_i_3 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(data0[1]), + .I4(a_i[1]), + .I5(b_i[1]), + .O(\result_o[1]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFE0E0E0E0E0)) + \result_o[1]_INST_0_i_4 + (.I0(\result_o[2]_INST_0_i_12_n_0 ), + .I1(\result_o[2]_INST_0_i_8_n_0 ), + .I2(\result_o[30]_INST_0_i_11_n_0 ), + .I3(\result_o[1]_INST_0_i_6_n_0 ), + .I4(\result_o[1]_INST_0_i_7_n_0 ), + .I5(\result_o[30]_INST_0_i_12_n_0 ), + .O(\result_o[1]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[1]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[1]), + .O(\result_o[1]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hEEEEEEEEEEEEEAAA)) + \result_o[1]_INST_0_i_6 + (.I0(\result_o[1]_INST_0_i_9_n_0 ), + .I1(b_i[1]), + .I2(\result_o[7]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(\result_o[3]_INST_0_i_13_n_0 ), + .I5(\result_o[3]_INST_0_i_14_n_0 ), + .O(\result_o[1]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'hFFFFF888F888F888)) + \result_o[1]_INST_0_i_7 + (.I0(\result_o[0]_INST_0_i_8_n_0 ), + .I1(a_i[1]), + .I2(\result_o[31]_INST_0_i_23_n_0 ), + .I3(a_i[9]), + .I4(\result_o[5]_INST_0_i_10_n_0 ), + .I5(\result_o[31]_INST_0_i_25_n_0 ), + .O(\result_o[1]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'h000000F800000088)) + \result_o[1]_INST_0_i_8 + (.I0(\result_o[30]_INST_0_i_15_n_0 ), + .I1(a_i[0]), + .I2(\result_o[31]_INST_0_i_11_n_0 ), + .I3(\result_o[30]_INST_0_i_9_n_0 ), + .I4(\result_o[30]_INST_0_i_8_n_0 ), + .I5(a_i[1]), + .O(\result_o[1]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[1]_INST_0_i_9 + (.I0(a_i[25]), + .I1(a_i[17]), + .I2(b_i[3]), + .I3(b_i[4]), + .I4(b_i[2]), + .I5(b_i[1]), + .O(\result_o[1]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[20]_INST_0 + (.I0(\result_o[20]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[20]_INST_0_i_2_n_0 ), + .I3(\result_o[20]_INST_0_i_3_n_0 ), + .I4(\result_o[20]_INST_0_i_4_n_0 ), + .I5(\result_o[20]_INST_0_i_5_n_0 ), + .O(result_o[20])); + (* SOFT_HLUTNM = "soft_lutpair44" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[20]_INST_0_i_1 + (.I0(\result_o[21]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[20]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[20]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[20]_INST_0_i_10 + (.I0(a_i[26]), + .I1(a_i[24]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[20]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair15" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[20]_INST_0_i_11 + (.I0(a_i[28]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[20]), + .O(\result_o[20]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair30" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[20]_INST_0_i_12 + (.I0(a_i[5]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[13]), + .O(\result_o[20]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[20]_INST_0_i_2 + (.I0(\result_o[21]_INST_0_i_7_n_0 ), + .I1(\result_o[20]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[20]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[20]_INST_0_i_3 + (.I0(\result_o[20]_INST_0_i_8_n_0 ), + .I1(\result_o[21]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[20]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[20]_INST_0_i_4 + (.I0(data0[20]), + .I1(b_i[20]), + .I2(a_i[20]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[20]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[20]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[20]), + .O(\result_o[20]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[20]_INST_0_i_6 + (.I0(\result_o[24]_INST_0_i_9_n_0 ), + .I1(\result_o[26]_INST_0_i_10_n_0 ), + .I2(\result_o[20]_INST_0_i_9_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[22]_INST_0_i_9_n_0 ), + .O(\result_o[20]_INST_0_i_6_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT5 #( + .INIT(32'hAFAEAAAE)) + \result_o[20]_INST_0_i_7 + (.I0(\result_o[20]_INST_0_i_10_n_0 ), + .I1(\result_o[20]_INST_0_i_11_n_0 ), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(\result_o[22]_INST_0_i_11_n_0 ), + .O(\result_o[20]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[20]_INST_0_i_8 + (.I0(\result_o[22]_INST_0_i_12_n_0 ), + .I1(\result_o[20]_INST_0_i_12_n_0 ), + .I2(\result_o[26]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[24]_INST_0_i_11_n_0 ), + .O(\result_o[20]_INST_0_i_8_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair27" *) + LUT5 #( + .INIT(32'hFF00E2E2)) + \result_o[20]_INST_0_i_9 + (.I0(a_i[20]), + .I1(b_i[3]), + .I2(a_i[28]), + .I3(a_i[31]), + .I4(b_i[4]), + .O(\result_o[20]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[21]_INST_0 + (.I0(\result_o[21]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[21]_INST_0_i_2_n_0 ), + .I3(\result_o[21]_INST_0_i_3_n_0 ), + .I4(\result_o[21]_INST_0_i_4_n_0 ), + .I5(\result_o[21]_INST_0_i_5_n_0 ), + .O(result_o[21])); + (* SOFT_HLUTNM = "soft_lutpair44" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[21]_INST_0_i_1 + (.I0(\result_o[22]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[21]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[21]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[21]_INST_0_i_10 + (.I0(a_i[27]), + .I1(a_i[25]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[21]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair16" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[21]_INST_0_i_11 + (.I0(a_i[29]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[21]), + .O(\result_o[21]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair32" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[21]_INST_0_i_12 + (.I0(a_i[6]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[14]), + .O(\result_o[21]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[21]_INST_0_i_2 + (.I0(\result_o[22]_INST_0_i_7_n_0 ), + .I1(\result_o[21]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[21]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[21]_INST_0_i_3 + (.I0(\result_o[21]_INST_0_i_8_n_0 ), + .I1(\result_o[22]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[21]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[21]_INST_0_i_4 + (.I0(data0[21]), + .I1(b_i[21]), + .I2(a_i[21]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[21]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[21]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[21]), + .O(\result_o[21]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[21]_INST_0_i_6 + (.I0(\result_o[25]_INST_0_i_9_n_0 ), + .I1(\result_o[25]_INST_0_i_10_n_0 ), + .I2(\result_o[21]_INST_0_i_9_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[23]_INST_0_i_10_n_0 ), + .O(\result_o[21]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hAFAEAAAE)) + \result_o[21]_INST_0_i_7 + (.I0(\result_o[21]_INST_0_i_10_n_0 ), + .I1(\result_o[21]_INST_0_i_11_n_0 ), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(\result_o[23]_INST_0_i_12_n_0 ), + .O(\result_o[21]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[21]_INST_0_i_8 + (.I0(\result_o[23]_INST_0_i_13_n_0 ), + .I1(\result_o[21]_INST_0_i_12_n_0 ), + .I2(\result_o[27]_INST_0_i_17_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[25]_INST_0_i_12_n_0 ), + .O(\result_o[21]_INST_0_i_8_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair29" *) + LUT5 #( + .INIT(32'hFF00E2E2)) + \result_o[21]_INST_0_i_9 + (.I0(a_i[21]), + .I1(b_i[3]), + .I2(a_i[29]), + .I3(a_i[31]), + .I4(b_i[4]), + .O(\result_o[21]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[22]_INST_0 + (.I0(\result_o[22]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[22]_INST_0_i_2_n_0 ), + .I3(\result_o[22]_INST_0_i_3_n_0 ), + .I4(\result_o[22]_INST_0_i_4_n_0 ), + .I5(\result_o[22]_INST_0_i_5_n_0 ), + .O(result_o[22])); + (* SOFT_HLUTNM = "soft_lutpair45" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[22]_INST_0_i_1 + (.I0(\result_o[23]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[22]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[22]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[22]_INST_0_i_10 + (.I0(a_i[28]), + .I1(a_i[26]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[22]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair17" *) + LUT4 #( + .INIT(16'h00CA)) + \result_o[22]_INST_0_i_11 + (.I0(a_i[22]), + .I1(a_i[30]), + .I2(b_i[3]), + .I3(b_i[4]), + .O(\result_o[22]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair33" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[22]_INST_0_i_12 + (.I0(a_i[7]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[15]), + .O(\result_o[22]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[22]_INST_0_i_2 + (.I0(\result_o[23]_INST_0_i_7_n_0 ), + .I1(\result_o[22]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[22]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[22]_INST_0_i_3 + (.I0(\result_o[22]_INST_0_i_8_n_0 ), + .I1(\result_o[23]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[22]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[22]_INST_0_i_4 + (.I0(data0[22]), + .I1(b_i[22]), + .I2(a_i[22]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[22]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[22]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[22]), + .O(\result_o[22]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[22]_INST_0_i_6 + (.I0(\result_o[26]_INST_0_i_10_n_0 ), + .I1(\result_o[26]_INST_0_i_11_n_0 ), + .I2(\result_o[22]_INST_0_i_9_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[24]_INST_0_i_9_n_0 ), + .O(\result_o[22]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'hAAAEAFAEAAAEAAAE)) + \result_o[22]_INST_0_i_7 + (.I0(\result_o[22]_INST_0_i_10_n_0 ), + .I1(\result_o[22]_INST_0_i_11_n_0 ), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(\result_o[30]_INST_0_i_9_n_0 ), + .I5(a_i[24]), + .O(\result_o[22]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[22]_INST_0_i_8 + (.I0(\result_o[24]_INST_0_i_11_n_0 ), + .I1(\result_o[22]_INST_0_i_12_n_0 ), + .I2(\result_o[28]_INST_0_i_15_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[26]_INST_0_i_12_n_0 ), + .O(\result_o[22]_INST_0_i_8_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair31" *) + LUT5 #( + .INIT(32'hFF00D8D8)) + \result_o[22]_INST_0_i_9 + (.I0(b_i[3]), + .I1(a_i[30]), + .I2(a_i[22]), + .I3(a_i[31]), + .I4(b_i[4]), + .O(\result_o[22]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[23]_INST_0 + (.I0(\result_o[23]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[23]_INST_0_i_2_n_0 ), + .I3(\result_o[23]_INST_0_i_3_n_0 ), + .I4(\result_o[23]_INST_0_i_4_n_0 ), + .I5(\result_o[23]_INST_0_i_5_n_0 ), + .O(result_o[23])); + (* SOFT_HLUTNM = "soft_lutpair45" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[23]_INST_0_i_1 + (.I0(\result_o[24]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[23]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[23]_INST_0_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair48" *) + LUT4 #( + .INIT(16'hCCCA)) + \result_o[23]_INST_0_i_10 + (.I0(a_i[23]), + .I1(a_i[31]), + .I2(b_i[3]), + .I3(b_i[4]), + .O(\result_o[23]_INST_0_i_10_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[23]_INST_0_i_11 + (.I0(a_i[29]), + .I1(a_i[27]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[23]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair48" *) + LUT4 #( + .INIT(16'h0B08)) + \result_o[23]_INST_0_i_12 + (.I0(a_i[31]), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[23]), + .O(\result_o[23]_INST_0_i_12_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair20" *) + LUT5 #( + .INIT(32'h00CCF0AA)) + \result_o[23]_INST_0_i_13 + (.I0(a_i[16]), + .I1(a_i[8]), + .I2(a_i[0]), + .I3(b_i[4]), + .I4(b_i[3]), + .O(\result_o[23]_INST_0_i_13_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[23]_INST_0_i_14 + (.I0(a_i[23]), + .I1(b_i[23]), + .O(\result_o[23]_INST_0_i_14_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[23]_INST_0_i_15 + (.I0(a_i[22]), + .I1(b_i[22]), + .O(\result_o[23]_INST_0_i_15_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[23]_INST_0_i_16 + (.I0(a_i[21]), + .I1(b_i[21]), + .O(\result_o[23]_INST_0_i_16_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[23]_INST_0_i_17 + (.I0(a_i[20]), + .I1(b_i[20]), + .O(\result_o[23]_INST_0_i_17_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[23]_INST_0_i_2 + (.I0(\result_o[24]_INST_0_i_7_n_0 ), + .I1(\result_o[23]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[23]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[23]_INST_0_i_3 + (.I0(\result_o[23]_INST_0_i_8_n_0 ), + .I1(\result_o[24]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[23]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[23]_INST_0_i_4 + (.I0(data0[23]), + .I1(b_i[23]), + .I2(a_i[23]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[23]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[23]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[23]), + .O(\result_o[23]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[23]_INST_0_i_6 + (.I0(\result_o[25]_INST_0_i_10_n_0 ), + .I1(\result_o[29]_INST_0_i_7_n_0 ), + .I2(\result_o[23]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[25]_INST_0_i_9_n_0 ), + .O(\result_o[23]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'hAAAEAFAEAAAEAAAE)) + \result_o[23]_INST_0_i_7 + (.I0(\result_o[23]_INST_0_i_11_n_0 ), + .I1(\result_o[23]_INST_0_i_12_n_0 ), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(\result_o[30]_INST_0_i_9_n_0 ), + .I5(a_i[25]), + .O(\result_o[23]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[23]_INST_0_i_8 + (.I0(\result_o[25]_INST_0_i_12_n_0 ), + .I1(\result_o[23]_INST_0_i_13_n_0 ), + .I2(\result_o[27]_INST_0_i_16_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[27]_INST_0_i_17_n_0 ), + .O(\result_o[23]_INST_0_i_8_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[23]_INST_0_i_9 + (.CI(\result_o[19]_INST_0_i_9_n_0 ), + .CO({\result_o[23]_INST_0_i_9_n_0 ,\result_o[23]_INST_0_i_9_n_1 ,\result_o[23]_INST_0_i_9_n_2 ,\result_o[23]_INST_0_i_9_n_3 }), + .CYINIT(\ ), + .DI(a_i[23:20]), + .O(data0[23:20]), + .S({\result_o[23]_INST_0_i_14_n_0 ,\result_o[23]_INST_0_i_15_n_0 ,\result_o[23]_INST_0_i_16_n_0 ,\result_o[23]_INST_0_i_17_n_0 })); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[24]_INST_0 + (.I0(\result_o[24]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[24]_INST_0_i_2_n_0 ), + .I3(\result_o[24]_INST_0_i_3_n_0 ), + .I4(\result_o[24]_INST_0_i_4_n_0 ), + .I5(\result_o[24]_INST_0_i_5_n_0 ), + .O(result_o[24])); + (* SOFT_HLUTNM = "soft_lutpair46" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[24]_INST_0_i_1 + (.I0(\result_o[25]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[24]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[24]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'h0000000000000A0C)) + \result_o[24]_INST_0_i_10 + (.I0(a_i[26]), + .I1(a_i[24]), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[24]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair22" *) + LUT5 #( + .INIT(32'h00CCF0AA)) + \result_o[24]_INST_0_i_11 + (.I0(a_i[17]), + .I1(a_i[9]), + .I2(a_i[1]), + .I3(b_i[4]), + .I4(b_i[3]), + .O(\result_o[24]_INST_0_i_11_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[24]_INST_0_i_2 + (.I0(\result_o[25]_INST_0_i_7_n_0 ), + .I1(\result_o[24]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[24]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[24]_INST_0_i_3 + (.I0(\result_o[24]_INST_0_i_8_n_0 ), + .I1(\result_o[25]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[24]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[24]_INST_0_i_4 + (.I0(data0[24]), + .I1(b_i[24]), + .I2(a_i[24]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[24]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[24]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[24]), + .O(\result_o[24]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[24]_INST_0_i_6 + (.I0(\result_o[26]_INST_0_i_11_n_0 ), + .I1(\result_o[29]_INST_0_i_6_n_0 ), + .I2(\result_o[24]_INST_0_i_9_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[26]_INST_0_i_10_n_0 ), + .O(\result_o[24]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFF44400400)) + \result_o[24]_INST_0_i_7 + (.I0(\result_o[30]_INST_0_i_9_n_0 ), + .I1(b_i[2]), + .I2(b_i[1]), + .I3(a_i[28]), + .I4(a_i[30]), + .I5(\result_o[24]_INST_0_i_10_n_0 ), + .O(\result_o[24]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[24]_INST_0_i_8 + (.I0(\result_o[26]_INST_0_i_12_n_0 ), + .I1(\result_o[24]_INST_0_i_11_n_0 ), + .I2(\result_o[28]_INST_0_i_14_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[28]_INST_0_i_15_n_0 ), + .O(\result_o[24]_INST_0_i_8_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair19" *) + LUT4 #( + .INIT(16'hCCCA)) + \result_o[24]_INST_0_i_9 + (.I0(a_i[24]), + .I1(a_i[31]), + .I2(b_i[3]), + .I3(b_i[4]), + .O(\result_o[24]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[25]_INST_0 + (.I0(\result_o[25]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[25]_INST_0_i_2_n_0 ), + .I3(\result_o[25]_INST_0_i_3_n_0 ), + .I4(\result_o[25]_INST_0_i_4_n_0 ), + .I5(\result_o[25]_INST_0_i_5_n_0 ), + .O(result_o[25])); + (* SOFT_HLUTNM = "soft_lutpair46" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[25]_INST_0_i_1 + (.I0(\result_o[26]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[25]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[25]_INST_0_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair25" *) + LUT4 #( + .INIT(16'hCCCA)) + \result_o[25]_INST_0_i_10 + (.I0(a_i[27]), + .I1(a_i[31]), + .I2(b_i[3]), + .I3(b_i[4]), + .O(\result_o[25]_INST_0_i_10_n_0 )); + LUT6 #( + .INIT(64'h0000000000000A0C)) + \result_o[25]_INST_0_i_11 + (.I0(a_i[27]), + .I1(a_i[25]), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[25]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair24" *) + LUT5 #( + .INIT(32'h00CCF0AA)) + \result_o[25]_INST_0_i_12 + (.I0(a_i[18]), + .I1(a_i[10]), + .I2(a_i[2]), + .I3(b_i[4]), + .I4(b_i[3]), + .O(\result_o[25]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[25]_INST_0_i_2 + (.I0(\result_o[26]_INST_0_i_8_n_0 ), + .I1(\result_o[25]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[25]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[25]_INST_0_i_3 + (.I0(\result_o[25]_INST_0_i_8_n_0 ), + .I1(\result_o[26]_INST_0_i_9_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[25]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[25]_INST_0_i_4 + (.I0(data0[25]), + .I1(b_i[25]), + .I2(a_i[25]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[25]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[25]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[25]), + .O(\result_o[25]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[25]_INST_0_i_6 + (.I0(\result_o[29]_INST_0_i_7_n_0 ), + .I1(a_i[31]), + .I2(\result_o[25]_INST_0_i_9_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[25]_INST_0_i_10_n_0 ), + .O(\result_o[25]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFF44400400)) + \result_o[25]_INST_0_i_7 + (.I0(\result_o[30]_INST_0_i_9_n_0 ), + .I1(b_i[2]), + .I2(b_i[1]), + .I3(a_i[29]), + .I4(a_i[31]), + .I5(\result_o[25]_INST_0_i_11_n_0 ), + .O(\result_o[25]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[25]_INST_0_i_8 + (.I0(\result_o[27]_INST_0_i_17_n_0 ), + .I1(\result_o[25]_INST_0_i_12_n_0 ), + .I2(\result_o[31]_INST_0_i_20_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[27]_INST_0_i_16_n_0 ), + .O(\result_o[25]_INST_0_i_8_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair21" *) + LUT4 #( + .INIT(16'hCCCA)) + \result_o[25]_INST_0_i_9 + (.I0(a_i[25]), + .I1(a_i[31]), + .I2(b_i[3]), + .I3(b_i[4]), + .O(\result_o[25]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[26]_INST_0 + (.I0(\result_o[26]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[26]_INST_0_i_2_n_0 ), + .I3(\result_o[26]_INST_0_i_3_n_0 ), + .I4(\result_o[26]_INST_0_i_4_n_0 ), + .I5(\result_o[26]_INST_0_i_5_n_0 ), + .O(result_o[26])); + (* SOFT_HLUTNM = "soft_lutpair47" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[26]_INST_0_i_1 + (.I0(\result_o[27]_INST_0_i_5_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[26]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[26]_INST_0_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair23" *) + LUT4 #( + .INIT(16'hCCCA)) + \result_o[26]_INST_0_i_10 + (.I0(a_i[26]), + .I1(a_i[31]), + .I2(b_i[3]), + .I3(b_i[4]), + .O(\result_o[26]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair27" *) + LUT4 #( + .INIT(16'hCCCA)) + \result_o[26]_INST_0_i_11 + (.I0(a_i[28]), + .I1(a_i[31]), + .I2(b_i[3]), + .I3(b_i[4]), + .O(\result_o[26]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair26" *) + LUT5 #( + .INIT(32'h00CCF0AA)) + \result_o[26]_INST_0_i_12 + (.I0(a_i[19]), + .I1(a_i[11]), + .I2(a_i[3]), + .I3(b_i[4]), + .I4(b_i[3]), + .O(\result_o[26]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[26]_INST_0_i_2 + (.I0(\result_o[26]_INST_0_i_7_n_0 ), + .I1(\result_o[26]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[26]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[26]_INST_0_i_3 + (.I0(\result_o[26]_INST_0_i_9_n_0 ), + .I1(\result_o[27]_INST_0_i_7_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[26]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[26]_INST_0_i_4 + (.I0(data0[26]), + .I1(b_i[26]), + .I2(a_i[26]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[26]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[26]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[26]), + .O(\result_o[26]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[26]_INST_0_i_6 + (.I0(\result_o[29]_INST_0_i_6_n_0 ), + .I1(a_i[31]), + .I2(\result_o[26]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[26]_INST_0_i_11_n_0 ), + .O(\result_o[26]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'h0000000000F0CCAA)) + \result_o[26]_INST_0_i_7 + (.I0(a_i[27]), + .I1(a_i[29]), + .I2(a_i[31]), + .I3(b_i[1]), + .I4(b_i[2]), + .I5(\result_o[30]_INST_0_i_9_n_0 ), + .O(\result_o[26]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'h0000000000F0CCAA)) + \result_o[26]_INST_0_i_8 + (.I0(a_i[26]), + .I1(a_i[28]), + .I2(a_i[30]), + .I3(b_i[1]), + .I4(b_i[2]), + .I5(\result_o[30]_INST_0_i_9_n_0 ), + .O(\result_o[26]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[26]_INST_0_i_9 + (.I0(\result_o[28]_INST_0_i_15_n_0 ), + .I1(\result_o[26]_INST_0_i_12_n_0 ), + .I2(\result_o[31]_INST_0_i_26_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[28]_INST_0_i_14_n_0 ), + .O(\result_o[26]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFEEEAEEEAEEEA)) + \result_o[27]_INST_0 + (.I0(\result_o[27]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[27]_INST_0_i_2_n_0 ), + .I3(\result_o[27]_INST_0_i_3_n_0 ), + .I4(\result_o[28]_INST_0_i_4_n_0 ), + .I5(data1[27]), + .O(result_o[27])); + (* SOFT_HLUTNM = "soft_lutpair47" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[27]_INST_0_i_1 + (.I0(\result_o[28]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[27]_INST_0_i_5_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[27]_INST_0_i_1_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[27]_INST_0_i_10 + (.I0(b_i[27]), + .I1(a_i[27]), + .O(\result_o[27]_INST_0_i_10_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[27]_INST_0_i_11 + (.I0(b_i[26]), + .I1(a_i[26]), + .O(\result_o[27]_INST_0_i_11_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[27]_INST_0_i_12 + (.I0(b_i[25]), + .I1(a_i[25]), + .O(\result_o[27]_INST_0_i_12_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[27]_INST_0_i_13 + (.I0(b_i[24]), + .I1(a_i[24]), + .O(\result_o[27]_INST_0_i_13_n_0 )); + LUT6 #( + .INIT(64'h0000000000000A0C)) + \result_o[27]_INST_0_i_14 + (.I0(a_i[29]), + .I1(a_i[27]), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[27]_INST_0_i_14_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair7" *) + LUT4 #( + .INIT(16'h0004)) + \result_o[27]_INST_0_i_15 + (.I0(b_i[1]), + .I1(b_i[2]), + .I2(b_i[4]), + .I3(b_i[3]), + .O(\result_o[27]_INST_0_i_15_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair32" *) + LUT5 #( + .INIT(32'h00CCF0AA)) + \result_o[27]_INST_0_i_16 + (.I0(a_i[22]), + .I1(a_i[14]), + .I2(a_i[6]), + .I3(b_i[4]), + .I4(b_i[3]), + .O(\result_o[27]_INST_0_i_16_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair28" *) + LUT5 #( + .INIT(32'h00CCF0AA)) + \result_o[27]_INST_0_i_17 + (.I0(a_i[20]), + .I1(a_i[12]), + .I2(a_i[4]), + .I3(b_i[4]), + .I4(b_i[3]), + .O(\result_o[27]_INST_0_i_17_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[27]_INST_0_i_18 + (.I0(a_i[27]), + .I1(b_i[27]), + .O(\result_o[27]_INST_0_i_18_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[27]_INST_0_i_19 + (.I0(a_i[26]), + .I1(b_i[26]), + .O(\result_o[27]_INST_0_i_19_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[27]_INST_0_i_2 + (.I0(\result_o[27]_INST_0_i_6_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[28]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[27]_INST_0_i_7_n_0 ), + .O(\result_o[27]_INST_0_i_2_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[27]_INST_0_i_20 + (.I0(a_i[25]), + .I1(b_i[25]), + .O(\result_o[27]_INST_0_i_20_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[27]_INST_0_i_21 + (.I0(a_i[24]), + .I1(b_i[24]), + .O(\result_o[27]_INST_0_i_21_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[27]_INST_0_i_22 + (.I0(b_i[23]), + .I1(a_i[23]), + .O(\result_o[27]_INST_0_i_22_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[27]_INST_0_i_23 + (.I0(b_i[22]), + .I1(a_i[22]), + .O(\result_o[27]_INST_0_i_23_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[27]_INST_0_i_24 + (.I0(b_i[21]), + .I1(a_i[21]), + .O(\result_o[27]_INST_0_i_24_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[27]_INST_0_i_25 + (.I0(b_i[20]), + .I1(a_i[20]), + .O(\result_o[27]_INST_0_i_25_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[27]_INST_0_i_3 + (.I0(data0[27]), + .I1(b_i[27]), + .I2(a_i[27]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[27]_INST_0_i_3_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[27]_INST_0_i_4 + (.CI(\result_o[27]_INST_0_i_9_n_0 ), + .CO({\result_o[27]_INST_0_i_4_n_0 ,\result_o[27]_INST_0_i_4_n_1 ,\result_o[27]_INST_0_i_4_n_2 ,\result_o[27]_INST_0_i_4_n_3 }), + .CYINIT(\ ), + .DI(a_i[27:24]), + .O(data1[27:24]), + .S({\result_o[27]_INST_0_i_10_n_0 ,\result_o[27]_INST_0_i_11_n_0 ,\result_o[27]_INST_0_i_12_n_0 ,\result_o[27]_INST_0_i_13_n_0 })); + LUT6 #( + .INIT(64'hFFFF0000FEAE5404)) + \result_o[27]_INST_0_i_5 + (.I0(\result_o[30]_INST_0_i_9_n_0 ), + .I1(a_i[27]), + .I2(b_i[1]), + .I3(a_i[29]), + .I4(a_i[31]), + .I5(b_i[2]), + .O(\result_o[27]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hFFF8F8F888888888)) + \result_o[27]_INST_0_i_6 + (.I0(\result_o[28]_INST_0_i_13_n_0 ), + .I1(\result_o[30]_INST_0_i_11_n_0 ), + .I2(\result_o[27]_INST_0_i_14_n_0 ), + .I3(a_i[31]), + .I4(\result_o[27]_INST_0_i_15_n_0 ), + .I5(\result_o[30]_INST_0_i_12_n_0 ), + .O(\result_o[27]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[27]_INST_0_i_7 + (.I0(\result_o[27]_INST_0_i_16_n_0 ), + .I1(\result_o[27]_INST_0_i_17_n_0 ), + .I2(\result_o[31]_INST_0_i_9_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[31]_INST_0_i_20_n_0 ), + .O(\result_o[27]_INST_0_i_7_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[27]_INST_0_i_8 + (.CI(\result_o[23]_INST_0_i_9_n_0 ), + .CO({\result_o[27]_INST_0_i_8_n_0 ,\result_o[27]_INST_0_i_8_n_1 ,\result_o[27]_INST_0_i_8_n_2 ,\result_o[27]_INST_0_i_8_n_3 }), + .CYINIT(\ ), + .DI(a_i[27:24]), + .O(data0[27:24]), + .S({\result_o[27]_INST_0_i_18_n_0 ,\result_o[27]_INST_0_i_19_n_0 ,\result_o[27]_INST_0_i_20_n_0 ,\result_o[27]_INST_0_i_21_n_0 })); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[27]_INST_0_i_9 + (.CI(\result_o[19]_INST_0_i_10_n_0 ), + .CO({\result_o[27]_INST_0_i_9_n_0 ,\result_o[27]_INST_0_i_9_n_1 ,\result_o[27]_INST_0_i_9_n_2 ,\result_o[27]_INST_0_i_9_n_3 }), + .CYINIT(\ ), + .DI(a_i[23:20]), + .O(data1[23:20]), + .S({\result_o[27]_INST_0_i_22_n_0 ,\result_o[27]_INST_0_i_23_n_0 ,\result_o[27]_INST_0_i_24_n_0 ,\result_o[27]_INST_0_i_25_n_0 })); + LUT6 #( + .INIT(64'hFFFFEEEAEEEAEEEA)) + \result_o[28]_INST_0 + (.I0(\result_o[28]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[28]_INST_0_i_2_n_0 ), + .I3(\result_o[28]_INST_0_i_3_n_0 ), + .I4(\result_o[28]_INST_0_i_4_n_0 ), + .I5(data1[28]), + .O(result_o[28])); + LUT6 #( + .INIT(64'hFFFFB800B800B800)) + \result_o[28]_INST_0_i_1 + (.I0(a_i[31]), + .I1(\result_o[30]_INST_0_i_8_n_0 ), + .I2(\result_o[29]_INST_0_i_7_n_0 ), + .I3(\result_o[30]_INST_0_i_7_n_0 ), + .I4(\result_o[28]_INST_0_i_6_n_0 ), + .I5(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[28]_INST_0_i_1_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[28]_INST_0_i_10 + (.I0(b_i[30]), + .I1(a_i[30]), + .O(\result_o[28]_INST_0_i_10_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[28]_INST_0_i_11 + (.I0(b_i[29]), + .I1(a_i[29]), + .O(\result_o[28]_INST_0_i_11_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[28]_INST_0_i_12 + (.I0(b_i[28]), + .I1(a_i[28]), + .O(\result_o[28]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h0000000000000A0C)) + \result_o[28]_INST_0_i_13 + (.I0(a_i[30]), + .I1(a_i[28]), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[28]_INST_0_i_13_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair33" *) + LUT5 #( + .INIT(32'h00CCF0AA)) + \result_o[28]_INST_0_i_14 + (.I0(a_i[23]), + .I1(a_i[15]), + .I2(a_i[7]), + .I3(b_i[4]), + .I4(b_i[3]), + .O(\result_o[28]_INST_0_i_14_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair30" *) + LUT5 #( + .INIT(32'h00CCF0AA)) + \result_o[28]_INST_0_i_15 + (.I0(a_i[21]), + .I1(a_i[13]), + .I2(a_i[5]), + .I3(b_i[4]), + .I4(b_i[3]), + .O(\result_o[28]_INST_0_i_15_n_0 )); + LUT6 #( + .INIT(64'hFFFFEEEAEEEAEEEA)) + \result_o[28]_INST_0_i_2 + (.I0(\result_o[28]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[29]_INST_0_i_10_n_0 ), + .I3(\result_o[29]_INST_0_i_9_n_0 ), + .I4(\result_o[30]_INST_0_i_15_n_0 ), + .I5(\result_o[28]_INST_0_i_8_n_0 ), + .O(\result_o[28]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[28]_INST_0_i_3 + (.I0(data0[28]), + .I1(b_i[28]), + .I2(a_i[28]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[28]_INST_0_i_3_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT5 #( + .INIT(32'h00010000)) + \result_o[28]_INST_0_i_4 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(alu_op_i[4]), + .I4(alu_op_i[3]), + .O(\result_o[28]_INST_0_i_4_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[28]_INST_0_i_5 + (.CI(\result_o[27]_INST_0_i_4_n_0 ), + .CO({\result_o[28]_INST_0_i_5_n_1 ,\result_o[28]_INST_0_i_5_n_2 ,\result_o[28]_INST_0_i_5_n_3 }), + .CYINIT(\ ), + .DI({\ ,a_i[30:28]}), + .O(data1[31:28]), + .S({\result_o[28]_INST_0_i_9_n_0 ,\result_o[28]_INST_0_i_10_n_0 ,\result_o[28]_INST_0_i_11_n_0 ,\result_o[28]_INST_0_i_12_n_0 })); + LUT6 #( + .INIT(64'hFFFF0000FEAE5404)) + \result_o[28]_INST_0_i_6 + (.I0(\result_o[30]_INST_0_i_9_n_0 ), + .I1(a_i[28]), + .I2(b_i[1]), + .I3(a_i[30]), + .I4(a_i[31]), + .I5(b_i[2]), + .O(\result_o[28]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[28]_INST_0_i_7 + (.I0(\result_o[29]_INST_0_i_8_n_0 ), + .I1(\result_o[28]_INST_0_i_13_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[28]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[28]_INST_0_i_8 + (.I0(\result_o[28]_INST_0_i_14_n_0 ), + .I1(\result_o[28]_INST_0_i_15_n_0 ), + .I2(\result_o[31]_INST_0_i_24_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[31]_INST_0_i_26_n_0 ), + .O(\result_o[28]_INST_0_i_8_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[28]_INST_0_i_9 + (.I0(b_i[31]), + .I1(a_i[31]), + .O(\result_o[28]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[29]_INST_0 + (.I0(\result_o[29]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[29]_INST_0_i_2_n_0 ), + .I3(\result_o[29]_INST_0_i_3_n_0 ), + .I4(\result_o[29]_INST_0_i_4_n_0 ), + .I5(\result_o[29]_INST_0_i_5_n_0 ), + .O(result_o[29])); + LUT6 #( + .INIT(64'hF0FFF088C088C088)) + \result_o[29]_INST_0_i_1 + (.I0(\result_o[29]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(a_i[31]), + .I3(\result_o[30]_INST_0_i_8_n_0 ), + .I4(\result_o[29]_INST_0_i_7_n_0 ), + .I5(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[29]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'h2A0A220228082000)) + \result_o[29]_INST_0_i_10 + (.I0(\result_o[3]_INST_0_i_7_n_0 ), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[6]), + .I4(a_i[14]), + .I5(a_i[22]), + .O(\result_o[29]_INST_0_i_10_n_0 )); + LUT6 #( + .INIT(64'hFFFF020002000200)) + \result_o[29]_INST_0_i_2 + (.I0(\result_o[30]_INST_0_i_11_n_0 ), + .I1(\result_o[30]_INST_0_i_9_n_0 ), + .I2(\result_o[30]_INST_0_i_8_n_0 ), + .I3(a_i[30]), + .I4(\result_o[29]_INST_0_i_8_n_0 ), + .I5(\result_o[30]_INST_0_i_12_n_0 ), + .O(\result_o[29]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFE0E0E0E0E0)) + \result_o[29]_INST_0_i_3 + (.I0(\result_o[29]_INST_0_i_9_n_0 ), + .I1(\result_o[29]_INST_0_i_10_n_0 ), + .I2(\result_o[30]_INST_0_i_15_n_0 ), + .I3(\result_o[30]_INST_0_i_13_n_0 ), + .I4(\result_o[30]_INST_0_i_14_n_0 ), + .I5(\result_o[31]_INST_0_i_11_n_0 ), + .O(\result_o[29]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[29]_INST_0_i_4 + (.I0(data0[29]), + .I1(b_i[29]), + .I2(a_i[29]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[29]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[29]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[29]), + .O(\result_o[29]_INST_0_i_5_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair31" *) + LUT4 #( + .INIT(16'hCCCA)) + \result_o[29]_INST_0_i_6 + (.I0(a_i[30]), + .I1(a_i[31]), + .I2(b_i[3]), + .I3(b_i[4]), + .O(\result_o[29]_INST_0_i_6_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair29" *) + LUT4 #( + .INIT(16'hCCCA)) + \result_o[29]_INST_0_i_7 + (.I0(a_i[29]), + .I1(a_i[31]), + .I2(b_i[3]), + .I3(b_i[4]), + .O(\result_o[29]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'h0000000000000A0C)) + \result_o[29]_INST_0_i_8 + (.I0(a_i[31]), + .I1(a_i[29]), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[29]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'h33BB33BB33BB3088)) + \result_o[29]_INST_0_i_9 + (.I0(\result_o[31]_INST_0_i_9_n_0 ), + .I1(b_i[1]), + .I2(\result_o[31]_INST_0_i_20_n_0 ), + .I3(b_i[2]), + .I4(\result_o[31]_INST_0_i_21_n_0 ), + .I5(\result_o[31]_INST_0_i_22_n_0 ), + .O(\result_o[29]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[2]_INST_0 + (.I0(\result_o[2]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[2]_INST_0_i_2_n_0 ), + .I3(\result_o[2]_INST_0_i_3_n_0 ), + .I4(\result_o[2]_INST_0_i_4_n_0 ), + .I5(\result_o[2]_INST_0_i_5_n_0 ), + .O(result_o[2])); + LUT6 #( + .INIT(64'hFFFFFFE0E0E0E0E0)) + \result_o[2]_INST_0_i_1 + (.I0(\result_o[2]_INST_0_i_6_n_0 ), + .I1(\result_o[3]_INST_0_i_8_n_0 ), + .I2(\result_o[30]_INST_0_i_7_n_0 ), + .I3(\result_o[2]_INST_0_i_7_n_0 ), + .I4(\result_o[2]_INST_0_i_8_n_0 ), + .I5(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[2]_INST_0_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT5 #( + .INIT(32'h00010000)) + \result_o[2]_INST_0_i_10 + (.I0(b_i[3]), + .I1(b_i[4]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(a_i[1]), + .O(\result_o[2]_INST_0_i_10_n_0 )); + LUT6 #( + .INIT(64'h0088A0AA0088A000)) + \result_o[2]_INST_0_i_11 + (.I0(\result_o[3]_INST_0_i_7_n_0 ), + .I1(a_i[25]), + .I2(a_i[17]), + .I3(b_i[3]), + .I4(b_i[4]), + .I5(a_i[9]), + .O(\result_o[2]_INST_0_i_11_n_0 )); + LUT6 #( + .INIT(64'h0088A0AA0088A000)) + \result_o[2]_INST_0_i_12 + (.I0(\result_o[3]_INST_0_i_7_n_0 ), + .I1(a_i[24]), + .I2(a_i[16]), + .I3(b_i[3]), + .I4(b_i[4]), + .I5(a_i[8]), + .O(\result_o[2]_INST_0_i_12_n_0 )); + LUT5 #( + .INIT(32'h00000A0C)) + \result_o[2]_INST_0_i_13 + (.I0(a_i[10]), + .I1(a_i[2]), + .I2(b_i[4]), + .I3(b_i[3]), + .I4(b_i[2]), + .O(\result_o[2]_INST_0_i_13_n_0 )); + LUT5 #( + .INIT(32'h0000AC00)) + \result_o[2]_INST_0_i_14 + (.I0(a_i[26]), + .I1(a_i[18]), + .I2(b_i[3]), + .I3(b_i[4]), + .I4(b_i[2]), + .O(\result_o[2]_INST_0_i_14_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFA8FFA8FFA8)) + \result_o[2]_INST_0_i_2 + (.I0(\result_o[31]_INST_0_i_16_n_0 ), + .I1(a_i[2]), + .I2(b_i[2]), + .I3(\result_o[2]_INST_0_i_9_n_0 ), + .I4(\result_o[2]_INST_0_i_10_n_0 ), + .I5(\result_o[30]_INST_0_i_15_n_0 ), + .O(\result_o[2]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'hC1C0454445440100)) + \result_o[2]_INST_0_i_3 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(data0[2]), + .I4(a_i[2]), + .I5(b_i[2]), + .O(\result_o[2]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFE0E0E0E0E0)) + \result_o[2]_INST_0_i_4 + (.I0(\result_o[2]_INST_0_i_11_n_0 ), + .I1(\result_o[3]_INST_0_i_8_n_0 ), + .I2(\result_o[30]_INST_0_i_11_n_0 ), + .I3(\result_o[2]_INST_0_i_12_n_0 ), + .I4(\result_o[2]_INST_0_i_8_n_0 ), + .I5(\result_o[30]_INST_0_i_12_n_0 ), + .O(\result_o[2]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[2]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[2]), + .O(\result_o[2]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'h8888888880000000)) + \result_o[2]_INST_0_i_6 + (.I0(b_i[2]), + .I1(b_i[1]), + .I2(b_i[4]), + .I3(b_i[3]), + .I4(a_i[31]), + .I5(\result_o[3]_INST_0_i_11_n_0 ), + .O(\result_o[2]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'h8888888880000000)) + \result_o[2]_INST_0_i_7 + (.I0(b_i[2]), + .I1(b_i[1]), + .I2(b_i[4]), + .I3(b_i[3]), + .I4(a_i[31]), + .I5(\result_o[8]_INST_0_i_12_n_0 ), + .O(\result_o[2]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'h33BB33BB33BB3088)) + \result_o[2]_INST_0_i_8 + (.I0(\result_o[4]_INST_0_i_10_n_0 ), + .I1(b_i[1]), + .I2(\result_o[6]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(\result_o[2]_INST_0_i_13_n_0 ), + .I5(\result_o[2]_INST_0_i_14_n_0 ), + .O(\result_o[2]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'h0022002000020000)) + \result_o[2]_INST_0_i_9 + (.I0(\result_o[31]_INST_0_i_11_n_0 ), + .I1(\result_o[30]_INST_0_i_9_n_0 ), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(a_i[2]), + .I5(a_i[0]), + .O(\result_o[2]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[30]_INST_0 + (.I0(\result_o[30]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[30]_INST_0_i_3_n_0 ), + .I3(\result_o[30]_INST_0_i_4_n_0 ), + .I4(\result_o[30]_INST_0_i_5_n_0 ), + .I5(\result_o[30]_INST_0_i_6_n_0 ), + .O(result_o[30])); + LUT6 #( + .INIT(64'hFF00FE30AA00AA00)) + \result_o[30]_INST_0_i_1 + (.I0(\result_o[30]_INST_0_i_7_n_0 ), + .I1(\result_o[30]_INST_0_i_8_n_0 ), + .I2(a_i[30]), + .I3(a_i[31]), + .I4(\result_o[30]_INST_0_i_9_n_0 ), + .I5(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[30]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'h0000000000004000)) + \result_o[30]_INST_0_i_10 + (.I0(alu_op_i[1]), + .I1(alu_op_i[0]), + .I2(alu_op_i[2]), + .I3(alu_op_i[3]), + .I4(alu_op_i[4]), + .I5(b_i[0]), + .O(\result_o[30]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair35" *) + LUT4 #( + .INIT(16'h0800)) + \result_o[30]_INST_0_i_11 + (.I0(alu_op_i[2]), + .I1(alu_op_i[0]), + .I2(alu_op_i[1]), + .I3(b_i[0]), + .O(\result_o[30]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair35" *) + LUT4 #( + .INIT(16'h0008)) + \result_o[30]_INST_0_i_12 + (.I0(alu_op_i[2]), + .I1(alu_op_i[0]), + .I2(alu_op_i[1]), + .I3(b_i[0]), + .O(\result_o[30]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h33BB33BB33BB3088)) + \result_o[30]_INST_0_i_13 + (.I0(\result_o[31]_INST_0_i_24_n_0 ), + .I1(b_i[1]), + .I2(\result_o[31]_INST_0_i_26_n_0 ), + .I3(b_i[2]), + .I4(\result_o[31]_INST_0_i_27_n_0 ), + .I5(\result_o[31]_INST_0_i_28_n_0 ), + .O(\result_o[30]_INST_0_i_13_n_0 )); + LUT6 #( + .INIT(64'h2A0A220228082000)) + \result_o[30]_INST_0_i_14 + (.I0(\result_o[3]_INST_0_i_7_n_0 ), + .I1(b_i[3]), + .I2(b_i[4]), + .I3(a_i[7]), + .I4(a_i[15]), + .I5(a_i[23]), + .O(\result_o[30]_INST_0_i_14_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair34" *) + LUT4 #( + .INIT(16'h0400)) + \result_o[30]_INST_0_i_15 + (.I0(alu_op_i[2]), + .I1(alu_op_i[0]), + .I2(alu_op_i[1]), + .I3(b_i[0]), + .O(\result_o[30]_INST_0_i_15_n_0 )); + LUT6 #( + .INIT(64'hEEEEEEEEEEEEEAAA)) + \result_o[30]_INST_0_i_16 + (.I0(\result_o[31]_INST_0_i_8_n_0 ), + .I1(b_i[1]), + .I2(\result_o[31]_INST_0_i_20_n_0 ), + .I3(b_i[2]), + .I4(\result_o[31]_INST_0_i_21_n_0 ), + .I5(\result_o[31]_INST_0_i_22_n_0 ), + .O(\result_o[30]_INST_0_i_16_n_0 )); + LUT6 #( + .INIT(64'hFFFFF888F888F888)) + \result_o[30]_INST_0_i_17 + (.I0(\result_o[0]_INST_0_i_8_n_0 ), + .I1(a_i[30]), + .I2(\result_o[31]_INST_0_i_23_n_0 ), + .I3(a_i[22]), + .I4(\result_o[31]_INST_0_i_9_n_0 ), + .I5(\result_o[31]_INST_0_i_25_n_0 ), + .O(\result_o[30]_INST_0_i_17_n_0 )); + LUT2 #( + .INIT(4'h1)) + \result_o[30]_INST_0_i_2 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .O(\result_o[30]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h000000F800000088)) + \result_o[30]_INST_0_i_3 + (.I0(\result_o[30]_INST_0_i_11_n_0 ), + .I1(a_i[31]), + .I2(\result_o[30]_INST_0_i_12_n_0 ), + .I3(\result_o[30]_INST_0_i_9_n_0 ), + .I4(\result_o[30]_INST_0_i_8_n_0 ), + .I5(a_i[30]), + .O(\result_o[30]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFE0E0E0E0E0)) + \result_o[30]_INST_0_i_4 + (.I0(\result_o[30]_INST_0_i_13_n_0 ), + .I1(\result_o[30]_INST_0_i_14_n_0 ), + .I2(\result_o[30]_INST_0_i_15_n_0 ), + .I3(\result_o[30]_INST_0_i_16_n_0 ), + .I4(\result_o[30]_INST_0_i_17_n_0 ), + .I5(\result_o[31]_INST_0_i_11_n_0 ), + .O(\result_o[30]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'hC0000000FC3C00AA)) + \result_o[30]_INST_0_i_5 + (.I0(data0[30]), + .I1(b_i[30]), + .I2(a_i[30]), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(alu_op_i[0]), + .O(\result_o[30]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[30]_INST_0_i_6 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[30]), + .O(\result_o[30]_INST_0_i_6_n_0 )); + LUT6 #( + .INIT(64'h0000400000000000)) + \result_o[30]_INST_0_i_7 + (.I0(alu_op_i[1]), + .I1(alu_op_i[0]), + .I2(alu_op_i[2]), + .I3(alu_op_i[3]), + .I4(alu_op_i[4]), + .I5(b_i[0]), + .O(\result_o[30]_INST_0_i_7_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT2 #( + .INIT(4'hE)) + \result_o[30]_INST_0_i_8 + (.I0(b_i[1]), + .I1(b_i[2]), + .O(\result_o[30]_INST_0_i_8_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair8" *) + LUT2 #( + .INIT(4'hE)) + \result_o[30]_INST_0_i_9 + (.I0(b_i[3]), + .I1(b_i[4]), + .O(\result_o[30]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFFFFFFFF8)) + \result_o[31]_INST_0 + (.I0(\result_o[31]_INST_0_i_1_n_0 ), + .I1(\result_o[31]_INST_0_i_2_n_0 ), + .I2(\result_o[31]_INST_0_i_3_n_0 ), + .I3(\result_o[31]_INST_0_i_4_n_0 ), + .I4(\result_o[31]_INST_0_i_5_n_0 ), + .I5(\result_o[31]_INST_0_i_6_n_0 ), + .O(result_o[31])); + LUT6 #( + .INIT(64'hFFFFFFFFEFECECEC)) + \result_o[31]_INST_0_i_1 + (.I0(\result_o[31]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_8_n_0 ), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(\result_o[31]_INST_0_i_9_n_0 ), + .I5(\result_o[31]_INST_0_i_10_n_0 ), + .O(\result_o[31]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'h0000000A0000000C)) + \result_o[31]_INST_0_i_10 + (.I0(a_i[22]), + .I1(a_i[30]), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[31]_INST_0_i_10_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair34" *) + LUT4 #( + .INIT(16'h0004)) + \result_o[31]_INST_0_i_11 + (.I0(alu_op_i[2]), + .I1(alu_op_i[0]), + .I2(alu_op_i[1]), + .I3(b_i[0]), + .O(\result_o[31]_INST_0_i_11_n_0 )); + LUT6 #( + .INIT(64'hFFFFF888F888F888)) + \result_o[31]_INST_0_i_12 + (.I0(\result_o[0]_INST_0_i_8_n_0 ), + .I1(a_i[31]), + .I2(\result_o[31]_INST_0_i_23_n_0 ), + .I3(a_i[23]), + .I4(\result_o[31]_INST_0_i_24_n_0 ), + .I5(\result_o[31]_INST_0_i_25_n_0 ), + .O(\result_o[31]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[31]_INST_0_i_13 + (.I0(a_i[7]), + .I1(a_i[15]), + .I2(b_i[3]), + .I3(b_i[4]), + .I4(b_i[2]), + .I5(b_i[1]), + .O(\result_o[31]_INST_0_i_13_n_0 )); + LUT4 #( + .INIT(16'hFFF8)) + \result_o[31]_INST_0_i_14 + (.I0(\result_o[31]_INST_0_i_26_n_0 ), + .I1(b_i[2]), + .I2(\result_o[31]_INST_0_i_27_n_0 ), + .I3(\result_o[31]_INST_0_i_28_n_0 ), + .O(\result_o[31]_INST_0_i_14_n_0 )); + LUT6 #( + .INIT(64'h010000FF01FF0000)) + \result_o[31]_INST_0_i_15 + (.I0(\result_o[30]_INST_0_i_8_n_0 ), + .I1(\result_o[30]_INST_0_i_9_n_0 ), + .I2(b_i[0]), + .I3(alu_op_i[0]), + .I4(a_i[31]), + .I5(b_i[31]), + .O(\result_o[31]_INST_0_i_15_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair10" *) + LUT3 #( + .INIT(8'h40)) + \result_o[31]_INST_0_i_16 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .O(\result_o[31]_INST_0_i_16_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT3 #( + .INIT(8'h01)) + \result_o[31]_INST_0_i_17 + (.I0(alu_op_i[1]), + .I1(alu_op_i[2]), + .I2(alu_op_i[0]), + .O(\result_o[31]_INST_0_i_17_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[31]_INST_0_i_18 + (.CI(\result_o[27]_INST_0_i_8_n_0 ), + .CO({\result_o[31]_INST_0_i_18_n_1 ,\result_o[31]_INST_0_i_18_n_2 ,\result_o[31]_INST_0_i_18_n_3 }), + .CYINIT(\ ), + .DI({\ ,a_i[30:28]}), + .O(data0[31:28]), + .S({\result_o[31]_INST_0_i_29_n_0 ,\result_o[31]_INST_0_i_30_n_0 ,\result_o[31]_INST_0_i_31_n_0 ,\result_o[31]_INST_0_i_32_n_0 })); + (* SOFT_HLUTNM = "soft_lutpair9" *) + LUT3 #( + .INIT(8'h40)) + \result_o[31]_INST_0_i_19 + (.I0(alu_op_i[1]), + .I1(alu_op_i[0]), + .I2(alu_op_i[2]), + .O(\result_o[31]_INST_0_i_19_n_0 )); + LUT6 #( + .INIT(64'h0000000000000020)) + \result_o[31]_INST_0_i_2 + (.I0(b_i[0]), + .I1(alu_op_i[1]), + .I2(alu_op_i[0]), + .I3(alu_op_i[2]), + .I4(alu_op_i[4]), + .I5(alu_op_i[3]), + .O(\result_o[31]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[31]_INST_0_i_20 + (.I0(a_i[8]), + .I1(a_i[0]), + .I2(a_i[24]), + .I3(b_i[4]), + .I4(b_i[3]), + .I5(a_i[16]), + .O(\result_o[31]_INST_0_i_20_n_0 )); + LUT5 #( + .INIT(32'h00000A0C)) + \result_o[31]_INST_0_i_21 + (.I0(a_i[20]), + .I1(a_i[28]), + .I2(b_i[4]), + .I3(b_i[3]), + .I4(b_i[2]), + .O(\result_o[31]_INST_0_i_21_n_0 )); + LUT5 #( + .INIT(32'h0000AC00)) + \result_o[31]_INST_0_i_22 + (.I0(a_i[4]), + .I1(a_i[12]), + .I2(b_i[3]), + .I3(b_i[4]), + .I4(b_i[2]), + .O(\result_o[31]_INST_0_i_22_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT4 #( + .INIT(16'h0004)) + \result_o[31]_INST_0_i_23 + (.I0(b_i[4]), + .I1(b_i[3]), + .I2(b_i[2]), + .I3(b_i[1]), + .O(\result_o[31]_INST_0_i_23_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[31]_INST_0_i_24 + (.I0(a_i[11]), + .I1(a_i[3]), + .I2(a_i[27]), + .I3(b_i[4]), + .I4(b_i[3]), + .I5(a_i[19]), + .O(\result_o[31]_INST_0_i_24_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT2 #( + .INIT(4'h2)) + \result_o[31]_INST_0_i_25 + (.I0(b_i[2]), + .I1(b_i[1]), + .O(\result_o[31]_INST_0_i_25_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[31]_INST_0_i_26 + (.I0(a_i[9]), + .I1(a_i[1]), + .I2(a_i[25]), + .I3(b_i[4]), + .I4(b_i[3]), + .I5(a_i[17]), + .O(\result_o[31]_INST_0_i_26_n_0 )); + LUT5 #( + .INIT(32'h00000A0C)) + \result_o[31]_INST_0_i_27 + (.I0(a_i[21]), + .I1(a_i[29]), + .I2(b_i[4]), + .I3(b_i[3]), + .I4(b_i[2]), + .O(\result_o[31]_INST_0_i_27_n_0 )); + LUT5 #( + .INIT(32'h0000AC00)) + \result_o[31]_INST_0_i_28 + (.I0(a_i[5]), + .I1(a_i[13]), + .I2(b_i[3]), + .I3(b_i[4]), + .I4(b_i[2]), + .O(\result_o[31]_INST_0_i_28_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[31]_INST_0_i_29 + (.I0(a_i[31]), + .I1(b_i[31]), + .O(\result_o[31]_INST_0_i_29_n_0 )); + LUT6 #( + .INIT(64'h8888888088808880)) + \result_o[31]_INST_0_i_3 + (.I0(\result_o[30]_INST_0_i_2_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[31]_INST_0_i_12_n_0 ), + .I3(\result_o[31]_INST_0_i_13_n_0 ), + .I4(b_i[1]), + .I5(\result_o[31]_INST_0_i_14_n_0 ), + .O(\result_o[31]_INST_0_i_3_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[31]_INST_0_i_30 + (.I0(a_i[30]), + .I1(b_i[30]), + .O(\result_o[31]_INST_0_i_30_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[31]_INST_0_i_31 + (.I0(a_i[29]), + .I1(b_i[29]), + .O(\result_o[31]_INST_0_i_31_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[31]_INST_0_i_32 + (.I0(a_i[28]), + .I1(b_i[28]), + .O(\result_o[31]_INST_0_i_32_n_0 )); + LUT6 #( + .INIT(64'h88F0000000000000)) + \result_o[31]_INST_0_i_4 + (.I0(b_i[31]), + .I1(a_i[31]), + .I2(\result_o[31]_INST_0_i_15_n_0 ), + .I3(alu_op_i[1]), + .I4(alu_op_i[2]), + .I5(\result_o[30]_INST_0_i_2_n_0 ), + .O(\result_o[31]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'hFFA80000A8A80000)) + \result_o[31]_INST_0_i_5 + (.I0(\result_o[31]_INST_0_i_16_n_0 ), + .I1(b_i[31]), + .I2(a_i[31]), + .I3(\result_o[31]_INST_0_i_17_n_0 ), + .I4(\result_o[30]_INST_0_i_2_n_0 ), + .I5(data0[31]), + .O(\result_o[31]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'h0000F88800000000)) + \result_o[31]_INST_0_i_6 + (.I0(a_i[31]), + .I1(\result_o[31]_INST_0_i_19_n_0 ), + .I2(data1[31]), + .I3(\result_o[31]_INST_0_i_17_n_0 ), + .I4(alu_op_i[4]), + .I5(alu_op_i[3]), + .O(\result_o[31]_INST_0_i_6_n_0 )); + LUT4 #( + .INIT(16'hFFF8)) + \result_o[31]_INST_0_i_7 + (.I0(\result_o[31]_INST_0_i_20_n_0 ), + .I1(b_i[2]), + .I2(\result_o[31]_INST_0_i_21_n_0 ), + .I3(\result_o[31]_INST_0_i_22_n_0 ), + .O(\result_o[31]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[31]_INST_0_i_8 + (.I0(a_i[6]), + .I1(a_i[14]), + .I2(b_i[3]), + .I3(b_i[4]), + .I4(b_i[2]), + .I5(b_i[1]), + .O(\result_o[31]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[31]_INST_0_i_9 + (.I0(a_i[10]), + .I1(a_i[2]), + .I2(a_i[26]), + .I3(b_i[4]), + .I4(b_i[3]), + .I5(a_i[18]), + .O(\result_o[31]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[3]_INST_0 + (.I0(\result_o[3]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[3]_INST_0_i_2_n_0 ), + .I3(\result_o[3]_INST_0_i_3_n_0 ), + .I4(\result_o[3]_INST_0_i_4_n_0 ), + .I5(\result_o[3]_INST_0_i_5_n_0 ), + .O(result_o[3])); + LUT6 #( + .INIT(64'hFFFFF88888888888)) + \result_o[3]_INST_0_i_1 + (.I0(\result_o[4]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[3]_INST_0_i_6_n_0 ), + .I3(\result_o[3]_INST_0_i_7_n_0 ), + .I4(\result_o[3]_INST_0_i_8_n_0 ), + .I5(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[3]_INST_0_i_1_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[3]_INST_0_i_10 + (.CI(\ ), + .CO({\result_o[3]_INST_0_i_10_n_0 ,\result_o[3]_INST_0_i_10_n_1 ,\result_o[3]_INST_0_i_10_n_2 ,\result_o[3]_INST_0_i_10_n_3 }), + .CYINIT(\ ), + .DI(a_i[3:0]), + .O(data0[3:0]), + .S({\result_o[3]_INST_0_i_16_n_0 ,\result_o[3]_INST_0_i_17_n_0 ,\result_o[3]_INST_0_i_18_n_0 ,\result_o[3]_INST_0_i_19_n_0 })); + (* SOFT_HLUTNM = "soft_lutpair12" *) + LUT5 #( + .INIT(32'h3E0E3202)) + \result_o[3]_INST_0_i_11 + (.I0(a_i[9]), + .I1(b_i[4]), + .I2(b_i[3]), + .I3(a_i[17]), + .I4(a_i[25]), + .O(\result_o[3]_INST_0_i_11_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[3]_INST_0_i_12 + (.CI(\ ), + .CO({\result_o[3]_INST_0_i_12_n_0 ,\result_o[3]_INST_0_i_12_n_1 ,\result_o[3]_INST_0_i_12_n_2 ,\result_o[3]_INST_0_i_12_n_3 }), + .CYINIT(\ ), + .DI(a_i[3:0]), + .O(data1[3:0]), + .S({\result_o[3]_INST_0_i_20_n_0 ,\result_o[3]_INST_0_i_21_n_0 ,\result_o[3]_INST_0_i_22_n_0 ,\result_o[3]_INST_0_i_23_n_0 })); + LUT5 #( + .INIT(32'h00000A0C)) + \result_o[3]_INST_0_i_13 + (.I0(a_i[11]), + .I1(a_i[3]), + .I2(b_i[4]), + .I3(b_i[3]), + .I4(b_i[2]), + .O(\result_o[3]_INST_0_i_13_n_0 )); + LUT5 #( + .INIT(32'h0000AC00)) + \result_o[3]_INST_0_i_14 + (.I0(a_i[27]), + .I1(a_i[19]), + .I2(b_i[3]), + .I3(b_i[4]), + .I4(b_i[2]), + .O(\result_o[3]_INST_0_i_14_n_0 )); + LUT6 #( + .INIT(64'h0000000000000A0C)) + \result_o[3]_INST_0_i_15 + (.I0(a_i[0]), + .I1(a_i[2]), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[3]_INST_0_i_15_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[3]_INST_0_i_16 + (.I0(a_i[3]), + .I1(b_i[3]), + .O(\result_o[3]_INST_0_i_16_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[3]_INST_0_i_17 + (.I0(a_i[2]), + .I1(b_i[2]), + .O(\result_o[3]_INST_0_i_17_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[3]_INST_0_i_18 + (.I0(a_i[1]), + .I1(b_i[1]), + .O(\result_o[3]_INST_0_i_18_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[3]_INST_0_i_19 + (.I0(a_i[0]), + .I1(b_i[0]), + .O(\result_o[3]_INST_0_i_19_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFF8000C000)) + \result_o[3]_INST_0_i_2 + (.I0(b_i[3]), + .I1(a_i[3]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(\result_o[3]_INST_0_i_9_n_0 ), + .O(\result_o[3]_INST_0_i_2_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[3]_INST_0_i_20 + (.I0(b_i[3]), + .I1(a_i[3]), + .O(\result_o[3]_INST_0_i_20_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[3]_INST_0_i_21 + (.I0(b_i[2]), + .I1(a_i[2]), + .O(\result_o[3]_INST_0_i_21_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[3]_INST_0_i_22 + (.I0(b_i[1]), + .I1(a_i[1]), + .O(\result_o[3]_INST_0_i_22_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[3]_INST_0_i_23 + (.I0(b_i[0]), + .I1(a_i[0]), + .O(\result_o[3]_INST_0_i_23_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[3]_INST_0_i_3 + (.I0(data0[3]), + .I1(a_i[3]), + .I2(b_i[3]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[3]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'hFFFFF88888888888)) + \result_o[3]_INST_0_i_4 + (.I0(\result_o[4]_INST_0_i_9_n_0 ), + .I1(\result_o[30]_INST_0_i_11_n_0 ), + .I2(\result_o[3]_INST_0_i_11_n_0 ), + .I3(\result_o[3]_INST_0_i_7_n_0 ), + .I4(\result_o[3]_INST_0_i_8_n_0 ), + .I5(\result_o[30]_INST_0_i_12_n_0 ), + .O(\result_o[3]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[3]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[3]), + .O(\result_o[3]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hFF00AAAACCCCF0F0)) + \result_o[3]_INST_0_i_6 + (.I0(a_i[25]), + .I1(a_i[17]), + .I2(a_i[9]), + .I3(a_i[31]), + .I4(b_i[3]), + .I5(b_i[4]), + .O(\result_o[3]_INST_0_i_6_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT2 #( + .INIT(4'h8)) + \result_o[3]_INST_0_i_7 + (.I0(b_i[1]), + .I1(b_i[2]), + .O(\result_o[3]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'h33BB33BB33BB3088)) + \result_o[3]_INST_0_i_8 + (.I0(\result_o[5]_INST_0_i_10_n_0 ), + .I1(b_i[1]), + .I2(\result_o[7]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(\result_o[3]_INST_0_i_13_n_0 ), + .I5(\result_o[3]_INST_0_i_14_n_0 ), + .O(\result_o[3]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'h00000A0000000C00)) + \result_o[3]_INST_0_i_9 + (.I0(\result_o[3]_INST_0_i_15_n_0 ), + .I1(\result_o[4]_INST_0_i_8_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[3]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[4]_INST_0 + (.I0(\result_o[4]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[4]_INST_0_i_2_n_0 ), + .I3(\result_o[4]_INST_0_i_3_n_0 ), + .I4(\result_o[4]_INST_0_i_4_n_0 ), + .I5(\result_o[4]_INST_0_i_5_n_0 ), + .O(result_o[4])); + (* SOFT_HLUTNM = "soft_lutpair36" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[4]_INST_0_i_1 + (.I0(\result_o[5]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[4]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[4]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[4]_INST_0_i_10 + (.I0(a_i[20]), + .I1(a_i[28]), + .I2(a_i[4]), + .I3(b_i[4]), + .I4(b_i[3]), + .I5(a_i[12]), + .O(\result_o[4]_INST_0_i_10_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[4]_INST_0_i_2 + (.I0(\result_o[4]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[5]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[4]_INST_0_i_8_n_0 ), + .O(\result_o[4]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[4]_INST_0_i_3 + (.I0(data0[4]), + .I1(a_i[4]), + .I2(b_i[4]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[4]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[4]_INST_0_i_4 + (.I0(\result_o[5]_INST_0_i_9_n_0 ), + .I1(\result_o[4]_INST_0_i_9_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[4]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[4]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[4]), + .O(\result_o[4]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hFF00F0F0CCCCAAAA)) + \result_o[4]_INST_0_i_6 + (.I0(\result_o[4]_INST_0_i_10_n_0 ), + .I1(\result_o[6]_INST_0_i_10_n_0 ), + .I2(\result_o[8]_INST_0_i_10_n_0 ), + .I3(\result_o[10]_INST_0_i_10_n_0 ), + .I4(b_i[1]), + .I5(b_i[2]), + .O(\result_o[4]_INST_0_i_6_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair9" *) + LUT5 #( + .INIT(32'hC0004000)) + \result_o[4]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[4]), + .I4(b_i[4]), + .O(\result_o[4]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'h0000000000000A0C)) + \result_o[4]_INST_0_i_8 + (.I0(a_i[1]), + .I1(a_i[3]), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[4]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hFF00F0F0CCCCAAAA)) + \result_o[4]_INST_0_i_9 + (.I0(\result_o[4]_INST_0_i_10_n_0 ), + .I1(\result_o[6]_INST_0_i_10_n_0 ), + .I2(\result_o[8]_INST_0_i_12_n_0 ), + .I3(\result_o[10]_INST_0_i_12_n_0 ), + .I4(b_i[1]), + .I5(b_i[2]), + .O(\result_o[4]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[5]_INST_0 + (.I0(\result_o[5]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[5]_INST_0_i_2_n_0 ), + .I3(\result_o[5]_INST_0_i_3_n_0 ), + .I4(\result_o[5]_INST_0_i_4_n_0 ), + .I5(\result_o[5]_INST_0_i_5_n_0 ), + .O(result_o[5])); + (* SOFT_HLUTNM = "soft_lutpair36" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[5]_INST_0_i_1 + (.I0(\result_o[6]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[5]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[5]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[5]_INST_0_i_10 + (.I0(a_i[21]), + .I1(a_i[29]), + .I2(a_i[5]), + .I3(b_i[4]), + .I4(b_i[3]), + .I5(a_i[13]), + .O(\result_o[5]_INST_0_i_10_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[5]_INST_0_i_2 + (.I0(\result_o[5]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[6]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[5]_INST_0_i_8_n_0 ), + .O(\result_o[5]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[5]_INST_0_i_3 + (.I0(data0[5]), + .I1(a_i[5]), + .I2(b_i[5]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[5]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[5]_INST_0_i_4 + (.I0(\result_o[6]_INST_0_i_9_n_0 ), + .I1(\result_o[5]_INST_0_i_9_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[5]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[5]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[5]), + .O(\result_o[5]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hFF00F0F0CCCCAAAA)) + \result_o[5]_INST_0_i_6 + (.I0(\result_o[5]_INST_0_i_10_n_0 ), + .I1(\result_o[7]_INST_0_i_12_n_0 ), + .I2(\result_o[3]_INST_0_i_6_n_0 ), + .I3(\result_o[11]_INST_0_i_12_n_0 ), + .I4(b_i[1]), + .I5(b_i[2]), + .O(\result_o[5]_INST_0_i_6_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair10" *) + LUT5 #( + .INIT(32'hC0004000)) + \result_o[5]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[5]), + .I4(b_i[5]), + .O(\result_o[5]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'h0000000000F0CCAA)) + \result_o[5]_INST_0_i_8 + (.I0(a_i[4]), + .I1(a_i[2]), + .I2(a_i[0]), + .I3(b_i[1]), + .I4(b_i[2]), + .I5(\result_o[30]_INST_0_i_9_n_0 ), + .O(\result_o[5]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hFF00F0F0CCCCAAAA)) + \result_o[5]_INST_0_i_9 + (.I0(\result_o[5]_INST_0_i_10_n_0 ), + .I1(\result_o[7]_INST_0_i_12_n_0 ), + .I2(\result_o[3]_INST_0_i_11_n_0 ), + .I3(\result_o[11]_INST_0_i_18_n_0 ), + .I4(b_i[1]), + .I5(b_i[2]), + .O(\result_o[5]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[6]_INST_0 + (.I0(\result_o[6]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[6]_INST_0_i_2_n_0 ), + .I3(\result_o[6]_INST_0_i_3_n_0 ), + .I4(\result_o[6]_INST_0_i_4_n_0 ), + .I5(\result_o[6]_INST_0_i_5_n_0 ), + .O(result_o[6])); + (* SOFT_HLUTNM = "soft_lutpair37" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[6]_INST_0_i_1 + (.I0(\result_o[7]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[6]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[6]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[6]_INST_0_i_10 + (.I0(a_i[22]), + .I1(a_i[30]), + .I2(a_i[6]), + .I3(b_i[4]), + .I4(b_i[3]), + .I5(a_i[14]), + .O(\result_o[6]_INST_0_i_10_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[6]_INST_0_i_2 + (.I0(\result_o[6]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[7]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[6]_INST_0_i_8_n_0 ), + .O(\result_o[6]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[6]_INST_0_i_3 + (.I0(data0[6]), + .I1(a_i[6]), + .I2(b_i[6]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[6]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[6]_INST_0_i_4 + (.I0(\result_o[7]_INST_0_i_10_n_0 ), + .I1(\result_o[6]_INST_0_i_9_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[6]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[6]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[6]), + .O(\result_o[6]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[6]_INST_0_i_6 + (.I0(\result_o[10]_INST_0_i_10_n_0 ), + .I1(\result_o[12]_INST_0_i_10_n_0 ), + .I2(\result_o[6]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[8]_INST_0_i_10_n_0 ), + .O(\result_o[6]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hC0004000)) + \result_o[6]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[6]), + .I4(b_i[6]), + .O(\result_o[6]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'h0000000000F0CCAA)) + \result_o[6]_INST_0_i_8 + (.I0(a_i[5]), + .I1(a_i[3]), + .I2(a_i[1]), + .I3(b_i[1]), + .I4(b_i[2]), + .I5(\result_o[30]_INST_0_i_9_n_0 ), + .O(\result_o[6]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[6]_INST_0_i_9 + (.I0(\result_o[10]_INST_0_i_12_n_0 ), + .I1(\result_o[12]_INST_0_i_12_n_0 ), + .I2(\result_o[6]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[8]_INST_0_i_12_n_0 ), + .O(\result_o[6]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[7]_INST_0 + (.I0(\result_o[7]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[7]_INST_0_i_2_n_0 ), + .I3(\result_o[7]_INST_0_i_3_n_0 ), + .I4(\result_o[7]_INST_0_i_4_n_0 ), + .I5(\result_o[7]_INST_0_i_5_n_0 ), + .O(result_o[7])); + (* SOFT_HLUTNM = "soft_lutpair37" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[7]_INST_0_i_1 + (.I0(\result_o[8]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[7]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[7]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[7]_INST_0_i_10 + (.I0(\result_o[11]_INST_0_i_18_n_0 ), + .I1(\result_o[13]_INST_0_i_12_n_0 ), + .I2(\result_o[7]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[3]_INST_0_i_11_n_0 ), + .O(\result_o[7]_INST_0_i_10_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[7]_INST_0_i_11 + (.CI(\result_o[3]_INST_0_i_12_n_0 ), + .CO({\result_o[7]_INST_0_i_11_n_0 ,\result_o[7]_INST_0_i_11_n_1 ,\result_o[7]_INST_0_i_11_n_2 ,\result_o[7]_INST_0_i_11_n_3 }), + .CYINIT(\ ), + .DI(a_i[7:4]), + .O(data1[7:4]), + .S({\result_o[7]_INST_0_i_18_n_0 ,\result_o[7]_INST_0_i_19_n_0 ,\result_o[7]_INST_0_i_20_n_0 ,\result_o[7]_INST_0_i_21_n_0 })); + LUT6 #( + .INIT(64'hFACF0ACFFAC00AC0)) + \result_o[7]_INST_0_i_12 + (.I0(a_i[15]), + .I1(a_i[23]), + .I2(b_i[4]), + .I3(b_i[3]), + .I4(a_i[31]), + .I5(a_i[7]), + .O(\result_o[7]_INST_0_i_12_n_0 )); + LUT6 #( + .INIT(64'h0000000000000A0C)) + \result_o[7]_INST_0_i_13 + (.I0(a_i[4]), + .I1(a_i[6]), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[7]_INST_0_i_13_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[7]_INST_0_i_14 + (.I0(a_i[7]), + .I1(b_i[7]), + .O(\result_o[7]_INST_0_i_14_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[7]_INST_0_i_15 + (.I0(a_i[6]), + .I1(b_i[6]), + .O(\result_o[7]_INST_0_i_15_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[7]_INST_0_i_16 + (.I0(a_i[5]), + .I1(b_i[5]), + .O(\result_o[7]_INST_0_i_16_n_0 )); + LUT2 #( + .INIT(4'h6)) + \result_o[7]_INST_0_i_17 + (.I0(a_i[4]), + .I1(b_i[4]), + .O(\result_o[7]_INST_0_i_17_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[7]_INST_0_i_18 + (.I0(b_i[7]), + .I1(a_i[7]), + .O(\result_o[7]_INST_0_i_18_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[7]_INST_0_i_19 + (.I0(b_i[6]), + .I1(a_i[6]), + .O(\result_o[7]_INST_0_i_19_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[7]_INST_0_i_2 + (.I0(\result_o[7]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[8]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[7]_INST_0_i_8_n_0 ), + .O(\result_o[7]_INST_0_i_2_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[7]_INST_0_i_20 + (.I0(b_i[5]), + .I1(a_i[5]), + .O(\result_o[7]_INST_0_i_20_n_0 )); + LUT2 #( + .INIT(4'h9)) + \result_o[7]_INST_0_i_21 + (.I0(b_i[4]), + .I1(a_i[4]), + .O(\result_o[7]_INST_0_i_21_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[7]_INST_0_i_3 + (.I0(data0[7]), + .I1(a_i[7]), + .I2(b_i[7]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[7]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[7]_INST_0_i_4 + (.I0(\result_o[8]_INST_0_i_9_n_0 ), + .I1(\result_o[7]_INST_0_i_10_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[7]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[7]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[7]), + .O(\result_o[7]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[7]_INST_0_i_6 + (.I0(\result_o[11]_INST_0_i_12_n_0 ), + .I1(\result_o[13]_INST_0_i_10_n_0 ), + .I2(\result_o[7]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[3]_INST_0_i_6_n_0 ), + .O(\result_o[7]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hC0004000)) + \result_o[7]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[7]), + .I4(b_i[7]), + .O(\result_o[7]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFF44400400)) + \result_o[7]_INST_0_i_8 + (.I0(\result_o[30]_INST_0_i_9_n_0 ), + .I1(b_i[2]), + .I2(b_i[1]), + .I3(a_i[2]), + .I4(a_i[0]), + .I5(\result_o[7]_INST_0_i_13_n_0 ), + .O(\result_o[7]_INST_0_i_8_n_0 )); + (* ADDER_THRESHOLD = "35" *) + CARRY4 \result_o[7]_INST_0_i_9 + (.CI(\result_o[3]_INST_0_i_10_n_0 ), + .CO({\result_o[7]_INST_0_i_9_n_0 ,\result_o[7]_INST_0_i_9_n_1 ,\result_o[7]_INST_0_i_9_n_2 ,\result_o[7]_INST_0_i_9_n_3 }), + .CYINIT(\ ), + .DI(a_i[7:4]), + .O(data0[7:4]), + .S({\result_o[7]_INST_0_i_14_n_0 ,\result_o[7]_INST_0_i_15_n_0 ,\result_o[7]_INST_0_i_16_n_0 ,\result_o[7]_INST_0_i_17_n_0 })); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[8]_INST_0 + (.I0(\result_o[8]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[8]_INST_0_i_2_n_0 ), + .I3(\result_o[8]_INST_0_i_3_n_0 ), + .I4(\result_o[8]_INST_0_i_4_n_0 ), + .I5(\result_o[8]_INST_0_i_5_n_0 ), + .O(result_o[8])); + (* SOFT_HLUTNM = "soft_lutpair38" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[8]_INST_0_i_1 + (.I0(\result_o[9]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[8]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[8]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'hFF00AAAACCCCF0F0)) + \result_o[8]_INST_0_i_10 + (.I0(a_i[24]), + .I1(a_i[16]), + .I2(a_i[8]), + .I3(a_i[31]), + .I4(b_i[3]), + .I5(b_i[4]), + .O(\result_o[8]_INST_0_i_10_n_0 )); + LUT6 #( + .INIT(64'h0000000000000A0C)) + \result_o[8]_INST_0_i_11 + (.I0(a_i[5]), + .I1(a_i[7]), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[8]_INST_0_i_11_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair11" *) + LUT5 #( + .INIT(32'h3E0E3202)) + \result_o[8]_INST_0_i_12 + (.I0(a_i[8]), + .I1(b_i[4]), + .I2(b_i[3]), + .I3(a_i[16]), + .I4(a_i[24]), + .O(\result_o[8]_INST_0_i_12_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[8]_INST_0_i_2 + (.I0(\result_o[8]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[9]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[8]_INST_0_i_8_n_0 ), + .O(\result_o[8]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[8]_INST_0_i_3 + (.I0(data0[8]), + .I1(a_i[8]), + .I2(b_i[8]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[8]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[8]_INST_0_i_4 + (.I0(\result_o[9]_INST_0_i_9_n_0 ), + .I1(\result_o[8]_INST_0_i_9_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[8]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[8]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[8]), + .O(\result_o[8]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[8]_INST_0_i_6 + (.I0(\result_o[12]_INST_0_i_10_n_0 ), + .I1(\result_o[14]_INST_0_i_10_n_0 ), + .I2(\result_o[8]_INST_0_i_10_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[10]_INST_0_i_10_n_0 ), + .O(\result_o[8]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hC0004000)) + \result_o[8]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[8]), + .I4(b_i[8]), + .O(\result_o[8]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFF44400400)) + \result_o[8]_INST_0_i_8 + (.I0(\result_o[30]_INST_0_i_9_n_0 ), + .I1(b_i[2]), + .I2(b_i[1]), + .I3(a_i[3]), + .I4(a_i[1]), + .I5(\result_o[8]_INST_0_i_11_n_0 ), + .O(\result_o[8]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[8]_INST_0_i_9 + (.I0(\result_o[12]_INST_0_i_12_n_0 ), + .I1(\result_o[14]_INST_0_i_12_n_0 ), + .I2(\result_o[8]_INST_0_i_12_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[10]_INST_0_i_12_n_0 ), + .O(\result_o[8]_INST_0_i_9_n_0 )); + LUT6 #( + .INIT(64'hFFFFFFFFEEEEEEEA)) + \result_o[9]_INST_0 + (.I0(\result_o[9]_INST_0_i_1_n_0 ), + .I1(\result_o[30]_INST_0_i_2_n_0 ), + .I2(\result_o[9]_INST_0_i_2_n_0 ), + .I3(\result_o[9]_INST_0_i_3_n_0 ), + .I4(\result_o[9]_INST_0_i_4_n_0 ), + .I5(\result_o[9]_INST_0_i_5_n_0 ), + .O(result_o[9])); + (* SOFT_HLUTNM = "soft_lutpair38" *) + LUT4 #( + .INIT(16'hF888)) + \result_o[9]_INST_0_i_1 + (.I0(\result_o[10]_INST_0_i_6_n_0 ), + .I1(\result_o[30]_INST_0_i_7_n_0 ), + .I2(\result_o[9]_INST_0_i_6_n_0 ), + .I3(\result_o[30]_INST_0_i_10_n_0 ), + .O(\result_o[9]_INST_0_i_1_n_0 )); + LUT6 #( + .INIT(64'h000000000000AC00)) + \result_o[9]_INST_0_i_10 + (.I0(a_i[2]), + .I1(a_i[4]), + .I2(b_i[1]), + .I3(b_i[2]), + .I4(b_i[4]), + .I5(b_i[3]), + .O(\result_o[9]_INST_0_i_10_n_0 )); + LUT5 #( + .INIT(32'hFFEAEAEA)) + \result_o[9]_INST_0_i_2 + (.I0(\result_o[9]_INST_0_i_7_n_0 ), + .I1(\result_o[31]_INST_0_i_11_n_0 ), + .I2(\result_o[10]_INST_0_i_8_n_0 ), + .I3(\result_o[30]_INST_0_i_15_n_0 ), + .I4(\result_o[9]_INST_0_i_8_n_0 ), + .O(\result_o[9]_INST_0_i_2_n_0 )); + LUT6 #( + .INIT(64'h00FC0000003C00AA)) + \result_o[9]_INST_0_i_3 + (.I0(data0[9]), + .I1(a_i[9]), + .I2(b_i[9]), + .I3(alu_op_i[0]), + .I4(alu_op_i[2]), + .I5(alu_op_i[1]), + .O(\result_o[9]_INST_0_i_3_n_0 )); + LUT6 #( + .INIT(64'h0000A0000000C000)) + \result_o[9]_INST_0_i_4 + (.I0(\result_o[10]_INST_0_i_9_n_0 ), + .I1(\result_o[9]_INST_0_i_9_n_0 ), + .I2(alu_op_i[2]), + .I3(alu_op_i[0]), + .I4(alu_op_i[1]), + .I5(b_i[0]), + .O(\result_o[9]_INST_0_i_4_n_0 )); + LUT6 #( + .INIT(64'h0000000200000000)) + \result_o[9]_INST_0_i_5 + (.I0(alu_op_i[3]), + .I1(alu_op_i[4]), + .I2(alu_op_i[1]), + .I3(alu_op_i[2]), + .I4(alu_op_i[0]), + .I5(data1[9]), + .O(\result_o[9]_INST_0_i_5_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[9]_INST_0_i_6 + (.I0(\result_o[13]_INST_0_i_10_n_0 ), + .I1(\result_o[15]_INST_0_i_12_n_0 ), + .I2(\result_o[3]_INST_0_i_6_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[11]_INST_0_i_12_n_0 ), + .O(\result_o[9]_INST_0_i_6_n_0 )); + LUT5 #( + .INIT(32'hC0004000)) + \result_o[9]_INST_0_i_7 + (.I0(alu_op_i[0]), + .I1(alu_op_i[2]), + .I2(alu_op_i[1]), + .I3(a_i[9]), + .I4(b_i[9]), + .O(\result_o[9]_INST_0_i_7_n_0 )); + LUT6 #( + .INIT(64'hAAAEAFAEAAAEAAAE)) + \result_o[9]_INST_0_i_8 + (.I0(\result_o[9]_INST_0_i_10_n_0 ), + .I1(\result_o[15]_INST_0_i_13_n_0 ), + .I2(b_i[2]), + .I3(b_i[1]), + .I4(\result_o[30]_INST_0_i_9_n_0 ), + .I5(a_i[6]), + .O(\result_o[9]_INST_0_i_8_n_0 )); + LUT6 #( + .INIT(64'hCCFFAAF0CC00AAF0)) + \result_o[9]_INST_0_i_9 + (.I0(\result_o[13]_INST_0_i_12_n_0 ), + .I1(\result_o[15]_INST_0_i_18_n_0 ), + .I2(\result_o[3]_INST_0_i_11_n_0 ), + .I3(b_i[2]), + .I4(b_i[1]), + .I5(\result_o[11]_INST_0_i_18_n_0 ), + .O(\result_o[9]_INST_0_i_9_n_0 )); +endmodule diff --git a/Labs/Made-up modules/lab_03.data_mem.sv b/Labs/Made-up modules/lab_03.data_mem.sv new file mode 100644 index 00000000..31ac5353 --- /dev/null +++ b/Labs/Made-up modules/lab_03.data_mem.sv @@ -0,0 +1,45 @@ +module data_mem ( + input logic clk_i, + input logic [31:0] addr_i, + input logic [31:0] write_data_i, + input logic write_enable_i, + input logic mem_req_i, + output logic [31:0] read_data_o +); + +`define akjsdnnaskjdndat $clog2(128) +`define cdyfguvhbjnmkdat $clog2(`akjsdnnaskjdndat) +`define qwenklfsaklasddat $clog2(`cdyfguvhbjnmkdat) +`define asdasdhkjasdsadat (34>>`cdyfguvhbjnmkdat) + +logic [31:0] RAM [0:4095]; +logic [31:0] addr; +assign addr = {2'b0, addr_i[31:2]}; + +always_ff @(posedge clk_i) begin + if(write_enable_i&mem_req_i) RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][{5{1'b1}}:{3'd7,2'b00}] <= write_data_i['h1f:'h1c]; + if(write_enable_i&mem_req_i) RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][19:{1'b1,4'h0}] <= write_data_i[42-23-:`asdasdhkjasdsadat]; + if(write_enable_i&mem_req_i) RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][{3{1'b1}}:{1'b1,2'h0}] <= write_data_i[`akjsdnnaskjdndat-:`asdasdhkjasdsadat]; + if(write_enable_i&mem_req_i) RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][23:{{2{2'b10}},1'b0}] <= write_data_i[42-19-:`asdasdhkjasdsadat]; + if(write_enable_i&mem_req_i) RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][27:{2'b11,3'b000}] <= write_data_i['h1b:'h18]; + if(write_enable_i&mem_req_i) RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][11:{1'b1,{3{1'b0}}}] <= write_data_i[`akjsdnnaskjdndat+`asdasdhkjasdsadat:(`akjsdnnaskjdndat+`asdasdhkjasdsadat)-`cdyfguvhbjnmkdat]; + if(write_enable_i&mem_req_i) RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][{2{1'b1}}:{3{1'b0}}] <= write_data_i[`akjsdnnaskjdndat-`asdasdhkjasdsadat-:`asdasdhkjasdsadat]; + if(write_enable_i&mem_req_i) RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][{4{1'b1}}:4'b1100] <= write_data_i[(`akjsdnnaskjdndat<<(`asdasdhkjasdsadat-`cdyfguvhbjnmkdat)) + (`asdasdhkjasdsadat-`cdyfguvhbjnmkdat):12]; +end +always_ff@(posedge clk_i) begin + case(1) + !mem_req_i||write_enable_i: read_data_o <= 'd4195425967; + mem_req_i&&(addr_i<={14{1'b1}}): begin + read_data_o['h1f:'h1c]<=RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][{5{1'b1}}:{3'd7,2'b00}]; + read_data_o[42-23-:`asdasdhkjasdsadat]<=RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][19:{1'b1,4'h0}]; + read_data_o[`akjsdnnaskjdndat-:`asdasdhkjasdsadat]<=RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][{3{1'b1}}:{1'b1,2'h0}]; + read_data_o[42-19-:`asdasdhkjasdsadat]<=RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][23:{{2{2'b10}},1'b0}]; + read_data_o['h1b:'h18]<=RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][27:{2'b11,3'b000}]; + read_data_o[`akjsdnnaskjdndat+`asdasdhkjasdsadat:(`akjsdnnaskjdndat+`asdasdhkjasdsadat)-`cdyfguvhbjnmkdat]<=RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][11:8]; + read_data_o[`akjsdnnaskjdndat-`asdasdhkjasdsadat-:`asdasdhkjasdsadat]<=RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][3:0]; + read_data_o[(`akjsdnnaskjdndat<<(`asdasdhkjasdsadat-`cdyfguvhbjnmkdat))+(`asdasdhkjasdsadat-`cdyfguvhbjnmkdat):12]<=RAM[addr[{1'b1,2'b0}:'hBA & 'h45]][{4{1'b1}}:12]; + end + default: read_data_o <= 'd3735928559; + endcase +end +endmodule diff --git a/Labs/Made-up modules/lab_03.instr_mem.sv b/Labs/Made-up modules/lab_03.instr_mem.sv new file mode 100644 index 00000000..6aa6b897 --- /dev/null +++ b/Labs/Made-up modules/lab_03.instr_mem.sv @@ -0,0 +1,29 @@ +module instr_mem( + input logic [31:0] addr_i, + output logic [31:0] read_data_o + ); + +`define akjsdnnaskjdn $clog2(128) +`define cdyfguvhbjnmk $clog2(`akjsdnnaskjdn) +`define qwenklfsaklasd $clog2(`cdyfguvhbjnmk) +`define asdasdhkjasdsa (34 >> `cdyfguvhbjnmk) + +reg [31:0] RAM [0:1023]; +initial $readmemh("program.txt", RAM); + +always_comb begin + case(addr_i > {12{1'b1}}) + 0: begin + read_data_o['h1f:'h1c]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][{5{1'b1}}:{3'd7,2'b00}]; + read_data_o[42-23-:`asdasdhkjasdsa]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][19:{1'b1,4'h0}]; + read_data_o[`akjsdnnaskjdn-:`asdasdhkjasdsa]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][{3{1'b1}}:{1'b1,2'h0}]; + read_data_o[42-19-:`asdasdhkjasdsa]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][23:{{2{2'b10}},1'b0}]; + read_data_o['h1b:'h18]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][27:{2'b11,3'b000}]; + read_data_o[`akjsdnnaskjdn+`asdasdhkjasdsa:(`akjsdnnaskjdn+`asdasdhkjasdsa)-`cdyfguvhbjnmk]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][11:8]; + read_data_o[`akjsdnnaskjdn-`asdasdhkjasdsa-:`asdasdhkjasdsa]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][3:0]; + read_data_o[(`akjsdnnaskjdn<<(`asdasdhkjasdsa-`cdyfguvhbjnmk)) + (`asdasdhkjasdsa-`cdyfguvhbjnmk):12 ]=RAM[{2'b00, addr_i[{5{1'b1}}:2]}][{4{1'b1}}:12]; + end + default: read_data_o = 'hBA & 'h45; + endcase +end +endmodule diff --git a/Labs/Made-up modules/lab_03.register_file.sv b/Labs/Made-up modules/lab_03.register_file.sv new file mode 100644 index 00000000..877e150b --- /dev/null +++ b/Labs/Made-up modules/lab_03.register_file.sv @@ -0,0 +1,63 @@ +module rf_riscv( + input logic clk_i, + input logic write_enable_i, + + input logic [ 4:0] write_addr_i, + input logic [ 4:0] read_addr1_i, + input logic [ 4:0] read_addr2_i, + + input logic [31:0] write_data_i, + output logic [31:0] read_data1_o, + output logic [31:0] read_data2_o +); + +`define akjsdnnaskjdnreg $clog2(128) +`define cdyfguvhbjnmkreg $clog2(`akjsdnnaskjdnreg) +`define qwenklfsaklasdreg $clog2(`cdyfguvhbjnmkreg) +`define asdasdhkjasdsareg (34 >> `cdyfguvhbjnmkreg) + +logic [(`asdasdhkjasdsareg<<`qwenklfsaklasdreg)+15:0] rf_mem [`asdasdhkjasdsareg*8]; + +always_ff @(posedge clk_i) begin + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][{5{1'b1}}:{3'd7,2'b00}] <= write_data_i['h1f:'h1c]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][19:{1'b1,4'h0}] <= write_data_i[42-23-:`asdasdhkjasdsareg]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][{3{1'b1}}:{1'b1,2'h0}] <= write_data_i[`akjsdnnaskjdnreg-:`asdasdhkjasdsareg]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][23:{{2{2'b10}},1'b0}] <= write_data_i[42-19-:`asdasdhkjasdsareg]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][27:{2'b11,3'b000}] <= write_data_i['h1b:'h18]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][11:{1'b1,{3{1'b0}}}] <= write_data_i[`akjsdnnaskjdnreg+`asdasdhkjasdsareg:(`akjsdnnaskjdnreg+`asdasdhkjasdsareg)-`cdyfguvhbjnmkreg]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][{2{1'b1}}:{3{1'b0}}] <= write_data_i[`akjsdnnaskjdnreg-`asdasdhkjasdsareg-:`asdasdhkjasdsareg]; + if(write_enable_i) rf_mem[write_addr_i[{1'b1,2'b0}:'hBA & 'h45]][{4{1'b1}}:4'b1100] <= write_data_i[(`akjsdnnaskjdnreg<<(`asdasdhkjasdsareg-`cdyfguvhbjnmkreg)) + (`asdasdhkjasdsareg-`cdyfguvhbjnmkreg):12]; +end + +always_comb begin + case(read_addr1_i === ('hBA & 'h45)) + 0: begin + read_data1_o['h1f:'h1c]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][{5{1'b1}}:{3'd7,2'b00}]; + read_data1_o[42-23-:`asdasdhkjasdsareg]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][19:{1'b1,4'h0}]; + read_data1_o[`akjsdnnaskjdnreg-:`asdasdhkjasdsareg]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][{3{1'b1}}:{1'b1,2'h0}]; + read_data1_o[42-19-:`asdasdhkjasdsareg]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][23:{{2{2'b10}},1'b0}]; + read_data1_o['h1b:'h18]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][27:{2'b11,3'b000}]; + read_data1_o[`akjsdnnaskjdnreg+`asdasdhkjasdsareg:(`akjsdnnaskjdnreg+`asdasdhkjasdsareg)-`cdyfguvhbjnmkreg]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][11:8]; + read_data1_o[`akjsdnnaskjdnreg-`asdasdhkjasdsareg-:`asdasdhkjasdsareg]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][3:0]; + read_data1_o[(`akjsdnnaskjdnreg<<(`asdasdhkjasdsareg-`cdyfguvhbjnmkreg)) + (`asdasdhkjasdsareg-`cdyfguvhbjnmkreg):12 ]=rf_mem[read_addr1_i[{1'b1,2'b0}:'hBA & 'h45]][{4{1'b1}}:12]; + end + default: read_data1_o = 'hBA & 'h45; + endcase +end + +always_comb begin + case(read_addr2_i === ('hBA & 'h45)) + 0: begin + read_data2_o['h1f:'h1c]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][{5{1'b1}}:{3'd7,2'b00}]; + read_data2_o[42-23-:`asdasdhkjasdsareg]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][19:{1'b1,4'h0}]; + read_data2_o[`akjsdnnaskjdnreg-:`asdasdhkjasdsareg]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][{3{1'b1}}:{1'b1,2'h0}]; + read_data2_o[42-19-:`asdasdhkjasdsareg]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][23:{{2{2'b10}},1'b0}]; + read_data2_o['h1b:'h18]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][27:{2'b11,3'b000}]; + read_data2_o[`akjsdnnaskjdnreg+`asdasdhkjasdsareg:(`akjsdnnaskjdnreg+`asdasdhkjasdsareg)-`cdyfguvhbjnmkreg]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][11:8]; + read_data2_o[`akjsdnnaskjdnreg-`asdasdhkjasdsareg-:`asdasdhkjasdsareg]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][3:0]; + read_data2_o[(`akjsdnnaskjdnreg<<(`asdasdhkjasdsareg-`cdyfguvhbjnmkreg)) + (`asdasdhkjasdsareg-`cdyfguvhbjnmkreg):12 ]=rf_mem[read_addr2_i[{1'b1,2'b0}:'hBA & 'h45]][{4{1'b1}}:12]; + end + default: read_data2_o = 'hBA & 'h45; + endcase +end +endmodule diff --git a/Labs/README.md b/Labs/README.md index 9585f62f..3619499a 100644 --- a/Labs/README.md +++ b/Labs/README.md @@ -28,11 +28,10 @@ - [Студенческий сервер](../Other/Students%20server.md) - [Создание базового проекта с прошивкой ПЛИС в Vivado](../Vivado%20Basics/Vivado%20trainer.md) -- [Что такое язык описания аппаратуры HDL](../Introduction/What%20is%20HDL.md) -- [Как работает ПЛИС](../Introduction/How%20FPGA%20works.md) -- [Синтаксис языка Verilog](../Basic%20Verilog%20structures/Verilog%20syntax.md) - [Базовые конструкции Verilog](../Basic%20Verilog%20structures/) +- [Список типичных ошибок в Vivado и SystemVerilog](../Other/FAQ.md) - [Тестовое окружение](../Basic%20Verilog%20structures/Testbench.md) +- [Готовые модули](Made-up%20modules) ## Порядок выполнения лабораторных работ для групп diff --git a/Other/Extras.md b/Other/Extras.md new file mode 100644 index 00000000..511f8e45 --- /dev/null +++ b/Other/Extras.md @@ -0,0 +1,21 @@ +# Полезные ресурсы и материалы в Интернете + +## Про архитектуру RISC-V + +- [Официальный сайт RISC-V International](https://riscv.org) – На официальном сайте можно найти много полезной информации: официальная спецификация на архитектуру, ссылки на проекты с открытыми и закрытыми процессорными ядрами, программное обеспечение, учебные материалы и тому подобное +- [RISC-V-Awesome-List](https://github.com/NickolayTernovoy/risc-v_awesome_list) – Список полезных ресурсов связанных с темой RISC-V от единственного русскоговорящего амбассадора RISC-V в СНГ +- [Записки CPU designer'a](https://t.me/cpu_design) – Телеграм-канал от того же амбассадора, на котором публикуются различные новости по этой же теме + +## Про программируемые логические интегральные схемы (ПЛИС) и Verilog + +- [fpga-systems.ru](https://fpga-systems.ru) – FPGA-Systems – это не только интернет-ресурс с различными статьями о ПЛИС, но и живое, постоянно обновляемое и растущее сообщество разработчиков, которое организует тематические конференции, а участники обмениваются вопросами/ответами в коллективных чатах, ссылки на которые можно найти на сайте. В российском сегменте интернета очень полезный ресурс для тех, кто хочет развивать навыки разработчика под ПЛИС +- [FPGA-Awesome-List](https://github.com/FPGA-Systems/fpga-awesome-list) – Список полезных ресурсов связанных с темой ПЛИС от сообщества FPGA-Systems, тут много полезной информации +- [opencores.org](https://opencores.org/projects) – Сайт, на котором собраны открытые (бесплатные, то есть скачать можно) IP-блоки самых разных цифровых устройств, написанные на разных языках описания аппаратуры, например, в разделе "Processors" можно найти процессоры с самыми различными архитектурами, скачать их, прошить, посмотреть, потрогать, поэкспериментировать. Процессоры с RISC-V там тоже, конечно же, есть. Не все IP-блоки написаны на Verilog +- [Problem sets Verilog syntax](https://hdlbits.01xz.net/wiki/Problem_sets) – Крутой самоучитель по Verilog, но на английском. Все очень удобно разбито по темам, рассчитано на самого начинающего. Даже Vivado запускать не надо, можно вбивать и проверять код прямо на сайте, пушка! + +## Про систему контроля версий Git + +- [Pro Git](https://git-scm.com/book/ru/v2) – Книга на русском про систему контроля версий Git. Читаешь ее и больше вопросов по Git не будет +- [Шпаргалка по Git](https://training.github.com/downloads/ru/github-git-cheat-sheet/) – Краткая выжимка основных команд для Git +- [Чёрт побери, Git!?!](https://dangitgit.com/ru) – Краткая выжимка решения типичных проблем (в юмористической форме) +- [Тренажер Git](https://learngitbranching.js.org/?locale=ru_RU) – Отличный онлайн-тренажер, чтобы отточить навыки работы с Git diff --git a/Other/FAQ.md b/Other/FAQ.md index 0f18b31d..ffe1356f 100644 --- a/Other/FAQ.md +++ b/Other/FAQ.md @@ -1,18 +1,18 @@ -# Список типичных ошибок при работе с Vivado и Verilog +# Список типичных ошибок при работе с Vivado и SystemVerilog ## Содержание -1. [Ошибки, связанные с САПР Vivado](#ошибки-связанные-с-сапр-vivado) -1.1 [Не запускается симуляция: FATAL_ERROR: PrivateChannel: Error creating client socket](#не-запускается-симуляция-fatal_error-privatechannel-error-creating-client-socket) -1.2 [Не запускается симуляция: boot::filesystem::remove: Процесс не может получить доступ к файлу, т.к. этот файл занят другим процессом](#не-запускается-симуляция-boot-filesystem-remove-процесс-не-может-получить-доступ-к-файлу) -1.3 [Вылетает Vivado при попытке открыть схему](#вылетает-vivado-при-попытке-открыть-схему) -1.4 [Не устанавливается Vivado: The following fatal error encountered while installing files: Unable to open archive](#не-устанавливается-vivado-unable-to-open-archive) +- [Список типичных ошибок при работе с Vivado и SystemVerilog](#список-типичных-ошибок-при-работе-с-vivado-и-systemverilog) + - [Содержание](#содержание) + - [Ошибки связанные с САПР Vivado](#ошибки-связанные-с-сапр-vivado) + - [Не запускается симуляция FATAL\_ERROR PrivateChannel Error creating client socket](#не-запускается-симуляция-fatal_error-privatechannel-error-creating-client-socket) + - [Не запускается симуляция boot filesystem remove Процесс не может получить доступ к файлу](#не-запускается-симуляция-boot-filesystem-remove-процесс-не-может-получить-доступ-к-файлу) + - [Вылетает Vivado при попытке открыть схему](#вылетает-vivado-при-попытке-открыть-схему) + - [Не устанавливается Vivado Unable to open archive](#не-устанавливается-vivado-unable-to-open-archive) + - [Ошибки синтаксиса языка SystemVerilog](#ошибки-синтаксиса-языка-systemverilog) + - [имя сигнала is not a type](#имя-сигнала-is-not-a-type) + - [cannot find port on this module](#cannot-find-port-on-this-module) -2. [Ошибки синтаксиса языка Verilog](#ошибки-синтаксиса-языка-verilog) -2.1 [concurrent assignment to a non-net is not permitted](#concurrent-assignment-to-a-non-net-is-not-permitted) -2.2 [procedural assignment to a non-register test is not permitted, left-hand side should be reg/integer/time/genvar](#procedural-assignment-to-a-non-register-test-is-not-permitted-left-hand-side-should-be-reg) -2.3 ['имя сигнала' is not a type](#имя-сигнала-is-not-a-type) -2.4 [cannot find port on this module](#cannot-find-port-on-this-module) ## Ошибки связанные с САПР Vivado @@ -78,26 +78,26 @@ --- -## Ошибки синтаксиса языка Verilog +## Ошибки синтаксиса языка SystemVerilog -### concurrent assignment to a non-net is not permitted + -### procedural assignment to a non-register test is not permitted left-hand side should be reg + ### имя сигнала is not a type Скорее всего, компилятор не распознал присваивание, поскольку оно было записано с ошибками. Вне блоков `always` и `initial` можно выполнять только непрерывное присваивание (через `assign`). -```Verilog -module adder(input a, input b, output c); +```SystemVerilog +module half_adder(input logic a, input logic b, output logic c); c = a ^ b; // ошибка, для непрерывного присваивания // необходимо ключевое слово assign endmodule @@ -131,17 +131,17 @@ endmodule Пример -```Verilog -module adder(input a, input b, output c); +```SystemVerilog +module half_adder(input logic a, input logic b, output logic c); assign c = a ^ b; -endmodule +endmodule module testbench(); -reg A, B; -wire C; +logic A, B, C; + adder DUT( .A(A), // <- здесь будет ошибка, - // т.к. в модуле adder нет порта 'A' + // т.к. в модуле half_adder нет порта 'A' .b(B), .c(C) ); diff --git a/Other/Further readings.md b/Other/Further readings.md new file mode 100644 index 00000000..b63d23a3 --- /dev/null +++ b/Other/Further readings.md @@ -0,0 +1,82 @@ +# Список дополнительной литературы + +В приведенном ниже списке будут даны описания книг, а так же способы их получения: покупка/чтение в электронной библиотеке/получение экземпляра книги в универитетской библиотеке. . + +- [Список дополнительной литературы](#список-дополнительной-литературы) + - [Митио Сибуя и Такаси Тонаги: Центральный процессор. Образовательная манга](#митио-сибуя-и-такаси-тонаги-центральный-процессор-образовательная-манга) + - [Чарльз Петцольд: Код. Тайный язык информатики](#чарльз-петцольд-код-тайный-язык-информатики) + - [Дэвид М. Харрис и Сара Л. Харрис: Цифровая схемотехника и архитектура компьютера: RISC-V](#дэвид-м-харрис-и-сара-л-харрис-цифровая-схемотехника-и-архитектура-компьютера-risc-v) + - [Дэвид М. Харрис и Сара Л. Харрис: Цифровая схемотехника и архитектура компьютера. Дополнение по архитектуре ARM\*](#дэвид-м-харрис-и-сара-л-харрис-цифровая-схемотехника-и-архитектура-компьютера-дополнение-по-архитектуре-arm) + - [под редакцией Романова А.Ю. и Панчула Ю.В.: Цифровой синтез: практический курс](#под-редакцией-романова-аю-и-панчула-юв-цифровой-синтез-практический-курс) + - [Д. Паттерсон и Дж. Хеннесси: Архитектура компьютера и проектирование компьютерных систем](#д-паттерсон-и-дж-хеннесси-архитектура-компьютера-и-проектирование-компьютерных-систем) + - [Д. Паттерсон и Дж. Хеннесси: Архитектура компьютера. Количественный подход](#д-паттерсон-и-дж-хеннесси-архитектура-компьютера-количественный-подход) + - [С.А. Орлов и Б.Я. Цилькер: Организация ЭВМ и систем](#са-орлов-и-бя-цилькер-организация-эвм-и-систем) + - [Д.Н. Беклемишев, А.Н. Орлов, А.Л. Переверзев, М.Г. Попов, А.В. Горячев, А.И.Кононова: Микропроцессорные средства и системы. Курс лекций](#дн-беклемишев-ан-орлов-ал-переверзев-мг-попов-ав-горячев-аикононова-микропроцессорные-средства-и-системы-курс-лекций) + - [Э. Таненбаум и Т. Остин: Архитектура компьютера](#э-таненбаум-и-т-остин-архитектура-компьютера) + - [Дональд Томас: Логическое проектирование и верификация систем на SystemVerilog](#дональд-томас-логическое-проектирование-и-верификация-систем-на-systemverilog) + +## Митио Сибуя и Такаси Тонаги: Центральный процессор. Образовательная манга + +Самый лайтовый вариант усвоения основных концепций изучаемой дисциплины. Про архитектуру процессора в виде манги. По сюжету девушка Каиураги Дюми, чемпион по японским шахматам сёги, встречает незнакомца, который предлагает ей сыграть с компьютером. Конечно же она сливает партию. И понеслось. Слово за слово и вот он уже рассказывает ей, как работает обыгравший ее компьютер. Не понять просто невозможно. А прочитав эту мангу любая книга ниже станет понятна абсолютно любому читателю. Манга [продается](https://dmkpress.com/catalog/manga/978-5-97060-507-3/) как в электронном, так и в печатном виде. В обозримом будущем будет доступна студентам МИЭТ в [электронной библотеке](https://e.lanbook.com/book/93581). + +![../.pic/Other/Further%20readings/manga.jpg](../.pic/Other/Further%20readings/manga.jpg) + +## Чарльз Петцольд: Код. Тайный язык информатики + +Книга для тех, кому плохо пошел материал. Очень, очень классно рассказывается что такое цифровые устройства, как это работает и зачем это все нужно. На примере фонариков, азбуки Морзе, шрифта Брайля и штрих-кодов автор знакомит нас с основами кодирования информации. Из лампочек и батареек сначала собираются разные вроде бы пустяковые устройства, которые позже превращаются в полноценный компьютер. Отличная популярная литература. Если ты знаешь человека, которому с трудом дается понимание цифровой техники, то ты просто обязан порекомендовать ему эту книгу. В образовательных целях можно ознакомиться с ней в облаке. Почитать восхищенный отзыв о книге и ее содержании можно [тут](https://habr.com/ru/post/68365/). А дождаться, когда она начнет снова продаваться можно [тут](https://www.ozon.ru/context/detail/id/125884/). Либо поискать в магазинах. + +![../.pic/Other/Further%20readings/code.jpg](../.pic/Other/Further%20readings/code.jpg) + +## Дэвид М. Харрис и Сара Л. Харрис: Цифровая схемотехника и архитектура компьютера: RISC-V + +Потрясающая книга, являющаяся более доступным вариантом изложения и иллюстрации книги "Архитектура компьютера и проектирование компьютерных систем", Паттерсона и Хеннесси. На примере архитектуры **RISC-V** рассказывается как построить процессор начиная с вопросов работы транзистора. Рассматриваются базовые конструкции языков описания аппаратуры **SystemVerilog** и **VHDL**. Эту книгу на чистом энтузиазме перевели на русский язык группа ученых и инженеров из стран бывшего СССР с подачи [Юрия Панчула](http://panchul.com/about_ru/). Электронный вариант для архитектуры **MIPS** распространяется бесплатно и абсолютно легально. Обязательна к ознакомлению каждому! Гораздо удобнее использовать печатный вариант, на этот случай ее можно приобрести [тут](https://dmkpress.com/catalog/electronics/circuit_design/978-5-97060-961-3/). Электронный вариант с архитектурой **MIPS** доступен в облаке и [электронной библотеке](https://e.lanbook.com/book/241166). + +![../.pic/Other/Further%20readings/harris.png](../.pic/Other/Further%20readings/harris.png) + +## Дэвид М. Харрис и Сара Л. Харрис: Цифровая схемотехника и архитектура компьютера. Дополнение по архитектуре ARM* + +Как и следует из названия, эта книга дополняет предыдущие описанием отличий архитектуры **ARM** от **MIPS** и **RISC-V**. Книга состоит из глав, посвященных архитектуре процессоров **ARM**, их микроархитектуре, описанию подсистемы памяти и системы ввода-вывода. Также в приложении приведена система команд **ARM**. Почему такое пристальное внимание этой архитектуре? Потому что это одна из самых массово используемых архитектур в мире. Например, 98% всех мобильных телефонов работают на процессорах с архитектурой **ARM**. Книгу можно приобрести [тут](https://dmkpress.com/catalog/electronics/circuit_design/978-5-97060-650-6/), а так же прочесть в [электронной библиотеке](https://e.lanbook.com/book/111431). + +![../.pic/Other/Further%20readings/arm.jpg](../.pic/Other/Further%20readings/arm.jpg) + +## под редакцией Романова А.Ю. и Панчула Ю.В.: Цифровой синтез: практический курс + +В дополнение к Харрисам отлично идет практический курс цифрового дизайна, в том числе, как раз, от того самого Юрия Панчула. Книга ориентирована в первую очередь на практику создания цифровой аппаратуры на ПЛИС с помощью **Verilog HDL**. Затрагиваются вопросы процесса создания **ASIC**. Очень хорошо написана, грамотно структурирована и имеет много полезной информации, требующейся на практике дизайнеру цифровой аппаратуры. Купить можно [тут](https://dmkpress.com/catalog/electronics/circuit_design/978-5-97060-850-0/), так же доступна в [электронной библиотеке](https://e.lanbook.com/book/179492). + +![../.pic/Other/Further%20readings/digitaldesign.png](../.pic/Other/Further%20readings/digitaldesign.png) + +## Д. Паттерсон и Дж. Хеннесси: Архитектура компьютера и проектирование компьютерных систем + +Отцы архитектуры **RISC** делятся накопленным опытом. Не только рассказывают, как процессоры работают, но и как их построить, прививают принципы проектирования, красиво указывают на заблуждения, дают хитрые задания, да и вообще книга богата полезной информацией. Нетленка. Не зря на лицевой стороне книги написано *классика computer science*. Заканчивается книга разбором многоядерных, многопроцессорных параллельных систем. Если решишь поставить к себе на полку, то придется подождать когда она [вновь поступит в продажу](https://www.ozon.ru/context/detail/id/7425447/) или поискать на полках магазинов. + +![../.pic/Other/Further%20readings/patterson1.jpg](../.pic/Other/Further%20readings/patterson1.jpg) + +## Д. Паттерсон и Дж. Хеннесси Архитектура компьютера. Количественный подход + +Дополнение к предыдущей книге, вся суть которой передана в названии. Рассматривается эффективность современных вычислительных машин в численном эквиваленте. Что и как влияет на производительность вычислительных систем и какие существуют зависимости. Уделяется большое внимание построению иерархии памяти и анализу результатов, исследуется параллелизм исполнения команд. В некотором смысле это библия анализа вычислительных систем. Авторы получили за нее премию Тьюринга. Рекомендуется к прочтению после прослушивания курса Архитектуры процессорных систем. В облаке лежит часть книги для ознакомления, а ее [физическая копия](https://www.ozon.ru/context/detail/id/35204637/) хорошо дополнит домашнюю библиотеку computer science. + +![../.pic/Other/Further%20readings/patterson2.jpg](../.pic/Other/Further%20readings/patterson2.jpg) + +## С.А. Орлов и Б.Я. Цилькер: Организация ЭВМ и систем + +Фундаментальный курс по архитектуре и структуре современных компьютерных систем, написанный двумя опытными профессорами из питерских вузов. Книга написана излишне сухо, в советской манере, порой с излишним формализмом даже там, где этого можно было избежать. Однако, книга изобилует большим объемом полезной информации, богатым списком источников, в основном зарубежных. Рекомендуется использовать ее как дополнительное справочное пособие. В ней можно найти много оригинальной информации, не содержащейся в другой отечественной печатной продукции. Купить книжку можно, например, [здесь](https://www.ozon.ru/context/detail/id/147603179/). + +![../.pic/Other/Further%20readings/orlov.jpg](../.pic/Other/Further%20readings/orlov.jpg) + +## Д.Н. Беклемишев, А.Н. Орлов, А.Л. Переверзев, М.Г. Попов, А.В. Горячев, А.И.Кононова: Микропроцессорные средства и системы. Курс лекций + +Курс лекций, читавшийся несколько лет назад. На данный момент книга является актуальной, но дисциплина организована несколько иначе. Из достоинств можно выделить хорошую организацию написанного материала, представленного в виде одинаковых порций разбитых на тематические лекции. Книга доступна в облаке и в университетской библиотеке. Отдельно стоит отметить, что часть читаемого на лекциях материала представлена только в этом издании. + +![../.pic/Other/Further%20readings/vt.jpg](../.pic/Other/Further%20readings/vt.jpg) + +## Э. Таненбаум и Т. Остин: Архитектура компьютера + +Книга для изучения компьютерной архитектуры от всемирно известного специалиста в области информационных технологий, писателя и преподавателя, выходящая уже в шестом издании и посвящена структурной организации компьютера. В качестве примеров архитектур рассматриваются **Intel Core i7**, **Texas Instrument OMAP4430** и **Atmel ATmega168**. Книга рассчитана на широкий круг читателей, так что можешь читать ее без опасения что что-то не поймешь, хотя не все с этим согласятся, некоторым (включая автора этих строк) книга [не нравится](https://habr.com/ru/post/589091/). Чувствуется влияние того, что Таненбаум чаще взаимодействует с цифровой аппаратурой в роли программиста, а не разработчика. Вероятно это поможет в освоении материала обучающимся на соответствующих специальностях. Купить книгу можно [тут](https://www.piter.com/collection/all/product/arhitektura-kompyutera-6-e-izd-2). + +![../.pic/Other/Further%20readings/tanenbaum.jpg](../.pic/Other/Further%20readings/tanenbaum.jpg) + +## Дональд Томас: Логическое проектирование и верификация систем на SystemVerilog + +Тем, кто не только пытается разобраться в принципах работы компьютера, но и сам хочет разрабатывать цифровые устройства потребуется более серьезно изучить какой-нибудь современный язык описания аппаратуры. Сходу, многие посоветуют SystemVerilog – наиболее популярный вариант в индустрии. Он является более современной версией Verilog, лишенной некоторых его недостатков. + +![../.pic/Other/Further%20readings/svbook.png](../.pic/Other/Further%20readings/svbook.png) diff --git a/README.md b/README.md index 91dffe91..3a527890 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,12 @@ Это путеводитель по дисциплине «Архитектуры процессорных систем». Здесь ты найдёшь ссылки на всю информацию генерируемую в данном курсе: -- конспекты лекций (WIP) +- [Видеозаписи](https://www.youtube.com/c/%D0%90%D0%9F%D0%A1%D0%9F%D0%BE%D0%BF%D0%BE%D0%B2) и конспекты (WIP) лекций с прошлых лет. - методички по лабораторным работам ([Labs](Labs/)) -- дополнительные материалы и литературу (WIP) -- популярные материалы (WIP) +- дополнительные материалы и литературу ([Other/Further readings.md](Other/Further%20readings.md)) +- популярные материалы ([Other/Extras.md](Other/Extras.md)) - информацию о преподавателях, их расписание и контакты ([Other/Educators.md](Other/Educators.md)) -- страницу с анонимной обратной связью (WIP). +- страницу с анонимной обратной связью ([Google Forms](https://docs.google.com/forms/d/e/1FAIpQLSdoLdMCnFOv-RS_E4ztVjVzPqy-pqcCcaD7JNx6F4r8Kd_8iw/viewform?usp=sharing)). Имея доступ к этой странице ты имеешь доступ ко всему курсу АПС.