diff options
| author | Alejandro Soto <alejandro@34project.org> | 2023-10-20 22:59:27 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2023-10-20 23:10:55 -0600 |
| commit | 1b5eeb9a949272232ff543f684c7be62d31d0d40 (patch) | |
| tree | 67e4e7b20f0d38b675058bbb32690ab782369d68 | |
| parent | 8eba2720083d49bf6550efb35f32c8fbdd2ef975 (diff) | |
ip: add ip_fp_add, ip_fp_mul
38 files changed, 12108 insertions, 0 deletions
@@ -43,6 +43,7 @@ dist/ platform/ platform.sopcinfo hps_isw_handoff/ +greybox_tmp/ *~ *.vcd *.fst diff --git a/conspiracion.qsf b/conspiracion.qsf index 8a8ff81..4b3f531 100644 --- a/conspiracion.qsf +++ b/conspiracion.qsf @@ -317,4 +317,9 @@ set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (SystemVerilog) set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "SYSTEMVERILOG HDL" -section_id eda_simulation +set_global_assignment -name QIP_FILE ip/ip_fp_mul.qip +set_global_assignment -name SIP_FILE ip/ip_fp_mul.sip + +set_global_assignment -name QIP_FILE ip/ip_fp_add.qip +set_global_assignment -name SIP_FILE ip/ip_fp_add.sip set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
\ No newline at end of file diff --git a/ip/ip_fp_add.cmp b/ip/ip_fp_add.cmp new file mode 100644 index 0000000..b662f1d --- /dev/null +++ b/ip/ip_fp_add.cmp @@ -0,0 +1,10 @@ + component ip_fp_add is + port ( + clk : in std_logic := 'X'; -- clk + areset : in std_logic := 'X'; -- reset + a : in std_logic_vector(31 downto 0) := (others => 'X'); -- a + b : in std_logic_vector(31 downto 0) := (others => 'X'); -- b + q : out std_logic_vector(31 downto 0) -- q + ); + end component ip_fp_add; + diff --git a/ip/ip_fp_add.qip b/ip/ip_fp_add.qip new file mode 100644 index 0000000..41a30c8 --- /dev/null +++ b/ip/ip_fp_add.qip @@ -0,0 +1,86 @@ +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_TOOL_NAME "altera_fp_functions" +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_TOOL_VERSION "20.1" +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_TOOL_ENV "mwpim" +set_global_assignment -library "ip_fp_add" -name MISC_FILE [file join $::quartus(qip_path) "ip_fp_add.cmp"] +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_TARGETED_DEVICE_FAMILY "Cyclone V" +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_GENERATED_DEVICE_FAMILY "{Cyclone V}" +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_QSYS_MODE "UNKNOWN" +set_global_assignment -name SYNTHESIS_ONLY_QIP ON +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_COMPONENT_NAME "aXBfZnBfYWRk" +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_COMPONENT_DISPLAY_NAME "RlBfRlVOQ1RJT05TIEludGVsIEZQR0EgSVA=" +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_COMPONENT_REPORT_HIERARCHY "Off" +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_COMPONENT_INTERNAL "Off" +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_COMPONENT_AUTHOR "SW50ZWwgQ29ycG9yYXRpb24=" +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_COMPONENT_VERSION "MjAuMQ==" +set_global_assignment -entity "ip_fp_add" -library "ip_fp_add" -name IP_COMPONENT_DESCRIPTION "QSBjb2xsZWN0aW9uIG9mIGZsb2F0aW5nIHBvaW50IGZ1bmN0aW9ucw==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_NAME "aXBfZnBfYWRkXzAwMDI=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_DISPLAY_NAME "RlBfRlVOQ1RJT05TIEludGVsIEZQR0EgSVA=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_REPORT_HIERARCHY "Off" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_INTERNAL "Off" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_AUTHOR "SW50ZWwgQ29ycG9yYXRpb24=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_VERSION "MjAuMQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_DESCRIPTION "QSBjb2xsZWN0aW9uIG9mIGZsb2F0aW5nIHBvaW50IGZ1bmN0aW9ucw==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "RlVOQ1RJT05fRkFNSUxZ::QVJJVEg=::RmFtaWx5" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "QVJJVEhfZnVuY3Rpb24=::QURE::TmFtZQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "Q09OVkVSVF9mdW5jdGlvbg==::RlhQX0ZQ::TmFtZQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "QUxMX2Z1bmN0aW9u::QURE::TmFtZQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "RVhQX0xPR19mdW5jdGlvbg==::RVhQRQ==::TmFtZQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "VFJJR19mdW5jdGlvbg==::U0lO::TmFtZQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "Q09NUEFSRV9mdW5jdGlvbg==::TUlO::TmFtZQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "Uk9PVFNfZnVuY3Rpb24=::U1FSVA==::TmFtZQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZGVyaXZlZGZ1bmN0aW9u::QURE::ZGVyaXZlZGZ1bmN0aW9u" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfZm9ybWF0::c2luZ2xl::Rm9ybWF0" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfZXhw::OA==::RXhwb25lbnQ=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfZXhwX2Rlcml2ZWQ=::OA==::ZnBfZXhwX2Rlcml2ZWQ=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfbWFu::MjM=::TWFudGlzc2E=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfbWFuX2Rlcml2ZWQ=::MjM=::ZnBfbWFuX2Rlcml2ZWQ=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZXhwb25lbnRfd2lkdGg=::MjM=::RXhwb25lbnQgV2lkdGg=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnJlcXVlbmN5X3RhcmdldA==::MjAw::VGFyZ2V0" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "bGF0ZW5jeV90YXJnZXQ=::Mg==::VGFyZ2V0" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "cGVyZm9ybWFuY2VfZ29hbA==::ZnJlcXVlbmN5::R29hbA==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "cm91bmRpbmdfbW9kZQ==::bmVhcmVzdCB3aXRoIHRpZSBicmVha2luZyBhd2F5IGZyb20gemVybw==::TW9kZQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "cm91bmRpbmdfbW9kZV9kZXJpdmVk::bmVhcmVzdCB3aXRoIHRpZSBicmVha2luZyB0byBldmVu::TW9kZQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "dXNlX3JvdW5kaW5nX21vZGU=::dHJ1ZQ==::dXNlX3JvdW5kaW5nX21vZGU=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZmFpdGhmdWxfcm91bmRpbmc=::dHJ1ZQ==::UmVsYXggcm91bmRpbmcgdG8gcm91bmQgdXAgb3IgZG93biB0byByZWR1Y2UgcmVzb3VyY2UgdXNhZ2U=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "Z2VuX2VuYWJsZQ==::ZmFsc2U=::R2VuZXJhdGUgYW4gZW5hYmxlIHBvcnQ=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZGl2aWRlX3R5cGU=::MA==::TWV0aG9k" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "c2VsZWN0X3NpZ25hbF9lbmFibGU=::ZmFsc2U=::VXNlIFNlbGVjdCBTaWduYWw=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "c2NhbGVfYnlfcGk=::ZmFsc2U=::UmVwcmVzZW50IGFuZ2xlIGFzIG11bHRpcGxlIG9mIFBp" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "bnVtYmVyX29mX2lucHV0cw==::Mg==::SW5wdXQgVmVjdG9yIERpbWVuc2lvbg==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "dHJpZ19ub19yYW5nZV9yZWR1Y3Rpb24=::ZmFsc2U=::SW5wdXRzIGFyZSB3aXRoaW4gcmFuZ2UgLTJwaSB0byArMnBp" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "cmVwb3J0X3Jlc291cmNlc190b194bWw=::ZmFsc2U=::cmVwb3J0X3Jlc291cmNlc190b194bWw=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnhwdF93aWR0aA==::MzI=::V2lkdGg=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnhwdF9mcmFjdGlvbg==::MA==::RnJhY3Rpb24=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnhwdF9zaWdu::MQ==::U2lnbg==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnJlcXVlbmN5X2ZlZWRiYWNr::MA==::ZnJlcXVlbmN5X2ZlZWRiYWNr" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "bGF0ZW5jeV9mZWVkYmFjaw==::MTM=::bGF0ZW5jeV9mZWVkYmFjaw==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "Zm9yY2VfZWxhYm9yYXRl::MA==::Zm9yY2VfZWxhYm9yYXRl" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfb3V0X2Zvcm1hdA==::c2luZ2xl::T3V0cHV0IEZvcm1hdA==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfb3V0X2V4cA==::OA==::T3V0cHV0IEV4cG9uZW50" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfb3V0X2V4cF9kZXJpdmVk::OA==::ZnBfb3V0X2V4cF9kZXJpdmVk" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfb3V0X21hbg==::MjM=::T3V0cHV0IE1hbnRpc3Nh" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfb3V0X21hbl9kZXJpdmVk::OA==::ZnBfb3V0X21hbl9kZXJpdmVk" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfaW5fZm9ybWF0::c2luZ2xl::SW5wdXQgRm9ybWF0" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfaW5fZXhw::OA==::SW5wdXQgRXhwb25lbnQ=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfaW5fZXhwX2Rlcml2ZWQ=::OA==::ZnBfaW5fZXhwX2Rlcml2ZWQ=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfaW5fbWFu::MjM=::SW5wdXQgTWFudGlzc2E=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZnBfaW5fbWFuX2Rlcml2ZWQ=::OA==::ZnBfaW5fbWFuX2Rlcml2ZWQ=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "ZW5hYmxlX2hhcmRfZnA=::dHJ1ZQ==::RW5hYmxlIEhhcmQgRmxvYXRpbmcgUG9pbnQ=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "bWFudWFsX2RzcF9wbGFubmluZw==::dHJ1ZQ==::RW5hYmxlIEhhcmQgRmxvYXRpbmcgUG9pbnQ=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "Zm9yY2VSZWdpc3RlcnM=::MTExMQ==::Zm9yY2VSZWdpc3RlcnM=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "UkVTX0RTUF9wYXJhbQ==::MA==::TXVsdGlwbGllcw==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "UkVTX0xVVF9wYXJhbQ==::ODQ5::TFVUcw==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "UkVTX01CSVRfcGFyYW0=::MA==::TWVtb3J5IEJpdHM=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "UkVTX01CTE9DS19wYXJhbQ==::MA==::TWVtb3J5IEJsb2Nrcw==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "c2VsZWN0ZWRfZGV2aWNlX2ZhbWlseQ==::Q3ljbG9uZSBW::c2VsZWN0ZWRfZGV2aWNlX2ZhbWlseQ==" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "c2VsZWN0ZWRfZGV2aWNlX3NwZWVkZ3JhZGU=::Nw==::c2VsZWN0ZWRfZGV2aWNlX3NwZWVkZ3JhZGU=" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_COMPONENT_PARAMETER "dmFsaWRhdGlvbl9mYWlsZWQ=::ZmFsc2U=::dmFsaWRhdGlvbl9mYWlsZWQ=" + +set_global_assignment -library "ip_fp_add" -name VERILOG_FILE [file join $::quartus(qip_path) "ip_fp_add.v"] +set_global_assignment -library "ip_fp_add" -name VHDL_FILE [file join $::quartus(qip_path) "ip_fp_add/dspba_library_package.vhd"] +set_global_assignment -library "ip_fp_add" -name VHDL_FILE [file join $::quartus(qip_path) "ip_fp_add/dspba_library.vhd"] +set_global_assignment -library "ip_fp_add" -name VHDL_FILE [file join $::quartus(qip_path) "ip_fp_add/ip_fp_add_0002.vhd"] + +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_TOOL_NAME "altera_fp_functions" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_TOOL_VERSION "20.1" +set_global_assignment -entity "ip_fp_add_0002" -library "ip_fp_add" -name IP_TOOL_ENV "mwpim" diff --git a/ip/ip_fp_add.sip b/ip/ip_fp_add.sip new file mode 100644 index 0000000..b0e2111 --- /dev/null +++ b/ip/ip_fp_add.sip @@ -0,0 +1,6 @@ +set_global_assignment -entity "ip_fp_add" -library "lib_ip_fp_add" -name IP_TOOL_NAME "altera_fp_functions" +set_global_assignment -entity "ip_fp_add" -library "lib_ip_fp_add" -name IP_TOOL_VERSION "20.1" +set_global_assignment -entity "ip_fp_add" -library "lib_ip_fp_add" -name IP_TOOL_ENV "mwpim" +set_global_assignment -library "lib_ip_fp_add" -name SPD_FILE [file join $::quartus(sip_path) "ip_fp_add.spd"] + +set_global_assignment -library "lib_ip_fp_add" -name MISC_FILE [file join $::quartus(sip_path) "ip_fp_add_sim/ip_fp_add.vo"] diff --git a/ip/ip_fp_add.spd b/ip/ip_fp_add.spd new file mode 100644 index 0000000..12f0f4d --- /dev/null +++ b/ip/ip_fp_add.spd @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<simPackage> + <file path="ip_fp_add_sim/ip_fp_add.vo" type="VERILOG" /> + <topLevel name="ip_fp_add" /> + <deviceFamily name="cyclonev" /> +</simPackage> diff --git a/ip/ip_fp_add.v b/ip/ip_fp_add.v new file mode 100644 index 0000000..d004c28 --- /dev/null +++ b/ip/ip_fp_add.v @@ -0,0 +1,92 @@ +// megafunction wizard: %FP_FUNCTIONS Intel FPGA IP v20.1% +// GENERATION: XML +// ip_fp_add.v + +// Generated using ACDS version 20.1 720 + +`timescale 1 ps / 1 ps +module ip_fp_add ( + input wire clk, // clk.clk + input wire areset, // areset.reset + input wire [31:0] a, // a.a + input wire [31:0] b, // b.b + output wire [31:0] q // q.q + ); + + ip_fp_add_0002 ip_fp_add_inst ( + .clk (clk), // clk.clk + .areset (areset), // areset.reset + .a (a), // a.a + .b (b), // b.b + .q (q) // q.q + ); + +endmodule +// Retrieval info: <?xml version="1.0"?> +//<!-- +// Generated by Altera MegaWizard Launcher Utility version 1.0 +// ************************************************************ +// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +// ************************************************************ +// Copyright (C) 1991-2023 Altera Corporation +// Any megafunction design, and related net list (encrypted or decrypted), +// support information, device programming or simulation file, and any other +// associated documentation or information provided by Altera or a partner +// under Altera's Megafunction Partnership Program may be used only to +// program PLD devices (but not masked PLD devices) from Altera. Any other +// use of such megafunction design, net list, support information, device +// programming or simulation file, or any other related documentation or +// information is prohibited for any other purpose, including, but not +// limited to modification, reverse engineering, de-compiling, or use with +// any other silicon devices, unless such use is explicitly licensed under +// a separate agreement with Altera or a megafunction partner. Title to +// the intellectual property, including patents, copyrights, trademarks, +// trade secrets, or maskworks, embodied in any such megafunction design, +// net list, support information, device programming or simulation file, or +// any other related documentation or information provided by Altera or a +// megafunction partner, remains with Altera, the megafunction partner, or +// their respective licensors. No other licenses, including any licenses +// needed under any third party's intellectual property, are provided herein. +//--> +// Retrieval info: <instance entity-name="altera_fp_functions" version="20.1" > +// Retrieval info: <generic name="FUNCTION_FAMILY" value="ARITH" /> +// Retrieval info: <generic name="ARITH_function" value="ADD" /> +// Retrieval info: <generic name="CONVERT_function" value="FXP_FP" /> +// Retrieval info: <generic name="ALL_function" value="ADD" /> +// Retrieval info: <generic name="EXP_LOG_function" value="EXPE" /> +// Retrieval info: <generic name="TRIG_function" value="SIN" /> +// Retrieval info: <generic name="COMPARE_function" value="MIN" /> +// Retrieval info: <generic name="ROOTS_function" value="SQRT" /> +// Retrieval info: <generic name="fp_format" value="single" /> +// Retrieval info: <generic name="fp_exp" value="8" /> +// Retrieval info: <generic name="fp_man" value="23" /> +// Retrieval info: <generic name="exponent_width" value="23" /> +// Retrieval info: <generic name="frequency_target" value="200" /> +// Retrieval info: <generic name="latency_target" value="2" /> +// Retrieval info: <generic name="performance_goal" value="frequency" /> +// Retrieval info: <generic name="rounding_mode" value="nearest with tie breaking away from zero" /> +// Retrieval info: <generic name="faithful_rounding" value="true" /> +// Retrieval info: <generic name="gen_enable" value="false" /> +// Retrieval info: <generic name="divide_type" value="0" /> +// Retrieval info: <generic name="select_signal_enable" value="false" /> +// Retrieval info: <generic name="scale_by_pi" value="false" /> +// Retrieval info: <generic name="number_of_inputs" value="2" /> +// Retrieval info: <generic name="trig_no_range_reduction" value="false" /> +// Retrieval info: <generic name="report_resources_to_xml" value="false" /> +// Retrieval info: <generic name="fxpt_width" value="32" /> +// Retrieval info: <generic name="fxpt_fraction" value="0" /> +// Retrieval info: <generic name="fxpt_sign" value="1" /> +// Retrieval info: <generic name="fp_out_format" value="single" /> +// Retrieval info: <generic name="fp_out_exp" value="8" /> +// Retrieval info: <generic name="fp_out_man" value="23" /> +// Retrieval info: <generic name="fp_in_format" value="single" /> +// Retrieval info: <generic name="fp_in_exp" value="8" /> +// Retrieval info: <generic name="fp_in_man" value="23" /> +// Retrieval info: <generic name="enable_hard_fp" value="true" /> +// Retrieval info: <generic name="manual_dsp_planning" value="true" /> +// Retrieval info: <generic name="forceRegisters" value="1111" /> +// Retrieval info: <generic name="selected_device_family" value="Cyclone V" /> +// Retrieval info: <generic name="selected_device_speedgrade" value="7" /> +// Retrieval info: </instance> +// IPFS_FILES : ip_fp_add.vo +// RELATED_FILES: ip_fp_add.v, dspba_library_package.vhd, dspba_library.vhd, ip_fp_add_0002.vhd diff --git a/ip/ip_fp_add/dspba_library.vhd b/ip/ip_fp_add/dspba_library.vhd new file mode 100644 index 0000000..c38c661 --- /dev/null +++ b/ip/ip_fp_add/dspba_library.vhd @@ -0,0 +1,377 @@ +-- Legal Notice: Copyright 2017 Intel Corporation. All rights reserved. +-- Your use of Intel Corporation's design tools, logic functions and other +-- software and tools, and its AMPP partner logic functions, and any output +-- files any of the foregoing device programming or simulation files), and +-- any associated documentation or information are expressly subject to the +-- terms and conditions of the Intel FPGA Software License Agreement, +-- Intel MegaCore Function License Agreement, or other applicable license +-- agreement, including, without limitation, that your use is for the sole +-- purpose of programming logic devices manufactured by Intel and sold by +-- Intel or its authorized distributors. Please refer to the applicable +-- agreement for further details. + + +library IEEE; +use IEEE.std_logic_1164.all; +use work.dspba_library_package.all; + +entity dspba_delay is + generic ( + width : natural := 8; + depth : natural := 1; + reset_high : std_logic := '1'; + reset_kind : string := "ASYNC" + ); + port ( + clk : in std_logic; + aclr : in std_logic; + ena : in std_logic := '1'; + xin : in std_logic_vector(width-1 downto 0); + xout : out std_logic_vector(width-1 downto 0) + ); +end dspba_delay; + +architecture delay of dspba_delay is + type delay_array is array (depth downto 0) of std_logic_vector(width-1 downto 0); + signal delay_signals : delay_array; +begin + delay_signals(depth) <= xin; + + delay_block: if 0 < depth generate + begin + delay_loop: for i in depth-1 downto 0 generate + begin + async_reset: if reset_kind = "ASYNC" generate + process(clk, aclr) + begin + if aclr=reset_high then + delay_signals(i) <= (others => '0'); + elsif clk'event and clk='1' then + if ena='1' then + delay_signals(i) <= delay_signals(i + 1); + end if; + end if; + end process; + end generate; + + sync_reset: if reset_kind = "SYNC" generate + process(clk) + begin + if clk'event and clk='1' then + if aclr=reset_high then + delay_signals(i) <= (others => '0'); + elsif ena='1' then + delay_signals(i) <= delay_signals(i + 1); + end if; + end if; + end process; + end generate; + + no_reset: if reset_kind = "NONE" generate + process(clk) + begin + if clk'event and clk='1' then + if ena='1' then + delay_signals(i) <= delay_signals(i + 1); + end if; + end if; + end process; + end generate; + end generate; + end generate; + + xout <= delay_signals(0); +end delay; + +-------------------------------------------------------------------------------- + +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.NUMERIC_STD.all; +use work.dspba_library_package.all; + +entity dspba_sync_reg is + generic ( + width1 : natural := 8; + init_value : std_logic_vector; + width2 : natural := 8; + depth : natural := 2; + pulse_multiplier : natural := 1; + counter_width : natural := 8; + reset1_high : std_logic := '1'; + reset2_high : std_logic := '1'; + reset_kind : string := "ASYNC" + ); + port ( + clk1 : in std_logic; + aclr1 : in std_logic; + ena : in std_logic_vector(0 downto 0); + xin : in std_logic_vector(width1-1 downto 0); + xout : out std_logic_vector(width1-1 downto 0); + clk2 : in std_logic; + aclr2 : in std_logic; + sxout : out std_logic_vector(width2-1 downto 0) + ); +end entity; + +architecture sync_reg of dspba_sync_reg is + type bit_array is array (depth-1 downto 0) of std_logic; + + signal iclk_enable : std_logic; + signal iclk_data : std_logic_vector(width1-1 downto 0); + signal oclk_data : std_logic_vector(width2-1 downto 0); + + -- For Synthesis this means: preserve this registers and do not merge any other flip-flops with synchronizer flip-flops + -- For TimeQuest this means: identify these flip-flops as synchronizer to enable automatic MTBF analysis + signal sync_regs : bit_array; + attribute altera_attribute : string; + attribute altera_attribute of sync_regs : signal is "-name ADV_NETLIST_OPT_ALLOWED NEVER_ALLOW; -name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON"; + + signal oclk_enable : std_logic; + + constant init_value_internal : std_logic_vector(width1-1 downto 0) := init_value; + + signal counter : UNSIGNED(counter_width-1 downto 0); + signal ena_internal : std_logic; +begin + oclk_enable <= sync_regs(depth-1); + + no_multiplication: if pulse_multiplier=1 generate + ena_internal <= ena(0); + end generate; + + async_reset: if reset_kind="ASYNC" generate + + multiply_ena: if pulse_multiplier>1 generate + ena_internal <= '1' when counter>0 else ena(0); + process (clk1, aclr1) + begin + if aclr1=reset1_high then + counter <= (others => '0'); + elsif clk1'event and clk1='1' then + if counter>0 then + if counter=pulse_multiplier-1 then + counter <= (others => '0'); + else + counter <= counter + TO_UNSIGNED(1, counter_width); + end if; + else + if ena(0)='1' then + counter <= TO_UNSIGNED(1, counter_width); + end if; + end if; + end if; + end process; + end generate; + + process (clk1, aclr1) + begin + if aclr1=reset1_high then + iclk_enable <= '0'; + iclk_data <= init_value_internal; + elsif clk1'event and clk1='1' then + iclk_enable <= ena_internal; + if ena(0)='1' then + iclk_data <= xin; + end if; + end if; + end process; + + sync_reg_loop: for i in 0 to depth-1 generate + process (clk2, aclr2) + begin + if aclr2=reset2_high then + sync_regs(i) <= '0'; + elsif clk2'event and clk2='1' then + if i>0 then + sync_regs(i) <= sync_regs(i-1); + else + sync_regs(i) <= iclk_enable; + end if; + end if; + end process; + end generate; + + process (clk2, aclr2) + begin + if aclr2=reset2_high then + oclk_data <= init_value_internal(width2-1 downto 0); + elsif clk2'event and clk2='1' then + if oclk_enable='1' then + oclk_data <= iclk_data(width2-1 downto 0); + end if; + end if; + end process; + end generate; + + sync_reset: if reset_kind="SYNC" generate + + multiply_ena: if pulse_multiplier>1 generate + ena_internal <= '1' when counter>0 else ena(0); + process (clk1) + begin + if clk1'event and clk1='1' then + if aclr1=reset1_high then + counter <= (others => '0'); + else + if counter>0 then + if counter=pulse_multiplier-1 then + counter <= (others => '0'); + else + counter <= counter + TO_UNSIGNED(1, counter_width); + end if; + else + if ena(0)='1' then + counter <= TO_UNSIGNED(1, counter_width); + end if; + end if; + end if; + end if; + end process; + end generate; + + process (clk1) + begin + if clk1'event and clk1='1' then + if aclr1=reset1_high then + iclk_enable <= '0'; + iclk_data <= init_value_internal; + else + iclk_enable <= ena_internal; + if ena(0)='1' then + iclk_data <= xin; + end if; + end if; + end if; + end process; + + sync_reg_loop: for i in 0 to depth-1 generate + process (clk2) + begin + if clk2'event and clk2='1' then + if aclr2=reset2_high then + sync_regs(i) <= '0'; + else + if i>0 then + sync_regs(i) <= sync_regs(i-1); + else + sync_regs(i) <= iclk_enable; + end if; + end if; + end if; + end process; + end generate; + + process (clk2) + begin + if clk2'event and clk2='1' then + if aclr2=reset2_high then + oclk_data <= init_value_internal(width2-1 downto 0); + elsif oclk_enable='1' then + oclk_data <= iclk_data(width2-1 downto 0); + end if; + end if; + end process; + end generate; + + none_reset: if reset_kind="NONE" generate + + multiply_ena: if pulse_multiplier>1 generate + ena_internal <= '1' when counter>0 else ena(0); + process (clk1, aclr1) + begin + if clk1'event and clk1='1' then + if counter>0 then + if counter=pulse_multiplier-1 then + counter <= (others => '0'); + else + counter <= counter + TO_UNSIGNED(1, counter_width); + end if; + else + if ena(0)='1' then + counter <= TO_UNSIGNED(1, counter_width); + end if; + end if; + end if; + end process; + end generate; + + process (clk1) + begin + if clk1'event and clk1='1' then + iclk_enable <= ena_internal; + if ena(0)='1' then + iclk_data <= xin; + end if; + end if; + end process; + + sync_reg_loop: for i in 0 to depth-1 generate + process (clk2) + begin + if clk2'event and clk2='1' then + if i>0 then + sync_regs(i) <= sync_regs(i-1); + else + sync_regs(i) <= iclk_enable; + end if; + end if; + end process; + end generate; + + process (clk2) + begin + if clk2'event and clk2='1' then + if oclk_enable='1' then + oclk_data <= iclk_data(width2-1 downto 0); + end if; + end if; + end process; + end generate; + + xout <= iclk_data; + sxout <= oclk_data; + +end sync_reg; + +-------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity dspba_pipe is + generic( + num_bits : positive := 8; + num_stages : natural := 0; + init_value : std_logic := 'X' + ); + port( + clk: in std_logic; + d : in std_logic_vector(num_bits-1 downto 0); + q : out std_logic_vector(num_bits-1 downto 0) + ); +end entity dspba_pipe; + +architecture rtl of dspba_pipe is + attribute altera_attribute : string; + attribute altera_attribute of rtl : architecture is "-name AUTO_SHIFT_REGISTER_RECOGNITION off"; + + type stage_array_type is array(0 to num_stages) of std_logic_vector(num_bits-1 downto 0); + signal stage_array : stage_array_type := (others => (others => init_value)); +begin + stage_array(0) <= d; + + g_pipe : for i in 1 to num_stages generate + p_stage : process (clk) is + begin + if rising_edge(clk) then + stage_array(i) <= stage_array(i-1); + end if; + end process p_stage; + end generate g_pipe; + + q <= stage_array(num_stages); + +end rtl; + diff --git a/ip/ip_fp_add/dspba_library_package.vhd b/ip/ip_fp_add/dspba_library_package.vhd new file mode 100644 index 0000000..d03bca8 --- /dev/null +++ b/ip/ip_fp_add/dspba_library_package.vhd @@ -0,0 +1,72 @@ +-- Legal Notice: Copyright 2017 Intel Corporation. All rights reserved. +-- Your use of Intel Corporation's design tools, logic functions and other +-- software and tools, and its AMPP partner logic functions, and any output +-- files any of the foregoing device programming or simulation files), and +-- any associated documentation or information are expressly subject to the +-- terms and conditions of the Intel FPGA Software License Agreement, +-- Intel MegaCore Function License Agreement, or other applicable license +-- agreement, including, without limitation, that your use is for the sole +-- purpose of programming logic devices manufactured by Intel and sold by +-- Intel or its authorized distributors. Please refer to the applicable +-- agreement for further details. + + +library IEEE; +use IEEE.std_logic_1164.all; + +package dspba_library_package is + + component dspba_delay is + generic ( + width : natural := 8; + depth : natural := 1; + reset_high : std_logic := '1'; + reset_kind : string := "ASYNC" + ); + port ( + clk : in std_logic; + aclr : in std_logic; + ena : in std_logic := '1'; + xin : in std_logic_vector(width-1 downto 0); + xout : out std_logic_vector(width-1 downto 0) + ); + end component; + + component dspba_sync_reg is + generic ( + width1 : natural := 8; + width2 : natural := 8; + depth : natural := 2; + init_value : std_logic_vector; + pulse_multiplier : natural := 1; + counter_width : natural := 8; + reset1_high : std_logic := '1'; + reset2_high : std_logic := '1'; + reset_kind : string := "ASYNC" + ); + port ( + clk1 : in std_logic; + aclr1 : in std_logic; + ena : in std_logic_vector(0 downto 0); + xin : in std_logic_vector(width1-1 downto 0); + xout : out std_logic_vector(width1-1 downto 0); + clk2 : in std_logic; + aclr2 : in std_logic; + sxout : out std_logic_vector(width2-1 downto 0) + ); + end component; + + component dspba_pipe is + generic( + num_bits : positive; + num_stages : natural; + init_value : std_logic := 'X' + ); + port( + clk: in std_logic; + d : in std_logic_vector(num_bits-1 downto 0); + q : out std_logic_vector(num_bits-1 downto 0) + ); + end component dspba_pipe; + +end dspba_library_package; diff --git a/ip/ip_fp_add/ip_fp_add_0002.vhd b/ip/ip_fp_add/ip_fp_add_0002.vhd new file mode 100644 index 0000000..04c71b5 --- /dev/null +++ b/ip/ip_fp_add/ip_fp_add_0002.vhd @@ -0,0 +1,1707 @@ +-- ------------------------------------------------------------------------- +-- High Level Design Compiler for Intel(R) FPGAs Version 20.1 (Release Build #720) +-- Quartus Prime development tool and MATLAB/Simulink Interface +-- +-- Legal Notice: Copyright 2020 Intel Corporation. All rights reserved. +-- Your use of Intel Corporation's design tools, logic functions and other +-- software and tools, and its AMPP partner logic functions, and any output +-- files any of the foregoing (including device programming or simulation +-- files), and any associated documentation or information are expressly +-- subject to the terms and conditions of the Intel FPGA Software License +-- Agreement, Intel MegaCore Function License Agreement, or other applicable +-- license agreement, including, without limitation, that your use is for +-- the sole purpose of programming logic devices manufactured by Intel +-- and sold by Intel or its authorized distributors. Please refer to the +-- applicable agreement for further details. +-- --------------------------------------------------------------------------- + +-- VHDL created from ip_fp_add_0002 +-- VHDL created on Fri Oct 20 22:45:49 2023 + + +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.NUMERIC_STD.all; +use IEEE.MATH_REAL.all; +use std.TextIO.all; +use work.dspba_library_package.all; + +LIBRARY altera_mf; +USE altera_mf.altera_mf_components.all; +LIBRARY altera_lnsim; +USE altera_lnsim.altera_lnsim_components.altera_syncram; +LIBRARY lpm; +USE lpm.lpm_components.all; + +entity ip_fp_add_0002 is + port ( + a : in std_logic_vector(31 downto 0); -- float32_m23 + b : in std_logic_vector(31 downto 0); -- float32_m23 + q : out std_logic_vector(31 downto 0); -- float32_m23 + clk : in std_logic; + areset : in std_logic + ); +end ip_fp_add_0002; + +architecture normal of ip_fp_add_0002 is + + attribute altera_attribute : string; + attribute altera_attribute of normal : architecture is "-name AUTO_SHIFT_REGISTER_RECOGNITION OFF; -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION ON; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 10037; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 15400; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 12020; -name MESSAGE_DISABLE 12030; -name MESSAGE_DISABLE 12010; -name MESSAGE_DISABLE 12110; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 13410; -name MESSAGE_DISABLE 113007"; + + signal GND_q : STD_LOGIC_VECTOR (0 downto 0); + signal VCC_q : STD_LOGIC_VECTOR (0 downto 0); + signal expFracX_uid6_fpAddTest_b : STD_LOGIC_VECTOR (30 downto 0); + signal expFracY_uid7_fpAddTest_b : STD_LOGIC_VECTOR (30 downto 0); + signal xGTEy_uid8_fpAddTest_a : STD_LOGIC_VECTOR (32 downto 0); + signal xGTEy_uid8_fpAddTest_b : STD_LOGIC_VECTOR (32 downto 0); + signal xGTEy_uid8_fpAddTest_o : STD_LOGIC_VECTOR (32 downto 0); + signal xGTEy_uid8_fpAddTest_n : STD_LOGIC_VECTOR (0 downto 0); + signal fracY_uid9_fpAddTest_b : STD_LOGIC_VECTOR (22 downto 0); + signal expY_uid10_fpAddTest_b : STD_LOGIC_VECTOR (7 downto 0); + signal sigY_uid11_fpAddTest_b : STD_LOGIC_VECTOR (0 downto 0); + signal ypn_uid12_fpAddTest_q : STD_LOGIC_VECTOR (31 downto 0); + signal aSig_uid16_fpAddTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal aSig_uid16_fpAddTest_q : STD_LOGIC_VECTOR (31 downto 0); + signal bSig_uid17_fpAddTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal bSig_uid17_fpAddTest_q : STD_LOGIC_VECTOR (31 downto 0); + signal cstAllOWE_uid18_fpAddTest_q : STD_LOGIC_VECTOR (7 downto 0); + signal cstZeroWF_uid19_fpAddTest_q : STD_LOGIC_VECTOR (22 downto 0); + signal cstAllZWE_uid20_fpAddTest_q : STD_LOGIC_VECTOR (7 downto 0); + signal exp_aSig_uid21_fpAddTest_in : STD_LOGIC_VECTOR (30 downto 0); + signal exp_aSig_uid21_fpAddTest_b : STD_LOGIC_VECTOR (7 downto 0); + signal frac_aSig_uid22_fpAddTest_in : STD_LOGIC_VECTOR (22 downto 0); + signal frac_aSig_uid22_fpAddTest_b : STD_LOGIC_VECTOR (22 downto 0); + signal excZ_aSig_uid16_uid23_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excZ_aSig_uid16_uid23_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal expXIsMax_uid24_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal expXIsMax_uid24_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsZero_uid25_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsZero_uid25_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsNotZero_uid26_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excI_aSig_uid27_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excI_aSig_uid27_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excN_aSig_uid28_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excN_aSig_uid28_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal invExpXIsMax_uid29_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal InvExpXIsZero_uid30_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excR_aSig_uid31_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excR_aSig_uid31_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal exp_bSig_uid35_fpAddTest_in : STD_LOGIC_VECTOR (30 downto 0); + signal exp_bSig_uid35_fpAddTest_b : STD_LOGIC_VECTOR (7 downto 0); + signal frac_bSig_uid36_fpAddTest_in : STD_LOGIC_VECTOR (22 downto 0); + signal frac_bSig_uid36_fpAddTest_b : STD_LOGIC_VECTOR (22 downto 0); + signal excZ_bSig_uid17_uid37_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excZ_bSig_uid17_uid37_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal expXIsMax_uid38_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal expXIsMax_uid38_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsZero_uid39_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsZero_uid39_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsNotZero_uid40_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excI_bSig_uid41_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excI_bSig_uid41_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excN_bSig_uid42_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excN_bSig_uid42_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal invExpXIsMax_uid43_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal InvExpXIsZero_uid44_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excR_bSig_uid45_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excR_bSig_uid45_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal sigA_uid50_fpAddTest_b : STD_LOGIC_VECTOR (0 downto 0); + signal sigB_uid51_fpAddTest_b : STD_LOGIC_VECTOR (0 downto 0); + signal effSub_uid52_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal fracBz_uid56_fpAddTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal fracBz_uid56_fpAddTest_q : STD_LOGIC_VECTOR (22 downto 0); + signal oFracB_uid59_fpAddTest_q : STD_LOGIC_VECTOR (23 downto 0); + signal expAmExpB_uid60_fpAddTest_a : STD_LOGIC_VECTOR (8 downto 0); + signal expAmExpB_uid60_fpAddTest_b : STD_LOGIC_VECTOR (8 downto 0); + signal expAmExpB_uid60_fpAddTest_o : STD_LOGIC_VECTOR (8 downto 0); + signal expAmExpB_uid60_fpAddTest_q : STD_LOGIC_VECTOR (8 downto 0); + signal oFracA_uid64_fpAddTest_q : STD_LOGIC_VECTOR (23 downto 0); + signal oFracAE_uid65_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal oFracBR_uid67_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal oFracBREX_uid68_fpAddTest_b : STD_LOGIC_VECTOR (26 downto 0); + signal oFracBREX_uid68_fpAddTest_qi : STD_LOGIC_VECTOR (26 downto 0); + signal oFracBREX_uid68_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal oFracBREXC2_uid69_fpAddTest_a : STD_LOGIC_VECTOR (27 downto 0); + signal oFracBREXC2_uid69_fpAddTest_b : STD_LOGIC_VECTOR (27 downto 0); + signal oFracBREXC2_uid69_fpAddTest_o : STD_LOGIC_VECTOR (27 downto 0); + signal oFracBREXC2_uid69_fpAddTest_q : STD_LOGIC_VECTOR (27 downto 0); + signal oFracBREXC2_uid70_fpAddTest_in : STD_LOGIC_VECTOR (26 downto 0); + signal oFracBREXC2_uid70_fpAddTest_b : STD_LOGIC_VECTOR (26 downto 0); + signal fracAddResult_uid72_fpAddTest_a : STD_LOGIC_VECTOR (27 downto 0); + signal fracAddResult_uid72_fpAddTest_b : STD_LOGIC_VECTOR (27 downto 0); + signal fracAddResult_uid72_fpAddTest_o : STD_LOGIC_VECTOR (27 downto 0); + signal fracAddResult_uid72_fpAddTest_q : STD_LOGIC_VECTOR (27 downto 0); + signal fracAddResultNoSignExt_uid73_fpAddTest_in : STD_LOGIC_VECTOR (26 downto 0); + signal fracAddResultNoSignExt_uid73_fpAddTest_b : STD_LOGIC_VECTOR (26 downto 0); + signal cAmA_uid76_fpAddTest_q : STD_LOGIC_VECTOR (4 downto 0); + signal aMinusA_uid77_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal aMinusA_uid77_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal expInc_uid78_fpAddTest_a : STD_LOGIC_VECTOR (8 downto 0); + signal expInc_uid78_fpAddTest_b : STD_LOGIC_VECTOR (8 downto 0); + signal expInc_uid78_fpAddTest_o : STD_LOGIC_VECTOR (8 downto 0); + signal expInc_uid78_fpAddTest_q : STD_LOGIC_VECTOR (8 downto 0); + signal expPostNorm_uid79_fpAddTest_a : STD_LOGIC_VECTOR (9 downto 0); + signal expPostNorm_uid79_fpAddTest_b : STD_LOGIC_VECTOR (9 downto 0); + signal expPostNorm_uid79_fpAddTest_o : STD_LOGIC_VECTOR (9 downto 0); + signal expPostNorm_uid79_fpAddTest_q : STD_LOGIC_VECTOR (9 downto 0); + signal fracPostNormRndRange_uid80_fpAddTest_in : STD_LOGIC_VECTOR (25 downto 0); + signal fracPostNormRndRange_uid80_fpAddTest_b : STD_LOGIC_VECTOR (23 downto 0); + signal expFracR_uid81_fpAddTest_q : STD_LOGIC_VECTOR (33 downto 0); + signal wEP2AllOwE_uid82_fpAddTest_q : STD_LOGIC_VECTOR (9 downto 0); + signal rndExp_uid83_fpAddTest_b : STD_LOGIC_VECTOR (9 downto 0); + signal rOvf_uid84_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal rOvf_uid84_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal rUdf_uid85_fpAddTest_b : STD_LOGIC_VECTOR (0 downto 0); + signal fracRPreExc_uid86_fpAddTest_in : STD_LOGIC_VECTOR (23 downto 0); + signal fracRPreExc_uid86_fpAddTest_b : STD_LOGIC_VECTOR (22 downto 0); + signal expRPreExc_uid87_fpAddTest_in : STD_LOGIC_VECTOR (31 downto 0); + signal expRPreExc_uid87_fpAddTest_b : STD_LOGIC_VECTOR (7 downto 0); + signal regInputs_uid88_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excRZeroVInC_uid89_fpAddTest_q : STD_LOGIC_VECTOR (4 downto 0); + signal excRZero_uid90_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal rInfOvf_uid91_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excRInfVInC_uid92_fpAddTest_q : STD_LOGIC_VECTOR (5 downto 0); + signal excRInf_uid93_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excRNaN2_uid94_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excAIBISub_uid95_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excRNaN_uid96_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal concExc_uid97_fpAddTest_q : STD_LOGIC_VECTOR (2 downto 0); + signal excREnc_uid98_fpAddTest_q : STD_LOGIC_VECTOR (1 downto 0); + signal invAMinusA_uid99_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal signRReg_uid100_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal sigBBInf_uid101_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal sigAAInf_uid102_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal signRInf_uid103_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excAZBZSigASigB_uid104_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excBZARSigA_uid105_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal signRZero_uid106_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal signRInfRZRReg_uid107_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal signRInfRZRReg_uid107_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal invExcRNaN_uid108_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal signRPostExc_uid109_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal signRPostExc_uid109_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal oneFracRPostExc2_uid110_fpAddTest_q : STD_LOGIC_VECTOR (22 downto 0); + signal fracRPostExc_uid113_fpAddTest_s : STD_LOGIC_VECTOR (1 downto 0); + signal fracRPostExc_uid113_fpAddTest_q : STD_LOGIC_VECTOR (22 downto 0); + signal expRPostExc_uid117_fpAddTest_s : STD_LOGIC_VECTOR (1 downto 0); + signal expRPostExc_uid117_fpAddTest_q : STD_LOGIC_VECTOR (7 downto 0); + signal R_uid118_fpAddTest_q : STD_LOGIC_VECTOR (31 downto 0); + signal zs_uid120_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (15 downto 0); + signal rVStage_uid121_lzCountVal_uid74_fpAddTest_b : STD_LOGIC_VECTOR (15 downto 0); + signal vCount_uid122_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal mO_uid123_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (4 downto 0); + signal vStage_uid124_lzCountVal_uid74_fpAddTest_in : STD_LOGIC_VECTOR (10 downto 0); + signal vStage_uid124_lzCountVal_uid74_fpAddTest_b : STD_LOGIC_VECTOR (10 downto 0); + signal cStage_uid125_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (15 downto 0); + signal vStagei_uid127_lzCountVal_uid74_fpAddTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal vStagei_uid127_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (15 downto 0); + signal vCount_uid130_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal vStagei_uid133_lzCountVal_uid74_fpAddTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal vStagei_uid133_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (7 downto 0); + signal zs_uid134_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (3 downto 0); + signal vCount_uid136_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal vStagei_uid139_lzCountVal_uid74_fpAddTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal vStagei_uid139_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (3 downto 0); + signal zs_uid140_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (1 downto 0); + signal vCount_uid142_lzCountVal_uid74_fpAddTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal vCount_uid142_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal vStagei_uid145_lzCountVal_uid74_fpAddTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal vStagei_uid145_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (1 downto 0); + signal rVStage_uid147_lzCountVal_uid74_fpAddTest_b : STD_LOGIC_VECTOR (0 downto 0); + signal vCount_uid148_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal r_uid149_lzCountVal_uid74_fpAddTest_q : STD_LOGIC_VECTOR (4 downto 0); + signal xMSB_uid151_alignmentShifter_uid71_fpAddTest_b : STD_LOGIC_VECTOR (0 downto 0); + signal shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_a : STD_LOGIC_VECTOR (10 downto 0); + signal shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_b : STD_LOGIC_VECTOR (10 downto 0); + signal shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_o : STD_LOGIC_VECTOR (10 downto 0); + signal shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_n : STD_LOGIC_VECTOR (0 downto 0); + signal seMsb_to8_uid155_in : STD_LOGIC_VECTOR (7 downto 0); + signal seMsb_to8_uid155_b : STD_LOGIC_VECTOR (7 downto 0); + signal rightShiftStage0Idx1Rng8_uid156_alignmentShifter_uid71_fpAddTest_b : STD_LOGIC_VECTOR (18 downto 0); + signal rightShiftStage0Idx1_uid157_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal seMsb_to16_uid158_in : STD_LOGIC_VECTOR (15 downto 0); + signal seMsb_to16_uid158_b : STD_LOGIC_VECTOR (15 downto 0); + signal rightShiftStage0Idx2Rng16_uid159_alignmentShifter_uid71_fpAddTest_b : STD_LOGIC_VECTOR (10 downto 0); + signal rightShiftStage0Idx2_uid160_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal seMsb_to24_uid161_in : STD_LOGIC_VECTOR (23 downto 0); + signal seMsb_to24_uid161_b : STD_LOGIC_VECTOR (23 downto 0); + signal rightShiftStage0Idx3Rng24_uid162_alignmentShifter_uid71_fpAddTest_b : STD_LOGIC_VECTOR (2 downto 0); + signal rightShiftStage0Idx3_uid163_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_s : STD_LOGIC_VECTOR (1 downto 0); + signal rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal seMsb_to2_uid166_in : STD_LOGIC_VECTOR (1 downto 0); + signal seMsb_to2_uid166_b : STD_LOGIC_VECTOR (1 downto 0); + signal rightShiftStage1Idx1Rng2_uid167_alignmentShifter_uid71_fpAddTest_b : STD_LOGIC_VECTOR (24 downto 0); + signal rightShiftStage1Idx1_uid168_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal seMsb_to4_uid169_in : STD_LOGIC_VECTOR (3 downto 0); + signal seMsb_to4_uid169_b : STD_LOGIC_VECTOR (3 downto 0); + signal rightShiftStage1Idx2Rng4_uid170_alignmentShifter_uid71_fpAddTest_b : STD_LOGIC_VECTOR (22 downto 0); + signal rightShiftStage1Idx2_uid171_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal seMsb_to6_uid172_in : STD_LOGIC_VECTOR (5 downto 0); + signal seMsb_to6_uid172_b : STD_LOGIC_VECTOR (5 downto 0); + signal rightShiftStage1Idx3Rng6_uid173_alignmentShifter_uid71_fpAddTest_b : STD_LOGIC_VECTOR (20 downto 0); + signal rightShiftStage1Idx3_uid174_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_s : STD_LOGIC_VECTOR (1 downto 0); + signal rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal rightShiftStage2Idx1Rng1_uid177_alignmentShifter_uid71_fpAddTest_b : STD_LOGIC_VECTOR (25 downto 0); + signal rightShiftStage2Idx1_uid178_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal shiftOutConstant_to27_uid181_in : STD_LOGIC_VECTOR (26 downto 0); + signal shiftOutConstant_to27_uid181_b : STD_LOGIC_VECTOR (26 downto 0); + signal r_uid183_alignmentShifter_uid71_fpAddTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal r_uid183_alignmentShifter_uid71_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal leftShiftStage0Idx1Rng8_uid188_fracPostNorm_uid75_fpAddTest_in : STD_LOGIC_VECTOR (18 downto 0); + signal leftShiftStage0Idx1Rng8_uid188_fracPostNorm_uid75_fpAddTest_b : STD_LOGIC_VECTOR (18 downto 0); + signal leftShiftStage0Idx1_uid189_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal leftShiftStage0Idx2_uid192_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal leftShiftStage0Idx3Pad24_uid193_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (23 downto 0); + signal leftShiftStage0Idx3Rng24_uid194_fracPostNorm_uid75_fpAddTest_in : STD_LOGIC_VECTOR (2 downto 0); + signal leftShiftStage0Idx3Rng24_uid194_fracPostNorm_uid75_fpAddTest_b : STD_LOGIC_VECTOR (2 downto 0); + signal leftShiftStage0Idx3_uid195_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_s : STD_LOGIC_VECTOR (1 downto 0); + signal leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal leftShiftStage1Idx1Rng2_uid199_fracPostNorm_uid75_fpAddTest_in : STD_LOGIC_VECTOR (24 downto 0); + signal leftShiftStage1Idx1Rng2_uid199_fracPostNorm_uid75_fpAddTest_b : STD_LOGIC_VECTOR (24 downto 0); + signal leftShiftStage1Idx1_uid200_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal leftShiftStage1Idx2Rng4_uid202_fracPostNorm_uid75_fpAddTest_in : STD_LOGIC_VECTOR (22 downto 0); + signal leftShiftStage1Idx2Rng4_uid202_fracPostNorm_uid75_fpAddTest_b : STD_LOGIC_VECTOR (22 downto 0); + signal leftShiftStage1Idx2_uid203_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal leftShiftStage1Idx3Pad6_uid204_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (5 downto 0); + signal leftShiftStage1Idx3Rng6_uid205_fracPostNorm_uid75_fpAddTest_in : STD_LOGIC_VECTOR (20 downto 0); + signal leftShiftStage1Idx3Rng6_uid205_fracPostNorm_uid75_fpAddTest_b : STD_LOGIC_VECTOR (20 downto 0); + signal leftShiftStage1Idx3_uid206_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_s : STD_LOGIC_VECTOR (1 downto 0); + signal leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal leftShiftStage2Idx1Rng1_uid210_fracPostNorm_uid75_fpAddTest_in : STD_LOGIC_VECTOR (25 downto 0); + signal leftShiftStage2Idx1Rng1_uid210_fracPostNorm_uid75_fpAddTest_b : STD_LOGIC_VECTOR (25 downto 0); + signal leftShiftStage2Idx1_uid211_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest_q : STD_LOGIC_VECTOR (26 downto 0); + signal rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_in : STD_LOGIC_VECTOR (4 downto 0); + signal rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_b : STD_LOGIC_VECTOR (1 downto 0); + signal rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_c : STD_LOGIC_VECTOR (1 downto 0); + signal rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_d : STD_LOGIC_VECTOR (0 downto 0); + signal rVStage_uid129_lzCountVal_uid74_fpAddTest_merged_bit_select_b : STD_LOGIC_VECTOR (7 downto 0); + signal rVStage_uid129_lzCountVal_uid74_fpAddTest_merged_bit_select_c : STD_LOGIC_VECTOR (7 downto 0); + signal rVStage_uid135_lzCountVal_uid74_fpAddTest_merged_bit_select_b : STD_LOGIC_VECTOR (3 downto 0); + signal rVStage_uid135_lzCountVal_uid74_fpAddTest_merged_bit_select_c : STD_LOGIC_VECTOR (3 downto 0); + signal rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_b : STD_LOGIC_VECTOR (1 downto 0); + signal rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_c : STD_LOGIC_VECTOR (1 downto 0); + signal leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_b : STD_LOGIC_VECTOR (1 downto 0); + signal leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_c : STD_LOGIC_VECTOR (1 downto 0); + signal leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_d : STD_LOGIC_VECTOR (0 downto 0); + signal redist0_leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_d_1_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist1_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_b_1_q : STD_LOGIC_VECTOR (1 downto 0); + signal redist2_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_c_1_q : STD_LOGIC_VECTOR (1 downto 0); + signal redist3_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_b_2_q : STD_LOGIC_VECTOR (1 downto 0); + signal redist4_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_c_2_q : STD_LOGIC_VECTOR (1 downto 0); + signal redist5_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_d_2_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist6_shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_n_3_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist7_xMSB_uid151_alignmentShifter_uid71_fpAddTest_b_1_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist8_vCount_uid136_lzCountVal_uid74_fpAddTest_q_1_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist9_vCount_uid130_lzCountVal_uid74_fpAddTest_q_2_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist10_vStage_uid124_lzCountVal_uid74_fpAddTest_b_3_q : STD_LOGIC_VECTOR (10 downto 0); + signal redist11_vCount_uid122_lzCountVal_uid74_fpAddTest_q_3_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist12_regInputs_uid88_fpAddTest_q_1_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist13_expRPreExc_uid87_fpAddTest_b_2_q : STD_LOGIC_VECTOR (7 downto 0); + signal redist14_fracRPreExc_uid86_fpAddTest_b_2_q : STD_LOGIC_VECTOR (22 downto 0); + signal redist15_fracAddResultNoSignExt_uid73_fpAddTest_b_1_q : STD_LOGIC_VECTOR (26 downto 0); + signal redist16_fracAddResultNoSignExt_uid73_fpAddTest_b_4_q : STD_LOGIC_VECTOR (26 downto 0); + signal redist17_oFracBREXC2_uid70_fpAddTest_b_1_q : STD_LOGIC_VECTOR (26 downto 0); + signal redist18_effSub_uid52_fpAddTest_q_1_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist19_effSub_uid52_fpAddTest_q_10_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist20_sigB_uid51_fpAddTest_b_1_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist21_sigB_uid51_fpAddTest_b_10_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist22_sigA_uid50_fpAddTest_b_1_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist23_sigA_uid50_fpAddTest_b_10_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist24_InvExpXIsZero_uid44_fpAddTest_q_8_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist25_excN_bSig_uid42_fpAddTest_q_2_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist26_excI_bSig_uid41_fpAddTest_q_2_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist27_fracXIsZero_uid39_fpAddTest_q_8_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist28_expXIsMax_uid38_fpAddTest_q_9_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist29_excZ_bSig_uid17_uid37_fpAddTest_q_10_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist30_frac_bSig_uid36_fpAddTest_b_1_q : STD_LOGIC_VECTOR (22 downto 0); + signal redist31_excN_aSig_uid28_fpAddTest_q_2_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist32_excI_aSig_uid27_fpAddTest_q_2_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist33_fracXIsZero_uid25_fpAddTest_q_4_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist34_excZ_aSig_uid16_uid23_fpAddTest_q_2_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist37_xIn_a_1_q : STD_LOGIC_VECTOR (31 downto 0); + signal redist38_xIn_b_1_q : STD_LOGIC_VECTOR (31 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_outputreg_q : STD_LOGIC_VECTOR (22 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_mem_reset0 : std_logic; + signal redist35_frac_aSig_uid22_fpAddTest_b_5_mem_ia : STD_LOGIC_VECTOR (22 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_mem_aa : STD_LOGIC_VECTOR (1 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_mem_ab : STD_LOGIC_VECTOR (1 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_mem_iq : STD_LOGIC_VECTOR (22 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_mem_q : STD_LOGIC_VECTOR (22 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_q : STD_LOGIC_VECTOR (1 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_i : UNSIGNED (1 downto 0); + attribute preserve : boolean; + attribute preserve of redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_i : signal is true; + signal redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_eq : std_logic; + attribute preserve of redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_eq : signal is true; + signal redist35_frac_aSig_uid22_fpAddTest_b_5_wraddr_q : STD_LOGIC_VECTOR (1 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_mem_last_q : STD_LOGIC_VECTOR (1 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_cmp_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_cmpReg_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_notEnable_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_nor_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist35_frac_aSig_uid22_fpAddTest_b_5_sticky_ena_q : STD_LOGIC_VECTOR (0 downto 0); + attribute dont_merge : boolean; + attribute dont_merge of redist35_frac_aSig_uid22_fpAddTest_b_5_sticky_ena_q : signal is true; + signal redist35_frac_aSig_uid22_fpAddTest_b_5_enaAnd_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_outputreg_q : STD_LOGIC_VECTOR (7 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_mem_reset0 : std_logic; + signal redist36_exp_aSig_uid21_fpAddTest_b_8_mem_ia : STD_LOGIC_VECTOR (7 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_mem_aa : STD_LOGIC_VECTOR (2 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_mem_ab : STD_LOGIC_VECTOR (2 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_mem_iq : STD_LOGIC_VECTOR (7 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_mem_q : STD_LOGIC_VECTOR (7 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_q : STD_LOGIC_VECTOR (2 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_i : UNSIGNED (2 downto 0); + attribute preserve of redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_i : signal is true; + signal redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_eq : std_logic; + attribute preserve of redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_eq : signal is true; + signal redist36_exp_aSig_uid21_fpAddTest_b_8_wraddr_q : STD_LOGIC_VECTOR (2 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_mem_last_q : STD_LOGIC_VECTOR (3 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_cmp_b : STD_LOGIC_VECTOR (3 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_cmp_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_cmpReg_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_notEnable_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_nor_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist36_exp_aSig_uid21_fpAddTest_b_8_sticky_ena_q : STD_LOGIC_VECTOR (0 downto 0); + attribute dont_merge of redist36_exp_aSig_uid21_fpAddTest_b_8_sticky_ena_q : signal is true; + signal redist36_exp_aSig_uid21_fpAddTest_b_8_enaAnd_q : STD_LOGIC_VECTOR (0 downto 0); + +begin + + + -- cAmA_uid76_fpAddTest(CONSTANT,75) + cAmA_uid76_fpAddTest_q <= "11011"; + + -- zs_uid120_lzCountVal_uid74_fpAddTest(CONSTANT,119) + zs_uid120_lzCountVal_uid74_fpAddTest_q <= "0000000000000000"; + + -- redist38_xIn_b_1(DELAY,257) + redist38_xIn_b_1 : dspba_delay + GENERIC MAP ( width => 32, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => b, xout => redist38_xIn_b_1_q, clk => clk, aclr => areset ); + + -- sigY_uid11_fpAddTest(BITSELECT,10)@1 + sigY_uid11_fpAddTest_b <= STD_LOGIC_VECTOR(redist38_xIn_b_1_q(31 downto 31)); + + -- expY_uid10_fpAddTest(BITSELECT,9)@1 + expY_uid10_fpAddTest_b <= redist38_xIn_b_1_q(30 downto 23); + + -- fracY_uid9_fpAddTest(BITSELECT,8)@1 + fracY_uid9_fpAddTest_b <= redist38_xIn_b_1_q(22 downto 0); + + -- ypn_uid12_fpAddTest(BITJOIN,11)@1 + ypn_uid12_fpAddTest_q <= sigY_uid11_fpAddTest_b & expY_uid10_fpAddTest_b & fracY_uid9_fpAddTest_b; + + -- redist37_xIn_a_1(DELAY,256) + redist37_xIn_a_1 : dspba_delay + GENERIC MAP ( width => 32, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => a, xout => redist37_xIn_a_1_q, clk => clk, aclr => areset ); + + -- GND(CONSTANT,0) + GND_q <= "0"; + + -- expFracY_uid7_fpAddTest(BITSELECT,6)@0 + expFracY_uid7_fpAddTest_b <= b(30 downto 0); + + -- expFracX_uid6_fpAddTest(BITSELECT,5)@0 + expFracX_uid6_fpAddTest_b <= a(30 downto 0); + + -- xGTEy_uid8_fpAddTest(COMPARE,7)@0 + 1 + xGTEy_uid8_fpAddTest_a <= STD_LOGIC_VECTOR("00" & expFracX_uid6_fpAddTest_b); + xGTEy_uid8_fpAddTest_b <= STD_LOGIC_VECTOR("00" & expFracY_uid7_fpAddTest_b); + xGTEy_uid8_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + xGTEy_uid8_fpAddTest_o <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + xGTEy_uid8_fpAddTest_o <= STD_LOGIC_VECTOR(UNSIGNED(xGTEy_uid8_fpAddTest_a) - UNSIGNED(xGTEy_uid8_fpAddTest_b)); + END IF; + END PROCESS; + xGTEy_uid8_fpAddTest_n(0) <= not (xGTEy_uid8_fpAddTest_o(32)); + + -- bSig_uid17_fpAddTest(MUX,16)@1 + bSig_uid17_fpAddTest_s <= xGTEy_uid8_fpAddTest_n; + bSig_uid17_fpAddTest_combproc: PROCESS (bSig_uid17_fpAddTest_s, redist37_xIn_a_1_q, ypn_uid12_fpAddTest_q) + BEGIN + CASE (bSig_uid17_fpAddTest_s) IS + WHEN "0" => bSig_uid17_fpAddTest_q <= redist37_xIn_a_1_q; + WHEN "1" => bSig_uid17_fpAddTest_q <= ypn_uid12_fpAddTest_q; + WHEN OTHERS => bSig_uid17_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- sigB_uid51_fpAddTest(BITSELECT,50)@1 + sigB_uid51_fpAddTest_b <= STD_LOGIC_VECTOR(bSig_uid17_fpAddTest_q(31 downto 31)); + + -- redist20_sigB_uid51_fpAddTest_b_1(DELAY,239) + redist20_sigB_uid51_fpAddTest_b_1 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => sigB_uid51_fpAddTest_b, xout => redist20_sigB_uid51_fpAddTest_b_1_q, clk => clk, aclr => areset ); + + -- aSig_uid16_fpAddTest(MUX,15)@1 + aSig_uid16_fpAddTest_s <= xGTEy_uid8_fpAddTest_n; + aSig_uid16_fpAddTest_combproc: PROCESS (aSig_uid16_fpAddTest_s, ypn_uid12_fpAddTest_q, redist37_xIn_a_1_q) + BEGIN + CASE (aSig_uid16_fpAddTest_s) IS + WHEN "0" => aSig_uid16_fpAddTest_q <= ypn_uid12_fpAddTest_q; + WHEN "1" => aSig_uid16_fpAddTest_q <= redist37_xIn_a_1_q; + WHEN OTHERS => aSig_uid16_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- sigA_uid50_fpAddTest(BITSELECT,49)@1 + sigA_uid50_fpAddTest_b <= STD_LOGIC_VECTOR(aSig_uid16_fpAddTest_q(31 downto 31)); + + -- redist22_sigA_uid50_fpAddTest_b_1(DELAY,241) + redist22_sigA_uid50_fpAddTest_b_1 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => sigA_uid50_fpAddTest_b, xout => redist22_sigA_uid50_fpAddTest_b_1_q, clk => clk, aclr => areset ); + + -- effSub_uid52_fpAddTest(LOGICAL,51)@2 + effSub_uid52_fpAddTest_q <= redist22_sigA_uid50_fpAddTest_b_1_q xor redist20_sigB_uid51_fpAddTest_b_1_q; + + -- redist18_effSub_uid52_fpAddTest_q_1(DELAY,237) + redist18_effSub_uid52_fpAddTest_q_1 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => effSub_uid52_fpAddTest_q, xout => redist18_effSub_uid52_fpAddTest_q_1_q, clk => clk, aclr => areset ); + + -- cstAllZWE_uid20_fpAddTest(CONSTANT,19) + cstAllZWE_uid20_fpAddTest_q <= "00000000"; + + -- exp_bSig_uid35_fpAddTest(BITSELECT,34)@1 + exp_bSig_uid35_fpAddTest_in <= bSig_uid17_fpAddTest_q(30 downto 0); + exp_bSig_uid35_fpAddTest_b <= exp_bSig_uid35_fpAddTest_in(30 downto 23); + + -- excZ_bSig_uid17_uid37_fpAddTest(LOGICAL,36)@1 + 1 + excZ_bSig_uid17_uid37_fpAddTest_qi <= "1" WHEN exp_bSig_uid35_fpAddTest_b = cstAllZWE_uid20_fpAddTest_q ELSE "0"; + excZ_bSig_uid17_uid37_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excZ_bSig_uid17_uid37_fpAddTest_qi, xout => excZ_bSig_uid17_uid37_fpAddTest_q, clk => clk, aclr => areset ); + + -- InvExpXIsZero_uid44_fpAddTest(LOGICAL,43)@2 + InvExpXIsZero_uid44_fpAddTest_q <= not (excZ_bSig_uid17_uid37_fpAddTest_q); + + -- cstZeroWF_uid19_fpAddTest(CONSTANT,18) + cstZeroWF_uid19_fpAddTest_q <= "00000000000000000000000"; + + -- frac_bSig_uid36_fpAddTest(BITSELECT,35)@1 + frac_bSig_uid36_fpAddTest_in <= bSig_uid17_fpAddTest_q(22 downto 0); + frac_bSig_uid36_fpAddTest_b <= frac_bSig_uid36_fpAddTest_in(22 downto 0); + + -- redist30_frac_bSig_uid36_fpAddTest_b_1(DELAY,249) + redist30_frac_bSig_uid36_fpAddTest_b_1 : dspba_delay + GENERIC MAP ( width => 23, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => frac_bSig_uid36_fpAddTest_b, xout => redist30_frac_bSig_uid36_fpAddTest_b_1_q, clk => clk, aclr => areset ); + + -- fracBz_uid56_fpAddTest(MUX,55)@2 + fracBz_uid56_fpAddTest_s <= excZ_bSig_uid17_uid37_fpAddTest_q; + fracBz_uid56_fpAddTest_combproc: PROCESS (fracBz_uid56_fpAddTest_s, redist30_frac_bSig_uid36_fpAddTest_b_1_q, cstZeroWF_uid19_fpAddTest_q) + BEGIN + CASE (fracBz_uid56_fpAddTest_s) IS + WHEN "0" => fracBz_uid56_fpAddTest_q <= redist30_frac_bSig_uid36_fpAddTest_b_1_q; + WHEN "1" => fracBz_uid56_fpAddTest_q <= cstZeroWF_uid19_fpAddTest_q; + WHEN OTHERS => fracBz_uid56_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- oFracB_uid59_fpAddTest(BITJOIN,58)@2 + oFracB_uid59_fpAddTest_q <= InvExpXIsZero_uid44_fpAddTest_q & fracBz_uid56_fpAddTest_q; + + -- oFracBR_uid67_fpAddTest(BITJOIN,66)@2 + oFracBR_uid67_fpAddTest_q <= GND_q & oFracB_uid59_fpAddTest_q & GND_q & GND_q; + + -- oFracBREX_uid68_fpAddTest(LOGICAL,67)@2 + 1 + oFracBREX_uid68_fpAddTest_b <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((26 downto 1 => effSub_uid52_fpAddTest_q(0)) & effSub_uid52_fpAddTest_q)); + oFracBREX_uid68_fpAddTest_qi <= oFracBR_uid67_fpAddTest_q xor oFracBREX_uid68_fpAddTest_b; + oFracBREX_uid68_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 27, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => oFracBREX_uid68_fpAddTest_qi, xout => oFracBREX_uid68_fpAddTest_q, clk => clk, aclr => areset ); + + -- oFracBREXC2_uid69_fpAddTest(ADD,68)@3 + oFracBREXC2_uid69_fpAddTest_a <= STD_LOGIC_VECTOR("0" & oFracBREX_uid68_fpAddTest_q); + oFracBREXC2_uid69_fpAddTest_b <= STD_LOGIC_VECTOR("000000000000000000000000000" & redist18_effSub_uid52_fpAddTest_q_1_q); + oFracBREXC2_uid69_fpAddTest_o <= STD_LOGIC_VECTOR(UNSIGNED(oFracBREXC2_uid69_fpAddTest_a) + UNSIGNED(oFracBREXC2_uid69_fpAddTest_b)); + oFracBREXC2_uid69_fpAddTest_q <= oFracBREXC2_uid69_fpAddTest_o(27 downto 0); + + -- oFracBREXC2_uid70_fpAddTest(BITSELECT,69)@3 + oFracBREXC2_uid70_fpAddTest_in <= STD_LOGIC_VECTOR(oFracBREXC2_uid69_fpAddTest_q(26 downto 0)); + oFracBREXC2_uid70_fpAddTest_b <= STD_LOGIC_VECTOR(oFracBREXC2_uid70_fpAddTest_in(26 downto 0)); + + -- redist17_oFracBREXC2_uid70_fpAddTest_b_1(DELAY,236) + redist17_oFracBREXC2_uid70_fpAddTest_b_1 : dspba_delay + GENERIC MAP ( width => 27, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => oFracBREXC2_uid70_fpAddTest_b, xout => redist17_oFracBREXC2_uid70_fpAddTest_b_1_q, clk => clk, aclr => areset ); + + -- xMSB_uid151_alignmentShifter_uid71_fpAddTest(BITSELECT,150)@4 + xMSB_uid151_alignmentShifter_uid71_fpAddTest_b <= STD_LOGIC_VECTOR(redist17_oFracBREXC2_uid70_fpAddTest_b_1_q(26 downto 26)); + + -- redist7_xMSB_uid151_alignmentShifter_uid71_fpAddTest_b_1(DELAY,226) + redist7_xMSB_uid151_alignmentShifter_uid71_fpAddTest_b_1 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => xMSB_uid151_alignmentShifter_uid71_fpAddTest_b, xout => redist7_xMSB_uid151_alignmentShifter_uid71_fpAddTest_b_1_q, clk => clk, aclr => areset ); + + -- shiftOutConstant_to27_uid181(BITSELECT,180)@5 + shiftOutConstant_to27_uid181_in <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((26 downto 1 => redist7_xMSB_uid151_alignmentShifter_uid71_fpAddTest_b_1_q(0)) & redist7_xMSB_uid151_alignmentShifter_uid71_fpAddTest_b_1_q)); + shiftOutConstant_to27_uid181_b <= STD_LOGIC_VECTOR(shiftOutConstant_to27_uid181_in(26 downto 0)); + + -- rightShiftStage2Idx1Rng1_uid177_alignmentShifter_uid71_fpAddTest(BITSELECT,176)@4 + rightShiftStage2Idx1Rng1_uid177_alignmentShifter_uid71_fpAddTest_b <= rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_q(26 downto 1); + + -- rightShiftStage2Idx1_uid178_alignmentShifter_uid71_fpAddTest(BITJOIN,177)@4 + rightShiftStage2Idx1_uid178_alignmentShifter_uid71_fpAddTest_q <= xMSB_uid151_alignmentShifter_uid71_fpAddTest_b & rightShiftStage2Idx1Rng1_uid177_alignmentShifter_uid71_fpAddTest_b; + + -- seMsb_to6_uid172(BITSELECT,171)@4 + seMsb_to6_uid172_in <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((5 downto 1 => xMSB_uid151_alignmentShifter_uid71_fpAddTest_b(0)) & xMSB_uid151_alignmentShifter_uid71_fpAddTest_b)); + seMsb_to6_uid172_b <= STD_LOGIC_VECTOR(seMsb_to6_uid172_in(5 downto 0)); + + -- rightShiftStage1Idx3Rng6_uid173_alignmentShifter_uid71_fpAddTest(BITSELECT,172)@4 + rightShiftStage1Idx3Rng6_uid173_alignmentShifter_uid71_fpAddTest_b <= rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q(26 downto 6); + + -- rightShiftStage1Idx3_uid174_alignmentShifter_uid71_fpAddTest(BITJOIN,173)@4 + rightShiftStage1Idx3_uid174_alignmentShifter_uid71_fpAddTest_q <= seMsb_to6_uid172_b & rightShiftStage1Idx3Rng6_uid173_alignmentShifter_uid71_fpAddTest_b; + + -- seMsb_to4_uid169(BITSELECT,168)@4 + seMsb_to4_uid169_in <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((3 downto 1 => xMSB_uid151_alignmentShifter_uid71_fpAddTest_b(0)) & xMSB_uid151_alignmentShifter_uid71_fpAddTest_b)); + seMsb_to4_uid169_b <= STD_LOGIC_VECTOR(seMsb_to4_uid169_in(3 downto 0)); + + -- rightShiftStage1Idx2Rng4_uid170_alignmentShifter_uid71_fpAddTest(BITSELECT,169)@4 + rightShiftStage1Idx2Rng4_uid170_alignmentShifter_uid71_fpAddTest_b <= rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q(26 downto 4); + + -- rightShiftStage1Idx2_uid171_alignmentShifter_uid71_fpAddTest(BITJOIN,170)@4 + rightShiftStage1Idx2_uid171_alignmentShifter_uid71_fpAddTest_q <= seMsb_to4_uid169_b & rightShiftStage1Idx2Rng4_uid170_alignmentShifter_uid71_fpAddTest_b; + + -- seMsb_to2_uid166(BITSELECT,165)@4 + seMsb_to2_uid166_in <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((1 downto 1 => xMSB_uid151_alignmentShifter_uid71_fpAddTest_b(0)) & xMSB_uid151_alignmentShifter_uid71_fpAddTest_b)); + seMsb_to2_uid166_b <= STD_LOGIC_VECTOR(seMsb_to2_uid166_in(1 downto 0)); + + -- rightShiftStage1Idx1Rng2_uid167_alignmentShifter_uid71_fpAddTest(BITSELECT,166)@4 + rightShiftStage1Idx1Rng2_uid167_alignmentShifter_uid71_fpAddTest_b <= rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q(26 downto 2); + + -- rightShiftStage1Idx1_uid168_alignmentShifter_uid71_fpAddTest(BITJOIN,167)@4 + rightShiftStage1Idx1_uid168_alignmentShifter_uid71_fpAddTest_q <= seMsb_to2_uid166_b & rightShiftStage1Idx1Rng2_uid167_alignmentShifter_uid71_fpAddTest_b; + + -- seMsb_to24_uid161(BITSELECT,160)@4 + seMsb_to24_uid161_in <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((23 downto 1 => xMSB_uid151_alignmentShifter_uid71_fpAddTest_b(0)) & xMSB_uid151_alignmentShifter_uid71_fpAddTest_b)); + seMsb_to24_uid161_b <= STD_LOGIC_VECTOR(seMsb_to24_uid161_in(23 downto 0)); + + -- rightShiftStage0Idx3Rng24_uid162_alignmentShifter_uid71_fpAddTest(BITSELECT,161)@4 + rightShiftStage0Idx3Rng24_uid162_alignmentShifter_uid71_fpAddTest_b <= redist17_oFracBREXC2_uid70_fpAddTest_b_1_q(26 downto 24); + + -- rightShiftStage0Idx3_uid163_alignmentShifter_uid71_fpAddTest(BITJOIN,162)@4 + rightShiftStage0Idx3_uid163_alignmentShifter_uid71_fpAddTest_q <= seMsb_to24_uid161_b & rightShiftStage0Idx3Rng24_uid162_alignmentShifter_uid71_fpAddTest_b; + + -- seMsb_to16_uid158(BITSELECT,157)@4 + seMsb_to16_uid158_in <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((15 downto 1 => xMSB_uid151_alignmentShifter_uid71_fpAddTest_b(0)) & xMSB_uid151_alignmentShifter_uid71_fpAddTest_b)); + seMsb_to16_uid158_b <= STD_LOGIC_VECTOR(seMsb_to16_uid158_in(15 downto 0)); + + -- rightShiftStage0Idx2Rng16_uid159_alignmentShifter_uid71_fpAddTest(BITSELECT,158)@4 + rightShiftStage0Idx2Rng16_uid159_alignmentShifter_uid71_fpAddTest_b <= redist17_oFracBREXC2_uid70_fpAddTest_b_1_q(26 downto 16); + + -- rightShiftStage0Idx2_uid160_alignmentShifter_uid71_fpAddTest(BITJOIN,159)@4 + rightShiftStage0Idx2_uid160_alignmentShifter_uid71_fpAddTest_q <= seMsb_to16_uid158_b & rightShiftStage0Idx2Rng16_uid159_alignmentShifter_uid71_fpAddTest_b; + + -- seMsb_to8_uid155(BITSELECT,154)@4 + seMsb_to8_uid155_in <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((7 downto 1 => xMSB_uid151_alignmentShifter_uid71_fpAddTest_b(0)) & xMSB_uid151_alignmentShifter_uid71_fpAddTest_b)); + seMsb_to8_uid155_b <= STD_LOGIC_VECTOR(seMsb_to8_uid155_in(7 downto 0)); + + -- rightShiftStage0Idx1Rng8_uid156_alignmentShifter_uid71_fpAddTest(BITSELECT,155)@4 + rightShiftStage0Idx1Rng8_uid156_alignmentShifter_uid71_fpAddTest_b <= redist17_oFracBREXC2_uid70_fpAddTest_b_1_q(26 downto 8); + + -- rightShiftStage0Idx1_uid157_alignmentShifter_uid71_fpAddTest(BITJOIN,156)@4 + rightShiftStage0Idx1_uid157_alignmentShifter_uid71_fpAddTest_q <= seMsb_to8_uid155_b & rightShiftStage0Idx1Rng8_uid156_alignmentShifter_uid71_fpAddTest_b; + + -- exp_aSig_uid21_fpAddTest(BITSELECT,20)@1 + exp_aSig_uid21_fpAddTest_in <= aSig_uid16_fpAddTest_q(30 downto 0); + exp_aSig_uid21_fpAddTest_b <= exp_aSig_uid21_fpAddTest_in(30 downto 23); + + -- expAmExpB_uid60_fpAddTest(SUB,59)@1 + 1 + expAmExpB_uid60_fpAddTest_a <= STD_LOGIC_VECTOR("0" & exp_aSig_uid21_fpAddTest_b); + expAmExpB_uid60_fpAddTest_b <= STD_LOGIC_VECTOR("0" & exp_bSig_uid35_fpAddTest_b); + expAmExpB_uid60_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + expAmExpB_uid60_fpAddTest_o <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + expAmExpB_uid60_fpAddTest_o <= STD_LOGIC_VECTOR(UNSIGNED(expAmExpB_uid60_fpAddTest_a) - UNSIGNED(expAmExpB_uid60_fpAddTest_b)); + END IF; + END PROCESS; + expAmExpB_uid60_fpAddTest_q <= expAmExpB_uid60_fpAddTest_o(8 downto 0); + + -- rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select(BITSELECT,214)@2 + rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_in <= expAmExpB_uid60_fpAddTest_q(4 downto 0); + rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_b <= rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_in(4 downto 3); + rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_c <= rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_in(2 downto 1); + rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_d <= rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_in(0 downto 0); + + -- redist3_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_b_2(DELAY,222) + redist3_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_b_2 : dspba_delay + GENERIC MAP ( width => 2, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_b, xout => redist3_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_b_2_q, clk => clk, aclr => areset ); + + -- rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest(MUX,164)@4 + rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_s <= redist3_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_b_2_q; + rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_combproc: PROCESS (rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_s, redist17_oFracBREXC2_uid70_fpAddTest_b_1_q, rightShiftStage0Idx1_uid157_alignmentShifter_uid71_fpAddTest_q, rightShiftStage0Idx2_uid160_alignmentShifter_uid71_fpAddTest_q, rightShiftStage0Idx3_uid163_alignmentShifter_uid71_fpAddTest_q) + BEGIN + CASE (rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_s) IS + WHEN "00" => rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q <= redist17_oFracBREXC2_uid70_fpAddTest_b_1_q; + WHEN "01" => rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q <= rightShiftStage0Idx1_uid157_alignmentShifter_uid71_fpAddTest_q; + WHEN "10" => rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q <= rightShiftStage0Idx2_uid160_alignmentShifter_uid71_fpAddTest_q; + WHEN "11" => rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q <= rightShiftStage0Idx3_uid163_alignmentShifter_uid71_fpAddTest_q; + WHEN OTHERS => rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- redist4_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_c_2(DELAY,223) + redist4_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_c_2 : dspba_delay + GENERIC MAP ( width => 2, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_c, xout => redist4_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_c_2_q, clk => clk, aclr => areset ); + + -- rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest(MUX,175)@4 + rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_s <= redist4_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_c_2_q; + rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_combproc: PROCESS (rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_s, rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q, rightShiftStage1Idx1_uid168_alignmentShifter_uid71_fpAddTest_q, rightShiftStage1Idx2_uid171_alignmentShifter_uid71_fpAddTest_q, rightShiftStage1Idx3_uid174_alignmentShifter_uid71_fpAddTest_q) + BEGIN + CASE (rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_s) IS + WHEN "00" => rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_q <= rightShiftStage0_uid165_alignmentShifter_uid71_fpAddTest_q; + WHEN "01" => rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_q <= rightShiftStage1Idx1_uid168_alignmentShifter_uid71_fpAddTest_q; + WHEN "10" => rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_q <= rightShiftStage1Idx2_uid171_alignmentShifter_uid71_fpAddTest_q; + WHEN "11" => rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_q <= rightShiftStage1Idx3_uid174_alignmentShifter_uid71_fpAddTest_q; + WHEN OTHERS => rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- redist5_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_d_2(DELAY,224) + redist5_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_d_2 : dspba_delay + GENERIC MAP ( width => 1, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_d, xout => redist5_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_d_2_q, clk => clk, aclr => areset ); + + -- rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest(MUX,179)@4 + 1 + rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest_s <= redist5_rightShiftStageSel4Dto3_uid164_alignmentShifter_uid71_fpAddTest_merged_bit_select_d_2_q; + rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest_q <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + CASE (rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest_s) IS + WHEN "0" => rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest_q <= rightShiftStage1_uid176_alignmentShifter_uid71_fpAddTest_q; + WHEN "1" => rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest_q <= rightShiftStage2Idx1_uid178_alignmentShifter_uid71_fpAddTest_q; + WHEN OTHERS => rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest_q <= (others => '0'); + END CASE; + END IF; + END PROCESS; + + -- shiftedOut_uid154_alignmentShifter_uid71_fpAddTest(COMPARE,153)@2 + 1 + shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_a <= STD_LOGIC_VECTOR("00" & expAmExpB_uid60_fpAddTest_q); + shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_b <= STD_LOGIC_VECTOR("000000" & cAmA_uid76_fpAddTest_q); + shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_o <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_o <= STD_LOGIC_VECTOR(UNSIGNED(shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_a) - UNSIGNED(shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_b)); + END IF; + END PROCESS; + shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_n(0) <= not (shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_o(10)); + + -- redist6_shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_n_3(DELAY,225) + redist6_shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_n_3 : dspba_delay + GENERIC MAP ( width => 1, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_n, xout => redist6_shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_n_3_q, clk => clk, aclr => areset ); + + -- r_uid183_alignmentShifter_uid71_fpAddTest(MUX,182)@5 + 1 + r_uid183_alignmentShifter_uid71_fpAddTest_s <= redist6_shiftedOut_uid154_alignmentShifter_uid71_fpAddTest_n_3_q; + r_uid183_alignmentShifter_uid71_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + r_uid183_alignmentShifter_uid71_fpAddTest_q <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + CASE (r_uid183_alignmentShifter_uid71_fpAddTest_s) IS + WHEN "0" => r_uid183_alignmentShifter_uid71_fpAddTest_q <= rightShiftStage2_uid180_alignmentShifter_uid71_fpAddTest_q; + WHEN "1" => r_uid183_alignmentShifter_uid71_fpAddTest_q <= shiftOutConstant_to27_uid181_b; + WHEN OTHERS => r_uid183_alignmentShifter_uid71_fpAddTest_q <= (others => '0'); + END CASE; + END IF; + END PROCESS; + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_notEnable(LOGICAL,265) + redist35_frac_aSig_uid22_fpAddTest_b_5_notEnable_q <= STD_LOGIC_VECTOR(not (VCC_q)); + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_nor(LOGICAL,266) + redist35_frac_aSig_uid22_fpAddTest_b_5_nor_q <= not (redist35_frac_aSig_uid22_fpAddTest_b_5_notEnable_q or redist35_frac_aSig_uid22_fpAddTest_b_5_sticky_ena_q); + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_mem_last(CONSTANT,262) + redist35_frac_aSig_uid22_fpAddTest_b_5_mem_last_q <= "01"; + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_cmp(LOGICAL,263) + redist35_frac_aSig_uid22_fpAddTest_b_5_cmp_q <= "1" WHEN redist35_frac_aSig_uid22_fpAddTest_b_5_mem_last_q = redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_q ELSE "0"; + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_cmpReg(REG,264) + redist35_frac_aSig_uid22_fpAddTest_b_5_cmpReg_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + redist35_frac_aSig_uid22_fpAddTest_b_5_cmpReg_q <= "0"; + ELSIF (clk'EVENT AND clk = '1') THEN + redist35_frac_aSig_uid22_fpAddTest_b_5_cmpReg_q <= STD_LOGIC_VECTOR(redist35_frac_aSig_uid22_fpAddTest_b_5_cmp_q); + END IF; + END PROCESS; + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_sticky_ena(REG,267) + redist35_frac_aSig_uid22_fpAddTest_b_5_sticky_ena_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + redist35_frac_aSig_uid22_fpAddTest_b_5_sticky_ena_q <= "0"; + ELSIF (clk'EVENT AND clk = '1') THEN + IF (redist35_frac_aSig_uid22_fpAddTest_b_5_nor_q = "1") THEN + redist35_frac_aSig_uid22_fpAddTest_b_5_sticky_ena_q <= STD_LOGIC_VECTOR(redist35_frac_aSig_uid22_fpAddTest_b_5_cmpReg_q); + END IF; + END IF; + END PROCESS; + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_enaAnd(LOGICAL,268) + redist35_frac_aSig_uid22_fpAddTest_b_5_enaAnd_q <= redist35_frac_aSig_uid22_fpAddTest_b_5_sticky_ena_q and VCC_q; + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt(COUNTER,260) + -- low=0, high=2, step=1, init=0 + redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_i <= TO_UNSIGNED(0, 2); + redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_eq <= '0'; + ELSIF (clk'EVENT AND clk = '1') THEN + IF (redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_i = TO_UNSIGNED(1, 2)) THEN + redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_eq <= '1'; + ELSE + redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_eq <= '0'; + END IF; + IF (redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_eq = '1') THEN + redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_i <= redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_i + 2; + ELSE + redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_i <= redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_i + 1; + END IF; + END IF; + END PROCESS; + redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_q <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR(RESIZE(redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_i, 2))); + + -- frac_aSig_uid22_fpAddTest(BITSELECT,21)@1 + frac_aSig_uid22_fpAddTest_in <= aSig_uid16_fpAddTest_q(22 downto 0); + frac_aSig_uid22_fpAddTest_b <= frac_aSig_uid22_fpAddTest_in(22 downto 0); + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_wraddr(REG,261) + redist35_frac_aSig_uid22_fpAddTest_b_5_wraddr_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + redist35_frac_aSig_uid22_fpAddTest_b_5_wraddr_q <= "10"; + ELSIF (clk'EVENT AND clk = '1') THEN + redist35_frac_aSig_uid22_fpAddTest_b_5_wraddr_q <= STD_LOGIC_VECTOR(redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_q); + END IF; + END PROCESS; + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_mem(DUALMEM,259) + redist35_frac_aSig_uid22_fpAddTest_b_5_mem_ia <= STD_LOGIC_VECTOR(frac_aSig_uid22_fpAddTest_b); + redist35_frac_aSig_uid22_fpAddTest_b_5_mem_aa <= redist35_frac_aSig_uid22_fpAddTest_b_5_wraddr_q; + redist35_frac_aSig_uid22_fpAddTest_b_5_mem_ab <= redist35_frac_aSig_uid22_fpAddTest_b_5_rdcnt_q; + redist35_frac_aSig_uid22_fpAddTest_b_5_mem_reset0 <= areset; + redist35_frac_aSig_uid22_fpAddTest_b_5_mem_dmem : altera_syncram + GENERIC MAP ( + ram_block_type => "MLAB", + operation_mode => "DUAL_PORT", + width_a => 23, + widthad_a => 2, + numwords_a => 3, + width_b => 23, + widthad_b => 2, + numwords_b => 3, + lpm_type => "altera_syncram", + width_byteena_a => 1, + address_reg_b => "CLOCK0", + indata_reg_b => "CLOCK0", + rdcontrol_reg_b => "CLOCK0", + byteena_reg_b => "CLOCK0", + outdata_reg_b => "CLOCK1", + outdata_aclr_b => "CLEAR1", + clock_enable_input_a => "NORMAL", + clock_enable_input_b => "NORMAL", + clock_enable_output_b => "NORMAL", + read_during_write_mode_mixed_ports => "DONT_CARE", + power_up_uninitialized => "TRUE", + intended_device_family => "Cyclone V" + ) + PORT MAP ( + clocken1 => redist35_frac_aSig_uid22_fpAddTest_b_5_enaAnd_q(0), + clocken0 => VCC_q(0), + clock0 => clk, + aclr1 => redist35_frac_aSig_uid22_fpAddTest_b_5_mem_reset0, + clock1 => clk, + address_a => redist35_frac_aSig_uid22_fpAddTest_b_5_mem_aa, + data_a => redist35_frac_aSig_uid22_fpAddTest_b_5_mem_ia, + wren_a => VCC_q(0), + address_b => redist35_frac_aSig_uid22_fpAddTest_b_5_mem_ab, + q_b => redist35_frac_aSig_uid22_fpAddTest_b_5_mem_iq + ); + redist35_frac_aSig_uid22_fpAddTest_b_5_mem_q <= redist35_frac_aSig_uid22_fpAddTest_b_5_mem_iq(22 downto 0); + + -- redist35_frac_aSig_uid22_fpAddTest_b_5_outputreg(DELAY,258) + redist35_frac_aSig_uid22_fpAddTest_b_5_outputreg : dspba_delay + GENERIC MAP ( width => 23, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => redist35_frac_aSig_uid22_fpAddTest_b_5_mem_q, xout => redist35_frac_aSig_uid22_fpAddTest_b_5_outputreg_q, clk => clk, aclr => areset ); + + -- oFracA_uid64_fpAddTest(BITJOIN,63)@6 + oFracA_uid64_fpAddTest_q <= VCC_q & redist35_frac_aSig_uid22_fpAddTest_b_5_outputreg_q; + + -- oFracAE_uid65_fpAddTest(BITJOIN,64)@6 + oFracAE_uid65_fpAddTest_q <= GND_q & oFracA_uid64_fpAddTest_q & GND_q & GND_q; + + -- fracAddResult_uid72_fpAddTest(ADD,71)@6 + fracAddResult_uid72_fpAddTest_a <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((27 downto 27 => oFracAE_uid65_fpAddTest_q(26)) & oFracAE_uid65_fpAddTest_q)); + fracAddResult_uid72_fpAddTest_b <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((27 downto 27 => r_uid183_alignmentShifter_uid71_fpAddTest_q(26)) & r_uid183_alignmentShifter_uid71_fpAddTest_q)); + fracAddResult_uid72_fpAddTest_o <= STD_LOGIC_VECTOR(SIGNED(fracAddResult_uid72_fpAddTest_a) + SIGNED(fracAddResult_uid72_fpAddTest_b)); + fracAddResult_uid72_fpAddTest_q <= fracAddResult_uid72_fpAddTest_o(27 downto 0); + + -- fracAddResultNoSignExt_uid73_fpAddTest(BITSELECT,72)@6 + fracAddResultNoSignExt_uid73_fpAddTest_in <= fracAddResult_uid72_fpAddTest_q(26 downto 0); + fracAddResultNoSignExt_uid73_fpAddTest_b <= fracAddResultNoSignExt_uid73_fpAddTest_in(26 downto 0); + + -- redist15_fracAddResultNoSignExt_uid73_fpAddTest_b_1(DELAY,234) + redist15_fracAddResultNoSignExt_uid73_fpAddTest_b_1 : dspba_delay + GENERIC MAP ( width => 27, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracAddResultNoSignExt_uid73_fpAddTest_b, xout => redist15_fracAddResultNoSignExt_uid73_fpAddTest_b_1_q, clk => clk, aclr => areset ); + + -- rVStage_uid121_lzCountVal_uid74_fpAddTest(BITSELECT,120)@7 + rVStage_uid121_lzCountVal_uid74_fpAddTest_b <= redist15_fracAddResultNoSignExt_uid73_fpAddTest_b_1_q(26 downto 11); + + -- vCount_uid122_lzCountVal_uid74_fpAddTest(LOGICAL,121)@7 + vCount_uid122_lzCountVal_uid74_fpAddTest_q <= "1" WHEN rVStage_uid121_lzCountVal_uid74_fpAddTest_b = zs_uid120_lzCountVal_uid74_fpAddTest_q ELSE "0"; + + -- redist11_vCount_uid122_lzCountVal_uid74_fpAddTest_q_3(DELAY,230) + redist11_vCount_uid122_lzCountVal_uid74_fpAddTest_q_3 : dspba_delay + GENERIC MAP ( width => 1, depth => 3, reset_kind => "ASYNC" ) + PORT MAP ( xin => vCount_uid122_lzCountVal_uid74_fpAddTest_q, xout => redist11_vCount_uid122_lzCountVal_uid74_fpAddTest_q_3_q, clk => clk, aclr => areset ); + + -- vStage_uid124_lzCountVal_uid74_fpAddTest(BITSELECT,123)@7 + vStage_uid124_lzCountVal_uid74_fpAddTest_in <= redist15_fracAddResultNoSignExt_uid73_fpAddTest_b_1_q(10 downto 0); + vStage_uid124_lzCountVal_uid74_fpAddTest_b <= vStage_uid124_lzCountVal_uid74_fpAddTest_in(10 downto 0); + + -- mO_uid123_lzCountVal_uid74_fpAddTest(CONSTANT,122) + mO_uid123_lzCountVal_uid74_fpAddTest_q <= "11111"; + + -- cStage_uid125_lzCountVal_uid74_fpAddTest(BITJOIN,124)@7 + cStage_uid125_lzCountVal_uid74_fpAddTest_q <= vStage_uid124_lzCountVal_uid74_fpAddTest_b & mO_uid123_lzCountVal_uid74_fpAddTest_q; + + -- vStagei_uid127_lzCountVal_uid74_fpAddTest(MUX,126)@7 + 1 + vStagei_uid127_lzCountVal_uid74_fpAddTest_s <= vCount_uid122_lzCountVal_uid74_fpAddTest_q; + vStagei_uid127_lzCountVal_uid74_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + vStagei_uid127_lzCountVal_uid74_fpAddTest_q <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + CASE (vStagei_uid127_lzCountVal_uid74_fpAddTest_s) IS + WHEN "0" => vStagei_uid127_lzCountVal_uid74_fpAddTest_q <= rVStage_uid121_lzCountVal_uid74_fpAddTest_b; + WHEN "1" => vStagei_uid127_lzCountVal_uid74_fpAddTest_q <= cStage_uid125_lzCountVal_uid74_fpAddTest_q; + WHEN OTHERS => vStagei_uid127_lzCountVal_uid74_fpAddTest_q <= (others => '0'); + END CASE; + END IF; + END PROCESS; + + -- rVStage_uid129_lzCountVal_uid74_fpAddTest_merged_bit_select(BITSELECT,215)@8 + rVStage_uid129_lzCountVal_uid74_fpAddTest_merged_bit_select_b <= vStagei_uid127_lzCountVal_uid74_fpAddTest_q(15 downto 8); + rVStage_uid129_lzCountVal_uid74_fpAddTest_merged_bit_select_c <= vStagei_uid127_lzCountVal_uid74_fpAddTest_q(7 downto 0); + + -- vCount_uid130_lzCountVal_uid74_fpAddTest(LOGICAL,129)@8 + vCount_uid130_lzCountVal_uid74_fpAddTest_q <= "1" WHEN rVStage_uid129_lzCountVal_uid74_fpAddTest_merged_bit_select_b = cstAllZWE_uid20_fpAddTest_q ELSE "0"; + + -- redist9_vCount_uid130_lzCountVal_uid74_fpAddTest_q_2(DELAY,228) + redist9_vCount_uid130_lzCountVal_uid74_fpAddTest_q_2 : dspba_delay + GENERIC MAP ( width => 1, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => vCount_uid130_lzCountVal_uid74_fpAddTest_q, xout => redist9_vCount_uid130_lzCountVal_uid74_fpAddTest_q_2_q, clk => clk, aclr => areset ); + + -- zs_uid134_lzCountVal_uid74_fpAddTest(CONSTANT,133) + zs_uid134_lzCountVal_uid74_fpAddTest_q <= "0000"; + + -- vStagei_uid133_lzCountVal_uid74_fpAddTest(MUX,132)@8 + 1 + vStagei_uid133_lzCountVal_uid74_fpAddTest_s <= vCount_uid130_lzCountVal_uid74_fpAddTest_q; + vStagei_uid133_lzCountVal_uid74_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + vStagei_uid133_lzCountVal_uid74_fpAddTest_q <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + CASE (vStagei_uid133_lzCountVal_uid74_fpAddTest_s) IS + WHEN "0" => vStagei_uid133_lzCountVal_uid74_fpAddTest_q <= rVStage_uid129_lzCountVal_uid74_fpAddTest_merged_bit_select_b; + WHEN "1" => vStagei_uid133_lzCountVal_uid74_fpAddTest_q <= rVStage_uid129_lzCountVal_uid74_fpAddTest_merged_bit_select_c; + WHEN OTHERS => vStagei_uid133_lzCountVal_uid74_fpAddTest_q <= (others => '0'); + END CASE; + END IF; + END PROCESS; + + -- rVStage_uid135_lzCountVal_uid74_fpAddTest_merged_bit_select(BITSELECT,216)@9 + rVStage_uid135_lzCountVal_uid74_fpAddTest_merged_bit_select_b <= vStagei_uid133_lzCountVal_uid74_fpAddTest_q(7 downto 4); + rVStage_uid135_lzCountVal_uid74_fpAddTest_merged_bit_select_c <= vStagei_uid133_lzCountVal_uid74_fpAddTest_q(3 downto 0); + + -- vCount_uid136_lzCountVal_uid74_fpAddTest(LOGICAL,135)@9 + vCount_uid136_lzCountVal_uid74_fpAddTest_q <= "1" WHEN rVStage_uid135_lzCountVal_uid74_fpAddTest_merged_bit_select_b = zs_uid134_lzCountVal_uid74_fpAddTest_q ELSE "0"; + + -- redist8_vCount_uid136_lzCountVal_uid74_fpAddTest_q_1(DELAY,227) + redist8_vCount_uid136_lzCountVal_uid74_fpAddTest_q_1 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => vCount_uid136_lzCountVal_uid74_fpAddTest_q, xout => redist8_vCount_uid136_lzCountVal_uid74_fpAddTest_q_1_q, clk => clk, aclr => areset ); + + -- zs_uid140_lzCountVal_uid74_fpAddTest(CONSTANT,139) + zs_uid140_lzCountVal_uid74_fpAddTest_q <= "00"; + + -- vStagei_uid139_lzCountVal_uid74_fpAddTest(MUX,138)@9 + vStagei_uid139_lzCountVal_uid74_fpAddTest_s <= vCount_uid136_lzCountVal_uid74_fpAddTest_q; + vStagei_uid139_lzCountVal_uid74_fpAddTest_combproc: PROCESS (vStagei_uid139_lzCountVal_uid74_fpAddTest_s, rVStage_uid135_lzCountVal_uid74_fpAddTest_merged_bit_select_b, rVStage_uid135_lzCountVal_uid74_fpAddTest_merged_bit_select_c) + BEGIN + CASE (vStagei_uid139_lzCountVal_uid74_fpAddTest_s) IS + WHEN "0" => vStagei_uid139_lzCountVal_uid74_fpAddTest_q <= rVStage_uid135_lzCountVal_uid74_fpAddTest_merged_bit_select_b; + WHEN "1" => vStagei_uid139_lzCountVal_uid74_fpAddTest_q <= rVStage_uid135_lzCountVal_uid74_fpAddTest_merged_bit_select_c; + WHEN OTHERS => vStagei_uid139_lzCountVal_uid74_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select(BITSELECT,217)@9 + rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_b <= vStagei_uid139_lzCountVal_uid74_fpAddTest_q(3 downto 2); + rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_c <= vStagei_uid139_lzCountVal_uid74_fpAddTest_q(1 downto 0); + + -- vCount_uid142_lzCountVal_uid74_fpAddTest(LOGICAL,141)@9 + 1 + vCount_uid142_lzCountVal_uid74_fpAddTest_qi <= "1" WHEN rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_b = zs_uid140_lzCountVal_uid74_fpAddTest_q ELSE "0"; + vCount_uid142_lzCountVal_uid74_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => vCount_uid142_lzCountVal_uid74_fpAddTest_qi, xout => vCount_uid142_lzCountVal_uid74_fpAddTest_q, clk => clk, aclr => areset ); + + -- redist2_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_c_1(DELAY,221) + redist2_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_c_1 : dspba_delay + GENERIC MAP ( width => 2, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_c, xout => redist2_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_c_1_q, clk => clk, aclr => areset ); + + -- redist1_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_b_1(DELAY,220) + redist1_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_b_1 : dspba_delay + GENERIC MAP ( width => 2, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_b, xout => redist1_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_b_1_q, clk => clk, aclr => areset ); + + -- vStagei_uid145_lzCountVal_uid74_fpAddTest(MUX,144)@10 + vStagei_uid145_lzCountVal_uid74_fpAddTest_s <= vCount_uid142_lzCountVal_uid74_fpAddTest_q; + vStagei_uid145_lzCountVal_uid74_fpAddTest_combproc: PROCESS (vStagei_uid145_lzCountVal_uid74_fpAddTest_s, redist1_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_b_1_q, redist2_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_c_1_q) + BEGIN + CASE (vStagei_uid145_lzCountVal_uid74_fpAddTest_s) IS + WHEN "0" => vStagei_uid145_lzCountVal_uid74_fpAddTest_q <= redist1_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_b_1_q; + WHEN "1" => vStagei_uid145_lzCountVal_uid74_fpAddTest_q <= redist2_rVStage_uid141_lzCountVal_uid74_fpAddTest_merged_bit_select_c_1_q; + WHEN OTHERS => vStagei_uid145_lzCountVal_uid74_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- rVStage_uid147_lzCountVal_uid74_fpAddTest(BITSELECT,146)@10 + rVStage_uid147_lzCountVal_uid74_fpAddTest_b <= vStagei_uid145_lzCountVal_uid74_fpAddTest_q(1 downto 1); + + -- vCount_uid148_lzCountVal_uid74_fpAddTest(LOGICAL,147)@10 + vCount_uid148_lzCountVal_uid74_fpAddTest_q <= "1" WHEN rVStage_uid147_lzCountVal_uid74_fpAddTest_b = GND_q ELSE "0"; + + -- r_uid149_lzCountVal_uid74_fpAddTest(BITJOIN,148)@10 + r_uid149_lzCountVal_uid74_fpAddTest_q <= redist11_vCount_uid122_lzCountVal_uid74_fpAddTest_q_3_q & redist9_vCount_uid130_lzCountVal_uid74_fpAddTest_q_2_q & redist8_vCount_uid136_lzCountVal_uid74_fpAddTest_q_1_q & vCount_uid142_lzCountVal_uid74_fpAddTest_q & vCount_uid148_lzCountVal_uid74_fpAddTest_q; + + -- aMinusA_uid77_fpAddTest(LOGICAL,76)@10 + 1 + aMinusA_uid77_fpAddTest_qi <= "1" WHEN r_uid149_lzCountVal_uid74_fpAddTest_q = cAmA_uid76_fpAddTest_q ELSE "0"; + aMinusA_uid77_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => aMinusA_uid77_fpAddTest_qi, xout => aMinusA_uid77_fpAddTest_q, clk => clk, aclr => areset ); + + -- invAMinusA_uid99_fpAddTest(LOGICAL,98)@11 + invAMinusA_uid99_fpAddTest_q <= not (aMinusA_uid77_fpAddTest_q); + + -- redist23_sigA_uid50_fpAddTest_b_10(DELAY,242) + redist23_sigA_uid50_fpAddTest_b_10 : dspba_delay + GENERIC MAP ( width => 1, depth => 9, reset_kind => "ASYNC" ) + PORT MAP ( xin => redist22_sigA_uid50_fpAddTest_b_1_q, xout => redist23_sigA_uid50_fpAddTest_b_10_q, clk => clk, aclr => areset ); + + -- cstAllOWE_uid18_fpAddTest(CONSTANT,17) + cstAllOWE_uid18_fpAddTest_q <= "11111111"; + + -- expXIsMax_uid38_fpAddTest(LOGICAL,37)@1 + 1 + expXIsMax_uid38_fpAddTest_qi <= "1" WHEN exp_bSig_uid35_fpAddTest_b = cstAllOWE_uid18_fpAddTest_q ELSE "0"; + expXIsMax_uid38_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => expXIsMax_uid38_fpAddTest_qi, xout => expXIsMax_uid38_fpAddTest_q, clk => clk, aclr => areset ); + + -- redist28_expXIsMax_uid38_fpAddTest_q_9(DELAY,247) + redist28_expXIsMax_uid38_fpAddTest_q_9 : dspba_delay + GENERIC MAP ( width => 1, depth => 8, reset_kind => "ASYNC" ) + PORT MAP ( xin => expXIsMax_uid38_fpAddTest_q, xout => redist28_expXIsMax_uid38_fpAddTest_q_9_q, clk => clk, aclr => areset ); + + -- invExpXIsMax_uid43_fpAddTest(LOGICAL,42)@10 + invExpXIsMax_uid43_fpAddTest_q <= not (redist28_expXIsMax_uid38_fpAddTest_q_9_q); + + -- redist24_InvExpXIsZero_uid44_fpAddTest_q_8(DELAY,243) + redist24_InvExpXIsZero_uid44_fpAddTest_q_8 : dspba_delay + GENERIC MAP ( width => 1, depth => 8, reset_kind => "ASYNC" ) + PORT MAP ( xin => InvExpXIsZero_uid44_fpAddTest_q, xout => redist24_InvExpXIsZero_uid44_fpAddTest_q_8_q, clk => clk, aclr => areset ); + + -- excR_bSig_uid45_fpAddTest(LOGICAL,44)@10 + 1 + excR_bSig_uid45_fpAddTest_qi <= redist24_InvExpXIsZero_uid44_fpAddTest_q_8_q and invExpXIsMax_uid43_fpAddTest_q; + excR_bSig_uid45_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excR_bSig_uid45_fpAddTest_qi, xout => excR_bSig_uid45_fpAddTest_q, clk => clk, aclr => areset ); + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_notEnable(LOGICAL,276) + redist36_exp_aSig_uid21_fpAddTest_b_8_notEnable_q <= STD_LOGIC_VECTOR(not (VCC_q)); + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_nor(LOGICAL,277) + redist36_exp_aSig_uid21_fpAddTest_b_8_nor_q <= not (redist36_exp_aSig_uid21_fpAddTest_b_8_notEnable_q or redist36_exp_aSig_uid21_fpAddTest_b_8_sticky_ena_q); + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_mem_last(CONSTANT,273) + redist36_exp_aSig_uid21_fpAddTest_b_8_mem_last_q <= "0100"; + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_cmp(LOGICAL,274) + redist36_exp_aSig_uid21_fpAddTest_b_8_cmp_b <= STD_LOGIC_VECTOR("0" & redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_q); + redist36_exp_aSig_uid21_fpAddTest_b_8_cmp_q <= "1" WHEN redist36_exp_aSig_uid21_fpAddTest_b_8_mem_last_q = redist36_exp_aSig_uid21_fpAddTest_b_8_cmp_b ELSE "0"; + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_cmpReg(REG,275) + redist36_exp_aSig_uid21_fpAddTest_b_8_cmpReg_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + redist36_exp_aSig_uid21_fpAddTest_b_8_cmpReg_q <= "0"; + ELSIF (clk'EVENT AND clk = '1') THEN + redist36_exp_aSig_uid21_fpAddTest_b_8_cmpReg_q <= STD_LOGIC_VECTOR(redist36_exp_aSig_uid21_fpAddTest_b_8_cmp_q); + END IF; + END PROCESS; + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_sticky_ena(REG,278) + redist36_exp_aSig_uid21_fpAddTest_b_8_sticky_ena_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + redist36_exp_aSig_uid21_fpAddTest_b_8_sticky_ena_q <= "0"; + ELSIF (clk'EVENT AND clk = '1') THEN + IF (redist36_exp_aSig_uid21_fpAddTest_b_8_nor_q = "1") THEN + redist36_exp_aSig_uid21_fpAddTest_b_8_sticky_ena_q <= STD_LOGIC_VECTOR(redist36_exp_aSig_uid21_fpAddTest_b_8_cmpReg_q); + END IF; + END IF; + END PROCESS; + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_enaAnd(LOGICAL,279) + redist36_exp_aSig_uid21_fpAddTest_b_8_enaAnd_q <= redist36_exp_aSig_uid21_fpAddTest_b_8_sticky_ena_q and VCC_q; + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt(COUNTER,271) + -- low=0, high=5, step=1, init=0 + redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_i <= TO_UNSIGNED(0, 3); + redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_eq <= '0'; + ELSIF (clk'EVENT AND clk = '1') THEN + IF (redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_i = TO_UNSIGNED(4, 3)) THEN + redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_eq <= '1'; + ELSE + redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_eq <= '0'; + END IF; + IF (redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_eq = '1') THEN + redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_i <= redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_i + 3; + ELSE + redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_i <= redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_i + 1; + END IF; + END IF; + END PROCESS; + redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_q <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR(RESIZE(redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_i, 3))); + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_wraddr(REG,272) + redist36_exp_aSig_uid21_fpAddTest_b_8_wraddr_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + redist36_exp_aSig_uid21_fpAddTest_b_8_wraddr_q <= "101"; + ELSIF (clk'EVENT AND clk = '1') THEN + redist36_exp_aSig_uid21_fpAddTest_b_8_wraddr_q <= STD_LOGIC_VECTOR(redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_q); + END IF; + END PROCESS; + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_mem(DUALMEM,270) + redist36_exp_aSig_uid21_fpAddTest_b_8_mem_ia <= STD_LOGIC_VECTOR(exp_aSig_uid21_fpAddTest_b); + redist36_exp_aSig_uid21_fpAddTest_b_8_mem_aa <= redist36_exp_aSig_uid21_fpAddTest_b_8_wraddr_q; + redist36_exp_aSig_uid21_fpAddTest_b_8_mem_ab <= redist36_exp_aSig_uid21_fpAddTest_b_8_rdcnt_q; + redist36_exp_aSig_uid21_fpAddTest_b_8_mem_reset0 <= areset; + redist36_exp_aSig_uid21_fpAddTest_b_8_mem_dmem : altera_syncram + GENERIC MAP ( + ram_block_type => "MLAB", + operation_mode => "DUAL_PORT", + width_a => 8, + widthad_a => 3, + numwords_a => 6, + width_b => 8, + widthad_b => 3, + numwords_b => 6, + lpm_type => "altera_syncram", + width_byteena_a => 1, + address_reg_b => "CLOCK0", + indata_reg_b => "CLOCK0", + rdcontrol_reg_b => "CLOCK0", + byteena_reg_b => "CLOCK0", + outdata_reg_b => "CLOCK1", + outdata_aclr_b => "CLEAR1", + clock_enable_input_a => "NORMAL", + clock_enable_input_b => "NORMAL", + clock_enable_output_b => "NORMAL", + read_during_write_mode_mixed_ports => "DONT_CARE", + power_up_uninitialized => "TRUE", + intended_device_family => "Cyclone V" + ) + PORT MAP ( + clocken1 => redist36_exp_aSig_uid21_fpAddTest_b_8_enaAnd_q(0), + clocken0 => VCC_q(0), + clock0 => clk, + aclr1 => redist36_exp_aSig_uid21_fpAddTest_b_8_mem_reset0, + clock1 => clk, + address_a => redist36_exp_aSig_uid21_fpAddTest_b_8_mem_aa, + data_a => redist36_exp_aSig_uid21_fpAddTest_b_8_mem_ia, + wren_a => VCC_q(0), + address_b => redist36_exp_aSig_uid21_fpAddTest_b_8_mem_ab, + q_b => redist36_exp_aSig_uid21_fpAddTest_b_8_mem_iq + ); + redist36_exp_aSig_uid21_fpAddTest_b_8_mem_q <= redist36_exp_aSig_uid21_fpAddTest_b_8_mem_iq(7 downto 0); + + -- redist36_exp_aSig_uid21_fpAddTest_b_8_outputreg(DELAY,269) + redist36_exp_aSig_uid21_fpAddTest_b_8_outputreg : dspba_delay + GENERIC MAP ( width => 8, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => redist36_exp_aSig_uid21_fpAddTest_b_8_mem_q, xout => redist36_exp_aSig_uid21_fpAddTest_b_8_outputreg_q, clk => clk, aclr => areset ); + + -- expXIsMax_uid24_fpAddTest(LOGICAL,23)@9 + 1 + expXIsMax_uid24_fpAddTest_qi <= "1" WHEN redist36_exp_aSig_uid21_fpAddTest_b_8_outputreg_q = cstAllOWE_uid18_fpAddTest_q ELSE "0"; + expXIsMax_uid24_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => expXIsMax_uid24_fpAddTest_qi, xout => expXIsMax_uid24_fpAddTest_q, clk => clk, aclr => areset ); + + -- invExpXIsMax_uid29_fpAddTest(LOGICAL,28)@10 + invExpXIsMax_uid29_fpAddTest_q <= not (expXIsMax_uid24_fpAddTest_q); + + -- excZ_aSig_uid16_uid23_fpAddTest(LOGICAL,22)@9 + 1 + excZ_aSig_uid16_uid23_fpAddTest_qi <= "1" WHEN redist36_exp_aSig_uid21_fpAddTest_b_8_outputreg_q = cstAllZWE_uid20_fpAddTest_q ELSE "0"; + excZ_aSig_uid16_uid23_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excZ_aSig_uid16_uid23_fpAddTest_qi, xout => excZ_aSig_uid16_uid23_fpAddTest_q, clk => clk, aclr => areset ); + + -- InvExpXIsZero_uid30_fpAddTest(LOGICAL,29)@10 + InvExpXIsZero_uid30_fpAddTest_q <= not (excZ_aSig_uid16_uid23_fpAddTest_q); + + -- excR_aSig_uid31_fpAddTest(LOGICAL,30)@10 + 1 + excR_aSig_uid31_fpAddTest_qi <= InvExpXIsZero_uid30_fpAddTest_q and invExpXIsMax_uid29_fpAddTest_q; + excR_aSig_uid31_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excR_aSig_uid31_fpAddTest_qi, xout => excR_aSig_uid31_fpAddTest_q, clk => clk, aclr => areset ); + + -- signRReg_uid100_fpAddTest(LOGICAL,99)@11 + signRReg_uid100_fpAddTest_q <= excR_aSig_uid31_fpAddTest_q and excR_bSig_uid45_fpAddTest_q and redist23_sigA_uid50_fpAddTest_b_10_q and invAMinusA_uid99_fpAddTest_q; + + -- redist21_sigB_uid51_fpAddTest_b_10(DELAY,240) + redist21_sigB_uid51_fpAddTest_b_10 : dspba_delay + GENERIC MAP ( width => 1, depth => 9, reset_kind => "ASYNC" ) + PORT MAP ( xin => redist20_sigB_uid51_fpAddTest_b_1_q, xout => redist21_sigB_uid51_fpAddTest_b_10_q, clk => clk, aclr => areset ); + + -- redist29_excZ_bSig_uid17_uid37_fpAddTest_q_10(DELAY,248) + redist29_excZ_bSig_uid17_uid37_fpAddTest_q_10 : dspba_delay + GENERIC MAP ( width => 1, depth => 9, reset_kind => "ASYNC" ) + PORT MAP ( xin => excZ_bSig_uid17_uid37_fpAddTest_q, xout => redist29_excZ_bSig_uid17_uid37_fpAddTest_q_10_q, clk => clk, aclr => areset ); + + -- redist34_excZ_aSig_uid16_uid23_fpAddTest_q_2(DELAY,253) + redist34_excZ_aSig_uid16_uid23_fpAddTest_q_2 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excZ_aSig_uid16_uid23_fpAddTest_q, xout => redist34_excZ_aSig_uid16_uid23_fpAddTest_q_2_q, clk => clk, aclr => areset ); + + -- excAZBZSigASigB_uid104_fpAddTest(LOGICAL,103)@11 + excAZBZSigASigB_uid104_fpAddTest_q <= redist34_excZ_aSig_uid16_uid23_fpAddTest_q_2_q and redist29_excZ_bSig_uid17_uid37_fpAddTest_q_10_q and redist23_sigA_uid50_fpAddTest_b_10_q and redist21_sigB_uid51_fpAddTest_b_10_q; + + -- excBZARSigA_uid105_fpAddTest(LOGICAL,104)@11 + excBZARSigA_uid105_fpAddTest_q <= redist29_excZ_bSig_uid17_uid37_fpAddTest_q_10_q and excR_aSig_uid31_fpAddTest_q and redist23_sigA_uid50_fpAddTest_b_10_q; + + -- signRZero_uid106_fpAddTest(LOGICAL,105)@11 + signRZero_uid106_fpAddTest_q <= excBZARSigA_uid105_fpAddTest_q or excAZBZSigASigB_uid104_fpAddTest_q; + + -- fracXIsZero_uid39_fpAddTest(LOGICAL,38)@2 + 1 + fracXIsZero_uid39_fpAddTest_qi <= "1" WHEN cstZeroWF_uid19_fpAddTest_q = redist30_frac_bSig_uid36_fpAddTest_b_1_q ELSE "0"; + fracXIsZero_uid39_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracXIsZero_uid39_fpAddTest_qi, xout => fracXIsZero_uid39_fpAddTest_q, clk => clk, aclr => areset ); + + -- redist27_fracXIsZero_uid39_fpAddTest_q_8(DELAY,246) + redist27_fracXIsZero_uid39_fpAddTest_q_8 : dspba_delay + GENERIC MAP ( width => 1, depth => 7, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracXIsZero_uid39_fpAddTest_q, xout => redist27_fracXIsZero_uid39_fpAddTest_q_8_q, clk => clk, aclr => areset ); + + -- excI_bSig_uid41_fpAddTest(LOGICAL,40)@10 + 1 + excI_bSig_uid41_fpAddTest_qi <= redist28_expXIsMax_uid38_fpAddTest_q_9_q and redist27_fracXIsZero_uid39_fpAddTest_q_8_q; + excI_bSig_uid41_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excI_bSig_uid41_fpAddTest_qi, xout => excI_bSig_uid41_fpAddTest_q, clk => clk, aclr => areset ); + + -- sigBBInf_uid101_fpAddTest(LOGICAL,100)@11 + sigBBInf_uid101_fpAddTest_q <= redist21_sigB_uid51_fpAddTest_b_10_q and excI_bSig_uid41_fpAddTest_q; + + -- fracXIsZero_uid25_fpAddTest(LOGICAL,24)@6 + 1 + fracXIsZero_uid25_fpAddTest_qi <= "1" WHEN cstZeroWF_uid19_fpAddTest_q = redist35_frac_aSig_uid22_fpAddTest_b_5_outputreg_q ELSE "0"; + fracXIsZero_uid25_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracXIsZero_uid25_fpAddTest_qi, xout => fracXIsZero_uid25_fpAddTest_q, clk => clk, aclr => areset ); + + -- redist33_fracXIsZero_uid25_fpAddTest_q_4(DELAY,252) + redist33_fracXIsZero_uid25_fpAddTest_q_4 : dspba_delay + GENERIC MAP ( width => 1, depth => 3, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracXIsZero_uid25_fpAddTest_q, xout => redist33_fracXIsZero_uid25_fpAddTest_q_4_q, clk => clk, aclr => areset ); + + -- excI_aSig_uid27_fpAddTest(LOGICAL,26)@10 + 1 + excI_aSig_uid27_fpAddTest_qi <= expXIsMax_uid24_fpAddTest_q and redist33_fracXIsZero_uid25_fpAddTest_q_4_q; + excI_aSig_uid27_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excI_aSig_uid27_fpAddTest_qi, xout => excI_aSig_uid27_fpAddTest_q, clk => clk, aclr => areset ); + + -- sigAAInf_uid102_fpAddTest(LOGICAL,101)@11 + sigAAInf_uid102_fpAddTest_q <= redist23_sigA_uid50_fpAddTest_b_10_q and excI_aSig_uid27_fpAddTest_q; + + -- signRInf_uid103_fpAddTest(LOGICAL,102)@11 + signRInf_uid103_fpAddTest_q <= sigAAInf_uid102_fpAddTest_q or sigBBInf_uid101_fpAddTest_q; + + -- signRInfRZRReg_uid107_fpAddTest(LOGICAL,106)@11 + 1 + signRInfRZRReg_uid107_fpAddTest_qi <= signRInf_uid103_fpAddTest_q or signRZero_uid106_fpAddTest_q or signRReg_uid100_fpAddTest_q; + signRInfRZRReg_uid107_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => signRInfRZRReg_uid107_fpAddTest_qi, xout => signRInfRZRReg_uid107_fpAddTest_q, clk => clk, aclr => areset ); + + -- fracXIsNotZero_uid40_fpAddTest(LOGICAL,39)@10 + fracXIsNotZero_uid40_fpAddTest_q <= not (redist27_fracXIsZero_uid39_fpAddTest_q_8_q); + + -- excN_bSig_uid42_fpAddTest(LOGICAL,41)@10 + 1 + excN_bSig_uid42_fpAddTest_qi <= redist28_expXIsMax_uid38_fpAddTest_q_9_q and fracXIsNotZero_uid40_fpAddTest_q; + excN_bSig_uid42_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excN_bSig_uid42_fpAddTest_qi, xout => excN_bSig_uid42_fpAddTest_q, clk => clk, aclr => areset ); + + -- redist25_excN_bSig_uid42_fpAddTest_q_2(DELAY,244) + redist25_excN_bSig_uid42_fpAddTest_q_2 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excN_bSig_uid42_fpAddTest_q, xout => redist25_excN_bSig_uid42_fpAddTest_q_2_q, clk => clk, aclr => areset ); + + -- fracXIsNotZero_uid26_fpAddTest(LOGICAL,25)@10 + fracXIsNotZero_uid26_fpAddTest_q <= not (redist33_fracXIsZero_uid25_fpAddTest_q_4_q); + + -- excN_aSig_uid28_fpAddTest(LOGICAL,27)@10 + 1 + excN_aSig_uid28_fpAddTest_qi <= expXIsMax_uid24_fpAddTest_q and fracXIsNotZero_uid26_fpAddTest_q; + excN_aSig_uid28_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excN_aSig_uid28_fpAddTest_qi, xout => excN_aSig_uid28_fpAddTest_q, clk => clk, aclr => areset ); + + -- redist31_excN_aSig_uid28_fpAddTest_q_2(DELAY,250) + redist31_excN_aSig_uid28_fpAddTest_q_2 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excN_aSig_uid28_fpAddTest_q, xout => redist31_excN_aSig_uid28_fpAddTest_q_2_q, clk => clk, aclr => areset ); + + -- excRNaN2_uid94_fpAddTest(LOGICAL,93)@12 + excRNaN2_uid94_fpAddTest_q <= redist31_excN_aSig_uid28_fpAddTest_q_2_q or redist25_excN_bSig_uid42_fpAddTest_q_2_q; + + -- redist19_effSub_uid52_fpAddTest_q_10(DELAY,238) + redist19_effSub_uid52_fpAddTest_q_10 : dspba_delay + GENERIC MAP ( width => 1, depth => 9, reset_kind => "ASYNC" ) + PORT MAP ( xin => redist18_effSub_uid52_fpAddTest_q_1_q, xout => redist19_effSub_uid52_fpAddTest_q_10_q, clk => clk, aclr => areset ); + + -- redist26_excI_bSig_uid41_fpAddTest_q_2(DELAY,245) + redist26_excI_bSig_uid41_fpAddTest_q_2 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excI_bSig_uid41_fpAddTest_q, xout => redist26_excI_bSig_uid41_fpAddTest_q_2_q, clk => clk, aclr => areset ); + + -- redist32_excI_aSig_uid27_fpAddTest_q_2(DELAY,251) + redist32_excI_aSig_uid27_fpAddTest_q_2 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excI_aSig_uid27_fpAddTest_q, xout => redist32_excI_aSig_uid27_fpAddTest_q_2_q, clk => clk, aclr => areset ); + + -- excAIBISub_uid95_fpAddTest(LOGICAL,94)@12 + excAIBISub_uid95_fpAddTest_q <= redist32_excI_aSig_uid27_fpAddTest_q_2_q and redist26_excI_bSig_uid41_fpAddTest_q_2_q and redist19_effSub_uid52_fpAddTest_q_10_q; + + -- excRNaN_uid96_fpAddTest(LOGICAL,95)@12 + excRNaN_uid96_fpAddTest_q <= excAIBISub_uid95_fpAddTest_q or excRNaN2_uid94_fpAddTest_q; + + -- invExcRNaN_uid108_fpAddTest(LOGICAL,107)@12 + invExcRNaN_uid108_fpAddTest_q <= not (excRNaN_uid96_fpAddTest_q); + + -- VCC(CONSTANT,1) + VCC_q <= "1"; + + -- signRPostExc_uid109_fpAddTest(LOGICAL,108)@12 + 1 + signRPostExc_uid109_fpAddTest_qi <= invExcRNaN_uid108_fpAddTest_q and signRInfRZRReg_uid107_fpAddTest_q; + signRPostExc_uid109_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => signRPostExc_uid109_fpAddTest_qi, xout => signRPostExc_uid109_fpAddTest_q, clk => clk, aclr => areset ); + + -- expInc_uid78_fpAddTest(ADD,77)@9 + 1 + expInc_uid78_fpAddTest_a <= STD_LOGIC_VECTOR("0" & redist36_exp_aSig_uid21_fpAddTest_b_8_outputreg_q); + expInc_uid78_fpAddTest_b <= STD_LOGIC_VECTOR("00000000" & VCC_q); + expInc_uid78_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + expInc_uid78_fpAddTest_o <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + expInc_uid78_fpAddTest_o <= STD_LOGIC_VECTOR(UNSIGNED(expInc_uid78_fpAddTest_a) + UNSIGNED(expInc_uid78_fpAddTest_b)); + END IF; + END PROCESS; + expInc_uid78_fpAddTest_q <= expInc_uid78_fpAddTest_o(8 downto 0); + + -- expPostNorm_uid79_fpAddTest(SUB,78)@10 + 1 + expPostNorm_uid79_fpAddTest_a <= STD_LOGIC_VECTOR("0" & expInc_uid78_fpAddTest_q); + expPostNorm_uid79_fpAddTest_b <= STD_LOGIC_VECTOR("00000" & r_uid149_lzCountVal_uid74_fpAddTest_q); + expPostNorm_uid79_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + expPostNorm_uid79_fpAddTest_o <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + expPostNorm_uid79_fpAddTest_o <= STD_LOGIC_VECTOR(UNSIGNED(expPostNorm_uid79_fpAddTest_a) - UNSIGNED(expPostNorm_uid79_fpAddTest_b)); + END IF; + END PROCESS; + expPostNorm_uid79_fpAddTest_q <= expPostNorm_uid79_fpAddTest_o(9 downto 0); + + -- leftShiftStage2Idx1Rng1_uid210_fracPostNorm_uid75_fpAddTest(BITSELECT,209)@11 + leftShiftStage2Idx1Rng1_uid210_fracPostNorm_uid75_fpAddTest_in <= leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_q(25 downto 0); + leftShiftStage2Idx1Rng1_uid210_fracPostNorm_uid75_fpAddTest_b <= leftShiftStage2Idx1Rng1_uid210_fracPostNorm_uid75_fpAddTest_in(25 downto 0); + + -- leftShiftStage2Idx1_uid211_fracPostNorm_uid75_fpAddTest(BITJOIN,210)@11 + leftShiftStage2Idx1_uid211_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage2Idx1Rng1_uid210_fracPostNorm_uid75_fpAddTest_b & GND_q; + + -- leftShiftStage1Idx3Rng6_uid205_fracPostNorm_uid75_fpAddTest(BITSELECT,204)@10 + leftShiftStage1Idx3Rng6_uid205_fracPostNorm_uid75_fpAddTest_in <= leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_q(20 downto 0); + leftShiftStage1Idx3Rng6_uid205_fracPostNorm_uid75_fpAddTest_b <= leftShiftStage1Idx3Rng6_uid205_fracPostNorm_uid75_fpAddTest_in(20 downto 0); + + -- leftShiftStage1Idx3Pad6_uid204_fracPostNorm_uid75_fpAddTest(CONSTANT,203) + leftShiftStage1Idx3Pad6_uid204_fracPostNorm_uid75_fpAddTest_q <= "000000"; + + -- leftShiftStage1Idx3_uid206_fracPostNorm_uid75_fpAddTest(BITJOIN,205)@10 + leftShiftStage1Idx3_uid206_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage1Idx3Rng6_uid205_fracPostNorm_uid75_fpAddTest_b & leftShiftStage1Idx3Pad6_uid204_fracPostNorm_uid75_fpAddTest_q; + + -- leftShiftStage1Idx2Rng4_uid202_fracPostNorm_uid75_fpAddTest(BITSELECT,201)@10 + leftShiftStage1Idx2Rng4_uid202_fracPostNorm_uid75_fpAddTest_in <= leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_q(22 downto 0); + leftShiftStage1Idx2Rng4_uid202_fracPostNorm_uid75_fpAddTest_b <= leftShiftStage1Idx2Rng4_uid202_fracPostNorm_uid75_fpAddTest_in(22 downto 0); + + -- leftShiftStage1Idx2_uid203_fracPostNorm_uid75_fpAddTest(BITJOIN,202)@10 + leftShiftStage1Idx2_uid203_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage1Idx2Rng4_uid202_fracPostNorm_uid75_fpAddTest_b & zs_uid134_lzCountVal_uid74_fpAddTest_q; + + -- leftShiftStage1Idx1Rng2_uid199_fracPostNorm_uid75_fpAddTest(BITSELECT,198)@10 + leftShiftStage1Idx1Rng2_uid199_fracPostNorm_uid75_fpAddTest_in <= leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_q(24 downto 0); + leftShiftStage1Idx1Rng2_uid199_fracPostNorm_uid75_fpAddTest_b <= leftShiftStage1Idx1Rng2_uid199_fracPostNorm_uid75_fpAddTest_in(24 downto 0); + + -- leftShiftStage1Idx1_uid200_fracPostNorm_uid75_fpAddTest(BITJOIN,199)@10 + leftShiftStage1Idx1_uid200_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage1Idx1Rng2_uid199_fracPostNorm_uid75_fpAddTest_b & zs_uid140_lzCountVal_uid74_fpAddTest_q; + + -- leftShiftStage0Idx3Rng24_uid194_fracPostNorm_uid75_fpAddTest(BITSELECT,193)@10 + leftShiftStage0Idx3Rng24_uid194_fracPostNorm_uid75_fpAddTest_in <= redist16_fracAddResultNoSignExt_uid73_fpAddTest_b_4_q(2 downto 0); + leftShiftStage0Idx3Rng24_uid194_fracPostNorm_uid75_fpAddTest_b <= leftShiftStage0Idx3Rng24_uid194_fracPostNorm_uid75_fpAddTest_in(2 downto 0); + + -- leftShiftStage0Idx3Pad24_uid193_fracPostNorm_uid75_fpAddTest(CONSTANT,192) + leftShiftStage0Idx3Pad24_uid193_fracPostNorm_uid75_fpAddTest_q <= "000000000000000000000000"; + + -- leftShiftStage0Idx3_uid195_fracPostNorm_uid75_fpAddTest(BITJOIN,194)@10 + leftShiftStage0Idx3_uid195_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage0Idx3Rng24_uid194_fracPostNorm_uid75_fpAddTest_b & leftShiftStage0Idx3Pad24_uid193_fracPostNorm_uid75_fpAddTest_q; + + -- redist10_vStage_uid124_lzCountVal_uid74_fpAddTest_b_3(DELAY,229) + redist10_vStage_uid124_lzCountVal_uid74_fpAddTest_b_3 : dspba_delay + GENERIC MAP ( width => 11, depth => 3, reset_kind => "ASYNC" ) + PORT MAP ( xin => vStage_uid124_lzCountVal_uid74_fpAddTest_b, xout => redist10_vStage_uid124_lzCountVal_uid74_fpAddTest_b_3_q, clk => clk, aclr => areset ); + + -- leftShiftStage0Idx2_uid192_fracPostNorm_uid75_fpAddTest(BITJOIN,191)@10 + leftShiftStage0Idx2_uid192_fracPostNorm_uid75_fpAddTest_q <= redist10_vStage_uid124_lzCountVal_uid74_fpAddTest_b_3_q & zs_uid120_lzCountVal_uid74_fpAddTest_q; + + -- leftShiftStage0Idx1Rng8_uid188_fracPostNorm_uid75_fpAddTest(BITSELECT,187)@10 + leftShiftStage0Idx1Rng8_uid188_fracPostNorm_uid75_fpAddTest_in <= redist16_fracAddResultNoSignExt_uid73_fpAddTest_b_4_q(18 downto 0); + leftShiftStage0Idx1Rng8_uid188_fracPostNorm_uid75_fpAddTest_b <= leftShiftStage0Idx1Rng8_uid188_fracPostNorm_uid75_fpAddTest_in(18 downto 0); + + -- leftShiftStage0Idx1_uid189_fracPostNorm_uid75_fpAddTest(BITJOIN,188)@10 + leftShiftStage0Idx1_uid189_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage0Idx1Rng8_uid188_fracPostNorm_uid75_fpAddTest_b & cstAllZWE_uid20_fpAddTest_q; + + -- redist16_fracAddResultNoSignExt_uid73_fpAddTest_b_4(DELAY,235) + redist16_fracAddResultNoSignExt_uid73_fpAddTest_b_4 : dspba_delay + GENERIC MAP ( width => 27, depth => 3, reset_kind => "ASYNC" ) + PORT MAP ( xin => redist15_fracAddResultNoSignExt_uid73_fpAddTest_b_1_q, xout => redist16_fracAddResultNoSignExt_uid73_fpAddTest_b_4_q, clk => clk, aclr => areset ); + + -- leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest(MUX,196)@10 + leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_s <= leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_b; + leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_combproc: PROCESS (leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_s, redist16_fracAddResultNoSignExt_uid73_fpAddTest_b_4_q, leftShiftStage0Idx1_uid189_fracPostNorm_uid75_fpAddTest_q, leftShiftStage0Idx2_uid192_fracPostNorm_uid75_fpAddTest_q, leftShiftStage0Idx3_uid195_fracPostNorm_uid75_fpAddTest_q) + BEGIN + CASE (leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_s) IS + WHEN "00" => leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_q <= redist16_fracAddResultNoSignExt_uid73_fpAddTest_b_4_q; + WHEN "01" => leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage0Idx1_uid189_fracPostNorm_uid75_fpAddTest_q; + WHEN "10" => leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage0Idx2_uid192_fracPostNorm_uid75_fpAddTest_q; + WHEN "11" => leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage0Idx3_uid195_fracPostNorm_uid75_fpAddTest_q; + WHEN OTHERS => leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select(BITSELECT,218)@10 + leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_b <= r_uid149_lzCountVal_uid74_fpAddTest_q(4 downto 3); + leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_c <= r_uid149_lzCountVal_uid74_fpAddTest_q(2 downto 1); + leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_d <= r_uid149_lzCountVal_uid74_fpAddTest_q(0 downto 0); + + -- leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest(MUX,207)@10 + 1 + leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_s <= leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_c; + leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_q <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + CASE (leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_s) IS + WHEN "00" => leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage0_uid197_fracPostNorm_uid75_fpAddTest_q; + WHEN "01" => leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage1Idx1_uid200_fracPostNorm_uid75_fpAddTest_q; + WHEN "10" => leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage1Idx2_uid203_fracPostNorm_uid75_fpAddTest_q; + WHEN "11" => leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage1Idx3_uid206_fracPostNorm_uid75_fpAddTest_q; + WHEN OTHERS => leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_q <= (others => '0'); + END CASE; + END IF; + END PROCESS; + + -- redist0_leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_d_1(DELAY,219) + redist0_leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_d_1 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_d, xout => redist0_leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_d_1_q, clk => clk, aclr => areset ); + + -- leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest(MUX,212)@11 + leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest_s <= redist0_leftShiftStageSel4Dto3_uid196_fracPostNorm_uid75_fpAddTest_merged_bit_select_d_1_q; + leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest_combproc: PROCESS (leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest_s, leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_q, leftShiftStage2Idx1_uid211_fracPostNorm_uid75_fpAddTest_q) + BEGIN + CASE (leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest_s) IS + WHEN "0" => leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage1_uid208_fracPostNorm_uid75_fpAddTest_q; + WHEN "1" => leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest_q <= leftShiftStage2Idx1_uid211_fracPostNorm_uid75_fpAddTest_q; + WHEN OTHERS => leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- fracPostNormRndRange_uid80_fpAddTest(BITSELECT,79)@11 + fracPostNormRndRange_uid80_fpAddTest_in <= leftShiftStage2_uid213_fracPostNorm_uid75_fpAddTest_q(25 downto 0); + fracPostNormRndRange_uid80_fpAddTest_b <= fracPostNormRndRange_uid80_fpAddTest_in(25 downto 2); + + -- expFracR_uid81_fpAddTest(BITJOIN,80)@11 + expFracR_uid81_fpAddTest_q <= expPostNorm_uid79_fpAddTest_q & fracPostNormRndRange_uid80_fpAddTest_b; + + -- expRPreExc_uid87_fpAddTest(BITSELECT,86)@11 + expRPreExc_uid87_fpAddTest_in <= expFracR_uid81_fpAddTest_q(31 downto 0); + expRPreExc_uid87_fpAddTest_b <= expRPreExc_uid87_fpAddTest_in(31 downto 24); + + -- redist13_expRPreExc_uid87_fpAddTest_b_2(DELAY,232) + redist13_expRPreExc_uid87_fpAddTest_b_2 : dspba_delay + GENERIC MAP ( width => 8, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => expRPreExc_uid87_fpAddTest_b, xout => redist13_expRPreExc_uid87_fpAddTest_b_2_q, clk => clk, aclr => areset ); + + -- wEP2AllOwE_uid82_fpAddTest(CONSTANT,81) + wEP2AllOwE_uid82_fpAddTest_q <= "0011111111"; + + -- rndExp_uid83_fpAddTest(BITSELECT,82)@11 + rndExp_uid83_fpAddTest_b <= expFracR_uid81_fpAddTest_q(33 downto 24); + + -- rOvf_uid84_fpAddTest(LOGICAL,83)@11 + 1 + rOvf_uid84_fpAddTest_qi <= "1" WHEN rndExp_uid83_fpAddTest_b = wEP2AllOwE_uid82_fpAddTest_q ELSE "0"; + rOvf_uid84_fpAddTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => rOvf_uid84_fpAddTest_qi, xout => rOvf_uid84_fpAddTest_q, clk => clk, aclr => areset ); + + -- regInputs_uid88_fpAddTest(LOGICAL,87)@11 + regInputs_uid88_fpAddTest_q <= excR_aSig_uid31_fpAddTest_q and excR_bSig_uid45_fpAddTest_q; + + -- redist12_regInputs_uid88_fpAddTest_q_1(DELAY,231) + redist12_regInputs_uid88_fpAddTest_q_1 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => regInputs_uid88_fpAddTest_q, xout => redist12_regInputs_uid88_fpAddTest_q_1_q, clk => clk, aclr => areset ); + + -- rInfOvf_uid91_fpAddTest(LOGICAL,90)@12 + rInfOvf_uid91_fpAddTest_q <= redist12_regInputs_uid88_fpAddTest_q_1_q and rOvf_uid84_fpAddTest_q; + + -- excRInfVInC_uid92_fpAddTest(BITJOIN,91)@12 + excRInfVInC_uid92_fpAddTest_q <= rInfOvf_uid91_fpAddTest_q & redist25_excN_bSig_uid42_fpAddTest_q_2_q & redist31_excN_aSig_uid28_fpAddTest_q_2_q & redist26_excI_bSig_uid41_fpAddTest_q_2_q & redist32_excI_aSig_uid27_fpAddTest_q_2_q & redist19_effSub_uid52_fpAddTest_q_10_q; + + -- excRInf_uid93_fpAddTest(LOOKUP,92)@12 + excRInf_uid93_fpAddTest_combproc: PROCESS (excRInfVInC_uid92_fpAddTest_q) + BEGIN + -- Begin reserved scope level + CASE (excRInfVInC_uid92_fpAddTest_q) IS + WHEN "000000" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "000001" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "000010" => excRInf_uid93_fpAddTest_q <= "1"; + WHEN "000011" => excRInf_uid93_fpAddTest_q <= "1"; + WHEN "000100" => excRInf_uid93_fpAddTest_q <= "1"; + WHEN "000101" => excRInf_uid93_fpAddTest_q <= "1"; + WHEN "000110" => excRInf_uid93_fpAddTest_q <= "1"; + WHEN "000111" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "001000" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "001001" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "001010" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "001011" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "001100" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "001101" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "001110" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "001111" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "010000" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "010001" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "010010" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "010011" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "010100" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "010101" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "010110" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "010111" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "011000" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "011001" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "011010" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "011011" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "011100" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "011101" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "011110" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "011111" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "100000" => excRInf_uid93_fpAddTest_q <= "1"; + WHEN "100001" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "100010" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "100011" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "100100" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "100101" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "100110" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "100111" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "101000" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "101001" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "101010" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "101011" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "101100" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "101101" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "101110" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "101111" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "110000" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "110001" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "110010" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "110011" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "110100" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "110101" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "110110" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "110111" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "111000" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "111001" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "111010" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "111011" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "111100" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "111101" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "111110" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN "111111" => excRInf_uid93_fpAddTest_q <= "0"; + WHEN OTHERS => -- unreachable + excRInf_uid93_fpAddTest_q <= (others => '-'); + END CASE; + -- End reserved scope level + END PROCESS; + + -- rUdf_uid85_fpAddTest(BITSELECT,84)@11 + rUdf_uid85_fpAddTest_b <= STD_LOGIC_VECTOR(expFracR_uid81_fpAddTest_q(33 downto 33)); + + -- excRZeroVInC_uid89_fpAddTest(BITJOIN,88)@11 + excRZeroVInC_uid89_fpAddTest_q <= aMinusA_uid77_fpAddTest_q & rUdf_uid85_fpAddTest_b & regInputs_uid88_fpAddTest_q & redist29_excZ_bSig_uid17_uid37_fpAddTest_q_10_q & redist34_excZ_aSig_uid16_uid23_fpAddTest_q_2_q; + + -- excRZero_uid90_fpAddTest(LOOKUP,89)@11 + 1 + excRZero_uid90_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + excRZero_uid90_fpAddTest_q <= "0"; + ELSIF (clk'EVENT AND clk = '1') THEN + CASE (excRZeroVInC_uid89_fpAddTest_q) IS + WHEN "00000" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "00001" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "00010" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "00011" => excRZero_uid90_fpAddTest_q <= "1"; + WHEN "00100" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "00101" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "00110" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "00111" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "01000" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "01001" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "01010" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "01011" => excRZero_uid90_fpAddTest_q <= "1"; + WHEN "01100" => excRZero_uid90_fpAddTest_q <= "1"; + WHEN "01101" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "01110" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "01111" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "10000" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "10001" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "10010" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "10011" => excRZero_uid90_fpAddTest_q <= "1"; + WHEN "10100" => excRZero_uid90_fpAddTest_q <= "1"; + WHEN "10101" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "10110" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "10111" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "11000" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "11001" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "11010" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "11011" => excRZero_uid90_fpAddTest_q <= "1"; + WHEN "11100" => excRZero_uid90_fpAddTest_q <= "1"; + WHEN "11101" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "11110" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN "11111" => excRZero_uid90_fpAddTest_q <= "0"; + WHEN OTHERS => -- unreachable + excRZero_uid90_fpAddTest_q <= (others => '-'); + END CASE; + END IF; + END PROCESS; + + -- concExc_uid97_fpAddTest(BITJOIN,96)@12 + concExc_uid97_fpAddTest_q <= excRNaN_uid96_fpAddTest_q & excRInf_uid93_fpAddTest_q & excRZero_uid90_fpAddTest_q; + + -- excREnc_uid98_fpAddTest(LOOKUP,97)@12 + 1 + excREnc_uid98_fpAddTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + excREnc_uid98_fpAddTest_q <= "01"; + ELSIF (clk'EVENT AND clk = '1') THEN + CASE (concExc_uid97_fpAddTest_q) IS + WHEN "000" => excREnc_uid98_fpAddTest_q <= "01"; + WHEN "001" => excREnc_uid98_fpAddTest_q <= "00"; + WHEN "010" => excREnc_uid98_fpAddTest_q <= "10"; + WHEN "011" => excREnc_uid98_fpAddTest_q <= "10"; + WHEN "100" => excREnc_uid98_fpAddTest_q <= "11"; + WHEN "101" => excREnc_uid98_fpAddTest_q <= "11"; + WHEN "110" => excREnc_uid98_fpAddTest_q <= "11"; + WHEN "111" => excREnc_uid98_fpAddTest_q <= "11"; + WHEN OTHERS => -- unreachable + excREnc_uid98_fpAddTest_q <= (others => '-'); + END CASE; + END IF; + END PROCESS; + + -- expRPostExc_uid117_fpAddTest(MUX,116)@13 + expRPostExc_uid117_fpAddTest_s <= excREnc_uid98_fpAddTest_q; + expRPostExc_uid117_fpAddTest_combproc: PROCESS (expRPostExc_uid117_fpAddTest_s, cstAllZWE_uid20_fpAddTest_q, redist13_expRPreExc_uid87_fpAddTest_b_2_q, cstAllOWE_uid18_fpAddTest_q) + BEGIN + CASE (expRPostExc_uid117_fpAddTest_s) IS + WHEN "00" => expRPostExc_uid117_fpAddTest_q <= cstAllZWE_uid20_fpAddTest_q; + WHEN "01" => expRPostExc_uid117_fpAddTest_q <= redist13_expRPreExc_uid87_fpAddTest_b_2_q; + WHEN "10" => expRPostExc_uid117_fpAddTest_q <= cstAllOWE_uid18_fpAddTest_q; + WHEN "11" => expRPostExc_uid117_fpAddTest_q <= cstAllOWE_uid18_fpAddTest_q; + WHEN OTHERS => expRPostExc_uid117_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- oneFracRPostExc2_uid110_fpAddTest(CONSTANT,109) + oneFracRPostExc2_uid110_fpAddTest_q <= "00000000000000000000001"; + + -- fracRPreExc_uid86_fpAddTest(BITSELECT,85)@11 + fracRPreExc_uid86_fpAddTest_in <= expFracR_uid81_fpAddTest_q(23 downto 0); + fracRPreExc_uid86_fpAddTest_b <= fracRPreExc_uid86_fpAddTest_in(23 downto 1); + + -- redist14_fracRPreExc_uid86_fpAddTest_b_2(DELAY,233) + redist14_fracRPreExc_uid86_fpAddTest_b_2 : dspba_delay + GENERIC MAP ( width => 23, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracRPreExc_uid86_fpAddTest_b, xout => redist14_fracRPreExc_uid86_fpAddTest_b_2_q, clk => clk, aclr => areset ); + + -- fracRPostExc_uid113_fpAddTest(MUX,112)@13 + fracRPostExc_uid113_fpAddTest_s <= excREnc_uid98_fpAddTest_q; + fracRPostExc_uid113_fpAddTest_combproc: PROCESS (fracRPostExc_uid113_fpAddTest_s, cstZeroWF_uid19_fpAddTest_q, redist14_fracRPreExc_uid86_fpAddTest_b_2_q, oneFracRPostExc2_uid110_fpAddTest_q) + BEGIN + CASE (fracRPostExc_uid113_fpAddTest_s) IS + WHEN "00" => fracRPostExc_uid113_fpAddTest_q <= cstZeroWF_uid19_fpAddTest_q; + WHEN "01" => fracRPostExc_uid113_fpAddTest_q <= redist14_fracRPreExc_uid86_fpAddTest_b_2_q; + WHEN "10" => fracRPostExc_uid113_fpAddTest_q <= cstZeroWF_uid19_fpAddTest_q; + WHEN "11" => fracRPostExc_uid113_fpAddTest_q <= oneFracRPostExc2_uid110_fpAddTest_q; + WHEN OTHERS => fracRPostExc_uid113_fpAddTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- R_uid118_fpAddTest(BITJOIN,117)@13 + R_uid118_fpAddTest_q <= signRPostExc_uid109_fpAddTest_q & expRPostExc_uid117_fpAddTest_q & fracRPostExc_uid113_fpAddTest_q; + + -- xOut(GPOUT,4)@13 + q <= R_uid118_fpAddTest_q; + +END normal; diff --git a/ip/ip_fp_add_sim.f b/ip/ip_fp_add_sim.f new file mode 100644 index 0000000..586d59a --- /dev/null +++ b/ip/ip_fp_add_sim.f @@ -0,0 +1 @@ +ip_fp_add_sim/ip_fp_add.vo diff --git a/ip/ip_fp_add_sim/aldec/rivierapro_setup.tcl b/ip/ip_fp_add_sim/aldec/rivierapro_setup.tcl new file mode 100644 index 0000000..a6ecfc3 --- /dev/null +++ b/ip/ip_fp_add_sim/aldec/rivierapro_setup.tcl @@ -0,0 +1,278 @@ + +# (C) 2001-2023 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and +# other software and tools, and its AMPP partner logic functions, and +# any output files any of the foregoing (including device programming +# or simulation files), and any associated documentation or information +# are expressly subject to the terms and conditions of the Altera +# Program License Subscription Agreement, Altera MegaCore Function +# License Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +# ACDS 20.1 720 linux 2023.10.21.04:46:09 +# ---------------------------------------- +# Auto-generated simulation script rivierapro_setup.tcl +# ---------------------------------------- +# This script provides commands to simulate the following IP detected in +# your Quartus project: +# ip_fp_add +# +# Altera recommends that you source this Quartus-generated IP simulation +# script from your own customized top-level script, and avoid editing this +# generated script. +# +# To write a top-level script that compiles Altera simulation libraries and +# the Quartus-generated IP in your project, along with your design and +# testbench files, copy the text from the TOP-LEVEL TEMPLATE section below +# into a new file, e.g. named "aldec.do", and modify the text as directed. +# +# ---------------------------------------- +# # TOP-LEVEL TEMPLATE - BEGIN +# # +# # QSYS_SIMDIR is used in the Quartus-generated IP simulation script to +# # construct paths to the files required to simulate the IP in your Quartus +# # project. By default, the IP script assumes that you are launching the +# # simulator from the IP script location. If launching from another +# # location, set QSYS_SIMDIR to the output directory you specified when you +# # generated the IP script, relative to the directory from which you launch +# # the simulator. +# # +# set QSYS_SIMDIR <script generation output directory> +# # +# # Source the generated IP simulation script. +# source $QSYS_SIMDIR/aldec/rivierapro_setup.tcl +# # +# # Set any compilation options you require (this is unusual). +# set USER_DEFINED_COMPILE_OPTIONS <compilation options> +# set USER_DEFINED_VHDL_COMPILE_OPTIONS <compilation options for VHDL> +# set USER_DEFINED_VERILOG_COMPILE_OPTIONS <compilation options for Verilog> +# # +# # Call command to compile the Quartus EDA simulation library. +# dev_com +# # +# # Call command to compile the Quartus-generated IP simulation files. +# com +# # +# # Add commands to compile all design files and testbench files, including +# # the top level. (These are all the files required for simulation other +# # than the files compiled by the Quartus-generated IP simulation script) +# # +# vlog -sv2k5 <your compilation options> <design and testbench files> +# # +# # Set the top-level simulation or testbench module/entity name, which is +# # used by the elab command to elaborate the top level. +# # +# set TOP_LEVEL_NAME <simulation top> +# # +# # Set any elaboration options you require. +# set USER_DEFINED_ELAB_OPTIONS <elaboration options> +# # +# # Call command to elaborate your design and testbench. +# elab +# # +# # Run the simulation. +# run +# # +# # Report success to the shell. +# exit -code 0 +# # +# # TOP-LEVEL TEMPLATE - END +# ---------------------------------------- +# +# IP SIMULATION SCRIPT +# ---------------------------------------- +# If ip_fp_add is one of several IP cores in your +# Quartus project, you can generate a simulation script +# suitable for inclusion in your top-level simulation +# script by running the following command line: +# +# ip-setup-simulation --quartus-project=<quartus project> +# +# ip-setup-simulation will discover the Altera IP +# within the Quartus project, and generate a unified +# script which supports all the Altera IP within the design. +# ---------------------------------------- + +# ---------------------------------------- +# Initialize variables +if ![info exists SYSTEM_INSTANCE_NAME] { + set SYSTEM_INSTANCE_NAME "" +} elseif { ![ string match "" $SYSTEM_INSTANCE_NAME ] } { + set SYSTEM_INSTANCE_NAME "/$SYSTEM_INSTANCE_NAME" +} + +if ![info exists TOP_LEVEL_NAME] { + set TOP_LEVEL_NAME "ip_fp_add" +} + +if ![info exists QSYS_SIMDIR] { + set QSYS_SIMDIR "./../" +} + +if ![info exists QUARTUS_INSTALL_DIR] { + set QUARTUS_INSTALL_DIR "/nix/store/q54w47mfmcj9ag8kxwqvyi0snainbhjw-quartus-prime-lite-unwrapped-20.1.1.720/quartus/" +} + +if ![info exists USER_DEFINED_COMPILE_OPTIONS] { + set USER_DEFINED_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_VHDL_COMPILE_OPTIONS] { + set USER_DEFINED_VHDL_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_VERILOG_COMPILE_OPTIONS] { + set USER_DEFINED_VERILOG_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_ELAB_OPTIONS] { + set USER_DEFINED_ELAB_OPTIONS "" +} + +# ---------------------------------------- +# Initialize simulation properties - DO NOT MODIFY! +set ELAB_OPTIONS "" +set SIM_OPTIONS "" +if ![ string match "*-64 vsim*" [ vsim -version ] ] { +} else { +} + +set Aldec "Riviera" +if { [ string match "*Active-HDL*" [ vsim -version ] ] } { + set Aldec "Active" +} + +if { [ string match "Active" $Aldec ] } { + scripterconf -tcl + createdesign "$TOP_LEVEL_NAME" "." + opendesign "$TOP_LEVEL_NAME" +} + +# ---------------------------------------- +# Copy ROM/RAM files to simulation directory +alias file_copy { + echo "\[exec\] file_copy" +} + +# ---------------------------------------- +# Create compilation libraries +proc ensure_lib { lib } { if ![file isdirectory $lib] { vlib $lib } } +ensure_lib ./libraries +ensure_lib ./libraries/work +vmap work ./libraries/work +ensure_lib ./libraries/altera_ver +vmap altera_ver ./libraries/altera_ver +ensure_lib ./libraries/lpm_ver +vmap lpm_ver ./libraries/lpm_ver +ensure_lib ./libraries/sgate_ver +vmap sgate_ver ./libraries/sgate_ver +ensure_lib ./libraries/altera_mf_ver +vmap altera_mf_ver ./libraries/altera_mf_ver +ensure_lib ./libraries/altera_lnsim_ver +vmap altera_lnsim_ver ./libraries/altera_lnsim_ver +ensure_lib ./libraries/cyclonev_ver +vmap cyclonev_ver ./libraries/cyclonev_ver +ensure_lib ./libraries/cyclonev_hssi_ver +vmap cyclonev_hssi_ver ./libraries/cyclonev_hssi_ver +ensure_lib ./libraries/cyclonev_pcie_hip_ver +vmap cyclonev_pcie_hip_ver ./libraries/cyclonev_pcie_hip_ver + + +# ---------------------------------------- +# Compile device library files +alias dev_com { + echo "\[exec\] dev_com" + eval vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v" -work altera_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v" -work lpm_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v" -work sgate_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v" -work altera_mf_ver + vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim.sv" -work altera_lnsim_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/aldec/cyclonev_atoms_ncrypt.v" -work cyclonev_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/aldec/cyclonev_hmi_atoms_ncrypt.v" -work cyclonev_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v" -work cyclonev_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/aldec/cyclonev_hssi_atoms_ncrypt.v" -work cyclonev_hssi_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_hssi_atoms.v" -work cyclonev_hssi_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/aldec/cyclonev_pcie_hip_atoms_ncrypt.v" -work cyclonev_pcie_hip_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_pcie_hip_atoms.v" -work cyclonev_pcie_hip_ver +} + +# ---------------------------------------- +# Compile the design files in correct order +alias com { + echo "\[exec\] com" + eval vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QSYS_SIMDIR/ip_fp_add.vo" +} + +# ---------------------------------------- +# Elaborate top level design +alias elab { + echo "\[exec\] elab" + eval vsim +access +r -t ps $ELAB_OPTIONS -L work -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclonev_ver -L cyclonev_hssi_ver -L cyclonev_pcie_hip_ver $TOP_LEVEL_NAME +} + +# ---------------------------------------- +# Elaborate the top level design with -dbg -O2 option +alias elab_debug { + echo "\[exec\] elab_debug" + eval vsim -dbg -O2 +access +r -t ps $ELAB_OPTIONS -L work -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclonev_ver -L cyclonev_hssi_ver -L cyclonev_pcie_hip_ver $TOP_LEVEL_NAME +} + +# ---------------------------------------- +# Compile all the design files and elaborate the top level design +alias ld " + dev_com + com + elab +" + +# ---------------------------------------- +# Compile all the design files and elaborate the top level design with -dbg -O2 +alias ld_debug " + dev_com + com + elab_debug +" + +# ---------------------------------------- +# Print out user commmand line aliases +alias h { + echo "List Of Command Line Aliases" + echo + echo "file_copy -- Copy ROM/RAM files to simulation directory" + echo + echo "dev_com -- Compile device library files" + echo + echo "com -- Compile the design files in correct order" + echo + echo "elab -- Elaborate top level design" + echo + echo "elab_debug -- Elaborate the top level design with -dbg -O2 option" + echo + echo "ld -- Compile all the design files and elaborate the top level design" + echo + echo "ld_debug -- Compile all the design files and elaborate the top level design with -dbg -O2" + echo + echo + echo + echo "List Of Variables" + echo + echo "TOP_LEVEL_NAME -- Top level module name." + echo " For most designs, this should be overridden" + echo " to enable the elab/elab_debug aliases." + echo + echo "SYSTEM_INSTANCE_NAME -- Instantiated system module name inside top level module." + echo + echo "QSYS_SIMDIR -- Platform Designer base simulation directory." + echo + echo "QUARTUS_INSTALL_DIR -- Quartus installation directory." + echo + echo "USER_DEFINED_COMPILE_OPTIONS -- User-defined compile options, added to com/dev_com aliases." + echo + echo "USER_DEFINED_ELAB_OPTIONS -- User-defined elaboration options, added to elab/elab_debug aliases." + echo + echo "USER_DEFINED_VHDL_COMPILE_OPTIONS -- User-defined vhdl compile options, added to com/dev_com aliases." + echo + echo "USER_DEFINED_VERILOG_COMPILE_OPTIONS -- User-defined verilog compile options, added to com/dev_com aliases." +} +file_copy +h diff --git a/ip/ip_fp_add_sim/cadence/cds.lib b/ip/ip_fp_add_sim/cadence/cds.lib new file mode 100644 index 0000000..b2eae0a --- /dev/null +++ b/ip/ip_fp_add_sim/cadence/cds.lib @@ -0,0 +1,19 @@ + +DEFINE std $CDS_ROOT/tools/inca/files/STD/ +DEFINE synopsys $CDS_ROOT/tools/inca/files/SYNOPSYS/ +DEFINE ieee $CDS_ROOT/tools/inca/files/IEEE/ +DEFINE ambit $CDS_ROOT/tools/inca/files/AMBIT/ +DEFINE vital_memory $CDS_ROOT/tools/inca/files/VITAL_MEMORY/ +DEFINE ncutils $CDS_ROOT/tools/inca/files/NCUTILS/ +DEFINE ncinternal $CDS_ROOT/tools/inca/files/NCINTERNAL/ +DEFINE ncmodels $CDS_ROOT/tools/inca/files/NCMODELS/ +DEFINE cds_assertions $CDS_ROOT/tools/inca/files/CDS_ASSERTIONS/ +DEFINE work ./libraries/work/ +DEFINE altera_ver ./libraries/altera_ver/ +DEFINE lpm_ver ./libraries/lpm_ver/ +DEFINE sgate_ver ./libraries/sgate_ver/ +DEFINE altera_mf_ver ./libraries/altera_mf_ver/ +DEFINE altera_lnsim_ver ./libraries/altera_lnsim_ver/ +DEFINE cyclonev_ver ./libraries/cyclonev_ver/ +DEFINE cyclonev_hssi_ver ./libraries/cyclonev_hssi_ver/ +DEFINE cyclonev_pcie_hip_ver ./libraries/cyclonev_pcie_hip_ver/ diff --git a/ip/ip_fp_add_sim/cadence/hdl.var b/ip/ip_fp_add_sim/cadence/hdl.var new file mode 100644 index 0000000..c1b7814 --- /dev/null +++ b/ip/ip_fp_add_sim/cadence/hdl.var @@ -0,0 +1,2 @@ + +DEFINE WORK work diff --git a/ip/ip_fp_add_sim/cadence/ncsim_setup.sh b/ip/ip_fp_add_sim/cadence/ncsim_setup.sh new file mode 100755 index 0000000..62715d5 --- /dev/null +++ b/ip/ip_fp_add_sim/cadence/ncsim_setup.sh @@ -0,0 +1,195 @@ + +# (C) 2001-2023 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and +# other software and tools, and its AMPP partner logic functions, and +# any output files any of the foregoing (including device programming +# or simulation files), and any associated documentation or information +# are expressly subject to the terms and conditions of the Altera +# Program License Subscription Agreement, Altera MegaCore Function +# License Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +# ACDS 20.1 720 linux 2023.10.21.04:46:09 + +# ---------------------------------------- +# ncsim - auto-generated simulation script + +# ---------------------------------------- +# This script provides commands to simulate the following IP detected in +# your Quartus project: +# ip_fp_add +# +# Altera recommends that you source this Quartus-generated IP simulation +# script from your own customized top-level script, and avoid editing this +# generated script. +# +# To write a top-level shell script that compiles Altera simulation libraries +# and the Quartus-generated IP in your project, along with your design and +# testbench files, copy the text from the TOP-LEVEL TEMPLATE section below +# into a new file, e.g. named "ncsim.sh", and modify text as directed. +# +# You can also modify the simulation flow to suit your needs. Set the +# following variables to 1 to disable their corresponding processes: +# - SKIP_FILE_COPY: skip copying ROM/RAM initialization files +# - SKIP_DEV_COM: skip compiling the Quartus EDA simulation library +# - SKIP_COM: skip compiling Quartus-generated IP simulation files +# - SKIP_ELAB and SKIP_SIM: skip elaboration and simulation +# +# ---------------------------------------- +# # TOP-LEVEL TEMPLATE - BEGIN +# # +# # QSYS_SIMDIR is used in the Quartus-generated IP simulation script to +# # construct paths to the files required to simulate the IP in your Quartus +# # project. By default, the IP script assumes that you are launching the +# # simulator from the IP script location. If launching from another +# # location, set QSYS_SIMDIR to the output directory you specified when you +# # generated the IP script, relative to the directory from which you launch +# # the simulator. In this case, you must also copy the generated files +# # "cds.lib" and "hdl.var" - plus the directory "cds_libs" if generated - +# # into the location from which you launch the simulator, or incorporate +# # into any existing library setup. +# # +# # Run Quartus-generated IP simulation script once to compile Quartus EDA +# # simulation libraries and Quartus-generated IP simulation files, and copy +# # any ROM/RAM initialization files to the simulation directory. +# # - If necessary, specify any compilation options: +# # USER_DEFINED_COMPILE_OPTIONS +# # USER_DEFINED_VHDL_COMPILE_OPTIONS applied to vhdl compiler +# # USER_DEFINED_VERILOG_COMPILE_OPTIONS applied to verilog compiler +# # +# source <script generation output directory>/cadence/ncsim_setup.sh \ +# SKIP_ELAB=1 \ +# SKIP_SIM=1 \ +# USER_DEFINED_COMPILE_OPTIONS=<compilation options for your design> \ +# USER_DEFINED_VHDL_COMPILE_OPTIONS=<VHDL compilation options for your design> \ +# USER_DEFINED_VERILOG_COMPILE_OPTIONS=<Verilog compilation options for your design> \ +# QSYS_SIMDIR=<script generation output directory> +# # +# # Compile all design files and testbench files, including the top level. +# # (These are all the files required for simulation other than the files +# # compiled by the IP script) +# # +# ncvlog <compilation options> <design and testbench files> +# # +# # TOP_LEVEL_NAME is used in this script to set the top-level simulation or +# # testbench module/entity name. +# # +# # Run the IP script again to elaborate and simulate the top level: +# # - Specify TOP_LEVEL_NAME and USER_DEFINED_ELAB_OPTIONS. +# # - Override the default USER_DEFINED_SIM_OPTIONS. For example, to run +# # until $finish(), set to an empty string: USER_DEFINED_SIM_OPTIONS="". +# # +# source <script generation output directory>/cadence/ncsim_setup.sh \ +# SKIP_FILE_COPY=1 \ +# SKIP_DEV_COM=1 \ +# SKIP_COM=1 \ +# TOP_LEVEL_NAME=<simulation top> \ +# USER_DEFINED_ELAB_OPTIONS=<elaboration options for your design> \ +# USER_DEFINED_SIM_OPTIONS=<simulation options for your design> +# # +# # TOP-LEVEL TEMPLATE - END +# ---------------------------------------- +# +# IP SIMULATION SCRIPT +# ---------------------------------------- +# If ip_fp_add is one of several IP cores in your +# Quartus project, you can generate a simulation script +# suitable for inclusion in your top-level simulation +# script by running the following command line: +# +# ip-setup-simulation --quartus-project=<quartus project> +# +# ip-setup-simulation will discover the Altera IP +# within the Quartus project, and generate a unified +# script which supports all the Altera IP within the design. +# ---------------------------------------- +# ACDS 20.1 720 linux 2023.10.21.04:46:09 +# ---------------------------------------- +# initialize variables +TOP_LEVEL_NAME="ip_fp_add" +QSYS_SIMDIR="./../" +QUARTUS_INSTALL_DIR="/nix/store/q54w47mfmcj9ag8kxwqvyi0snainbhjw-quartus-prime-lite-unwrapped-20.1.1.720/quartus/" +SKIP_FILE_COPY=0 +SKIP_DEV_COM=0 +SKIP_COM=0 +SKIP_ELAB=0 +SKIP_SIM=0 +USER_DEFINED_ELAB_OPTIONS="" +USER_DEFINED_SIM_OPTIONS="-input \"@run 100; exit\"" + +# ---------------------------------------- +# overwrite variables - DO NOT MODIFY! +# This block evaluates each command line argument, typically used for +# overwriting variables. An example usage: +# sh <simulator>_setup.sh SKIP_SIM=1 +for expression in "$@"; do + eval $expression + if [ $? -ne 0 ]; then + echo "Error: This command line argument, \"$expression\", is/has an invalid expression." >&2 + exit $? + fi +done + +# ---------------------------------------- +# initialize simulation properties - DO NOT MODIFY! +ELAB_OPTIONS="" +SIM_OPTIONS="" +if [[ `ncsim -version` != *"ncsim(64)"* ]]; then + : +else + : +fi + +# ---------------------------------------- +# create compilation libraries +mkdir -p ./libraries/work/ +mkdir -p ./libraries/altera_ver/ +mkdir -p ./libraries/lpm_ver/ +mkdir -p ./libraries/sgate_ver/ +mkdir -p ./libraries/altera_mf_ver/ +mkdir -p ./libraries/altera_lnsim_ver/ +mkdir -p ./libraries/cyclonev_ver/ +mkdir -p ./libraries/cyclonev_hssi_ver/ +mkdir -p ./libraries/cyclonev_pcie_hip_ver/ + +# ---------------------------------------- +# copy RAM/ROM files to simulation directory + +# ---------------------------------------- +# compile device library files +if [ $SKIP_DEV_COM -eq 0 ]; then + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v" -work altera_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v" -work lpm_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v" -work sgate_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v" -work altera_mf_ver + ncvlog -sv $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim.sv" -work altera_lnsim_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cadence/cyclonev_atoms_ncrypt.v" -work cyclonev_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cadence/cyclonev_hmi_atoms_ncrypt.v" -work cyclonev_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v" -work cyclonev_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cadence/cyclonev_hssi_atoms_ncrypt.v" -work cyclonev_hssi_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_hssi_atoms.v" -work cyclonev_hssi_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cadence/cyclonev_pcie_hip_atoms_ncrypt.v" -work cyclonev_pcie_hip_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_pcie_hip_atoms.v" -work cyclonev_pcie_hip_ver +fi + +# ---------------------------------------- +# compile design files in correct order +if [ $SKIP_COM -eq 0 ]; then + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QSYS_SIMDIR/ip_fp_add.vo" +fi + +# ---------------------------------------- +# elaborate top level design +if [ $SKIP_ELAB -eq 0 ]; then + export GENERIC_PARAM_COMPAT_CHECK=1 + ncelab -access +w+r+c -namemap_mixgen -relax $ELAB_OPTIONS $USER_DEFINED_ELAB_OPTIONS $TOP_LEVEL_NAME +fi + +# ---------------------------------------- +# simulate +if [ $SKIP_SIM -eq 0 ]; then + eval ncsim -licqueue $SIM_OPTIONS $USER_DEFINED_SIM_OPTIONS $TOP_LEVEL_NAME +fi diff --git a/ip/ip_fp_add_sim/ip_fp_add.vo b/ip/ip_fp_add_sim/ip_fp_add.vo new file mode 100644 index 0000000..ce49c05 --- /dev/null +++ b/ip/ip_fp_add_sim/ip_fp_add.vo @@ -0,0 +1,4572 @@ +//IP Functional Simulation Model +//VERSION_BEGIN 20.1 cbx_mgl 2020:11:11:17:50:46:SJ cbx_simgen 2020:11:11:17:03:37:SJ VERSION_END +// synthesis VERILOG_INPUT_VERSION VERILOG_2001 +// altera message_off 10463 + + + +// Copyright (C) 2020 Intel Corporation. All rights reserved. +// Your use of Intel Corporation's design tools, logic functions +// and other software and tools, and any partner logic +// functions, and any output files from any of the foregoing +// (including device programming or simulation files), and any +// associated documentation or information are expressly subject +// to the terms and conditions of the Intel Program License +// Subscription Agreement, the Intel Quartus Prime License Agreement, +// the Intel FPGA IP License Agreement, or other applicable license +// agreement, including, without limitation, that your use is for +// the sole purpose of programming logic devices manufactured by +// Intel and sold by Intel or its authorized distributors. Please +// refer to the applicable agreement for further details, at +// https://fpgasoftware.intel.com/eula. + +// You may only use these simulation model output files for simulation +// purposes and expressly not for synthesis or any other purposes (in which +// event Intel disclaims all warranties of any kind). + + +//synopsys translate_off + +//synthesis_resources = altera_syncram 2 lut 628 mux21 195 oper_add 11 oper_mux 137 +`timescale 1 ps / 1 ps +module ip_fp_add + ( + a, + areset, + b, + clk, + q) /* synthesis synthesis_clearbox=1 */; + input [31:0] a; + input areset; + input [31:0] b; + input clk; + output [31:0] q; + + wire [22:0] wire_ni0Oii_q_b; + wire [7:0] wire_nil10l_q_b; + reg n010O; + reg n011O; + reg n11Oi; + reg nll00i; + reg nlOO1i; + reg n000i; + reg n000l; + reg n000O; + reg n001i; + reg n001l; + reg n001O; + reg n00ii; + reg n00il; + reg n00iO; + reg n00li; + reg n00ll; + reg n00lO; + reg n00Oi; + reg n00Ol; + reg n00OO; + reg n010i; + reg n01ii; + reg n01il; + reg n01lO; + reg n01Ol; + reg n01OO; + reg n0i0i; + reg n0i0l; + reg n0i0O; + reg n0i1i; + reg n0i1l; + reg n0i1O; + reg n0iii; + reg n0iil; + reg n0iiO; + reg n0ili; + reg n0ill; + reg n0OiO; + reg n0Oll; + reg n0OlO; + reg n0OlOl; + reg n0OlOO; + reg n0OO0i; + reg n0OO0l; + reg n0OO0O; + reg n0OO1i; + reg n0OO1l; + reg n0OO1O; + reg n0OOi; + reg n0OOii; + reg n0OOil; + reg n0OOiO; + reg n0OOl; + reg n0OOli; + reg n0OOll; + reg n0OOlO; + reg n0OOO; + reg n0OOOi; + reg n0OOOl; + reg n0OOOO; + reg n101i; + reg n101l; + reg n101O; + reg n10iO; + reg n11lO; + reg n11Ol; + reg n11OO; + reg n1i0i; + reg n1i0l; + reg n1i0O; + reg n1i1i; + reg n1i1l; + reg n1i1O; + reg n1iii; + reg n1iOO; + reg n1l0i; + reg n1l0l; + reg n1l0O; + reg n1l1i; + reg n1l1l; + reg n1l1O; + reg n1lii; + reg n1lil; + reg n1liO; + reg n1lli; + reg n1lll; + reg n1llO; + reg n1lOi; + reg n1lOl; + reg n1lOO; + reg ni000i; + reg ni000l; + reg ni000O; + reg ni001i; + reg ni001l; + reg ni001O; + reg ni00i; + reg ni00ii; + reg ni00il; + reg ni00iO; + reg ni00l; + reg ni00li; + reg ni00ll; + reg ni00lO; + reg ni00O; + reg ni00Oi; + reg ni00Ol; + reg ni00OO; + reg ni010i; + reg ni010l; + reg ni010O; + reg ni011i; + reg ni011l; + reg ni011O; + reg ni01i; + reg ni01ii; + reg ni01il; + reg ni01iO; + reg ni01l; + reg ni01li; + reg ni01ll; + reg ni01lO; + reg ni01O; + reg ni01Oi; + reg ni01Ol; + reg ni01OO; + reg ni0i0i; + reg ni0i0l; + reg ni0i0O; + reg ni0i1i; + reg ni0i1l; + reg ni0i1O; + reg ni0ii; + reg ni0iii; + reg ni0iil; + reg ni0iiO; + reg ni0ili; + reg ni0ill; + reg ni0ilO; + reg ni0iOi; + reg ni0iOl; + reg ni0iOO; + reg ni0l0i; + reg ni0l0l; + reg ni0l0O; + reg ni0l1i; + reg ni0l1l; + reg ni0l1O; + reg ni0lii; + reg ni0lil; + reg ni0liO; + reg ni0lli; + reg ni0lll; + reg ni0llO; + reg ni0lOi; + reg ni0lOl; + reg ni0lOO; + reg ni0O0i; + reg ni0O0l; + reg ni0O0O; + reg ni0O1i; + reg ni0O1l; + reg ni0O1O; + reg ni0Oil; + reg ni0OiO; + reg ni0Oli; + reg ni0Oll; + reg ni0OlO; + reg ni0OOi; + reg ni0OOl; + reg ni0OOO; + reg ni100i; + reg ni100l; + reg ni100O; + reg ni101i; + reg ni101l; + reg ni101O; + reg ni10i; + reg ni10ii; + reg ni10il; + reg ni10iO; + reg ni10l; + reg ni10li; + reg ni10ll; + reg ni10lO; + reg ni10O; + reg ni10Oi; + reg ni10Ol; + reg ni10OO; + reg ni110i; + reg ni110l; + reg ni110O; + reg ni111i; + reg ni111l; + reg ni111O; + reg ni11i; + reg ni11ii; + reg ni11il; + reg ni11iO; + reg ni11l; + reg ni11li; + reg ni11ll; + reg ni11lO; + reg ni11O; + reg ni11Oi; + reg ni11Ol; + reg ni11OO; + reg ni1i0i; + reg ni1i0l; + reg ni1i0O; + reg ni1i1i; + reg ni1i1l; + reg ni1i1O; + reg ni1ii; + reg ni1iii; + reg ni1iil; + reg ni1iiO; + reg ni1il; + reg ni1ili; + reg ni1ill; + reg ni1ilO; + reg ni1iO; + reg ni1iOi; + reg ni1iOl; + reg ni1iOO; + reg ni1l0i; + reg ni1l0l; + reg ni1l0O; + reg ni1l1i; + reg ni1l1l; + reg ni1l1O; + reg ni1li; + reg ni1lii; + reg ni1lil; + reg ni1liO; + reg ni1ll; + reg ni1lli; + reg ni1lll; + reg ni1llO; + reg ni1lO; + reg ni1lOi; + reg ni1lOl; + reg ni1lOO; + reg ni1O0i; + reg ni1O0l; + reg ni1O0O; + reg ni1O1i; + reg ni1O1l; + reg ni1O1O; + reg ni1Oi; + reg ni1Oii; + reg ni1Oil; + reg ni1OiO; + reg ni1Ol; + reg ni1Oli; + reg ni1Oll; + reg ni1OlO; + reg ni1OO; + reg ni1OOi; + reg ni1OOl; + reg ni1OOO; + reg nii00i; + reg nii00l; + reg nii00O; + reg nii01i; + reg nii01l; + reg nii01O; + reg nii0ii; + reg nii0il; + reg nii0iO; + reg nii0li; + reg nii0ll; + reg nii0lO; + reg nii0Oi; + reg nii0Ol; + reg nii0OO; + reg nii10i; + reg nii10l; + reg nii10O; + reg nii11i; + reg nii11l; + reg nii11O; + reg nii1ii; + reg nii1il; + reg nii1iO; + reg nii1li; + reg nii1ll; + reg nii1lO; + reg nii1Oi; + reg nii1Ol; + reg nii1OO; + reg niii0i; + reg niii0l; + reg niii0O; + reg niii1i; + reg niii1l; + reg niii1O; + reg niiiii; + reg niiiil; + reg niiiiO; + reg niiili; + reg niiill; + reg niiilO; + reg niiiOi; + reg niiiOl; + reg niiiOO; + reg niil0i; + reg niil0l; + reg niil0O; + reg niil1i; + reg niil1l; + reg niil1O; + reg niilii; + reg niilil; + reg niiliO; + reg niilli; + reg niilll; + reg niillO; + reg niilOi; + reg niilOl; + reg niilOO; + reg niiO0i; + reg niiO0l; + reg niiO0O; + reg niiO1i; + reg niiO1l; + reg niiO1O; + reg niiOii; + reg niiOil; + reg niiOiO; + reg niiOli; + reg niiOll; + reg niiOlO; + reg niiOOi; + reg niiOOl; + reg niiOOO; + reg nil00i; + reg nil00l; + reg nil00O; + reg nil01i; + reg nil01l; + reg nil01O; + reg nil0ii; + reg nil0il; + reg nil0iO; + reg nil0li; + reg nil0ll; + reg nil0lO; + reg nil0Oi; + reg nil0Ol; + reg nil0OO; + reg nil10i; + reg nil10O; + reg nil11i; + reg nil11l; + reg nil11O; + reg nil1ii; + reg nil1il; + reg nil1iO; + reg nil1li; + reg nil1ll; + reg nil1lO; + reg nil1Oi; + reg nil1Ol; + reg nil1OO; + reg nili0i; + reg nili0l; + reg nili0O; + reg nili1i; + reg nili1l; + reg nili1O; + reg niliii; + reg niliil; + reg niliiO; + reg nilili; + reg nilill; + reg nililO; + reg niliOi; + reg niliOl; + reg niliOO; + reg nill0i; + reg nill0l; + reg nill0O; + reg nill1i; + reg nill1l; + reg nill1O; + reg nillii; + reg nillil; + reg nilliO; + reg nillli; + reg nillll; + reg nilllO; + reg nillOi; + reg nillOl; + reg nillOO; + reg nilO0i; + reg nilO0l; + reg nilO0O; + reg nilO1i; + reg nilO1l; + reg nilO1O; + reg nilOii; + reg nilOil; + reg nilOiO; + reg nilOli; + reg nilOll; + reg nilOlO; + reg nilOOi; + reg nilOOl; + reg nilOOO; + reg niO00i; + reg niO00l; + reg niO00O; + reg niO01i; + reg niO01l; + reg niO01O; + reg niO0ii; + reg niO0il; + reg niO0iO; + reg niO0li; + reg niO0ll; + reg niO0lO; + reg niO0Oi; + reg niO0Ol; + reg niO0OO; + reg niO10i; + reg niO10l; + reg niO10O; + reg niO11i; + reg niO11l; + reg niO11O; + reg niO1ii; + reg niO1il; + reg niO1iO; + reg niO1li; + reg niO1ll; + reg niO1lO; + reg niO1Oi; + reg niO1Ol; + reg niO1OO; + reg niOi0i; + reg niOi0l; + reg niOi0O; + reg niOi1i; + reg niOi1l; + reg niOi1O; + reg niOiii; + reg niOiil; + reg niOiiO; + reg niOili; + reg niOill; + reg niOilO; + reg niOiOi; + reg niOiOl; + reg niOiOO; + reg niOl0i; + reg niOl0l; + reg niOl0O; + reg niOl1i; + reg niOl1l; + reg niOl1O; + reg niOlii; + reg niOlil; + reg niOliO; + reg niOlli; + reg niOlll; + reg niOllO; + reg niOlOi; + reg niOlOl; + reg niOlOO; + reg niOO0i; + reg niOO0l; + reg niOO0O; + reg niOO1i; + reg niOO1l; + reg niOO1O; + reg niOOii; + reg niOOil; + reg niOOiO; + reg niOOli; + reg niOOll; + reg niOOlO; + reg niOOOi; + reg niOOOl; + reg niOOOO; + reg nl010i; + reg nl010l; + reg nl010O; + reg nl011i; + reg nl011l; + reg nl011O; + reg nl01ii; + reg nl01il; + reg nl01iO; + reg nl01li; + reg nl01ll; + reg nl01lO; + reg nl01Oi; + reg nl01Ol; + reg nl0ll; + reg nl0lO; + reg nl0Oi; + reg nl0Ol; + reg nl0OO; + reg nl100i; + reg nl100l; + reg nl100O; + reg nl101i; + reg nl101l; + reg nl101O; + reg nl10ii; + reg nl10il; + reg nl10iO; + reg nl10li; + reg nl10ll; + reg nl10lO; + reg nl10Oi; + reg nl10Ol; + reg nl10OO; + reg nl110i; + reg nl110l; + reg nl110O; + reg nl111i; + reg nl111l; + reg nl111O; + reg nl11ii; + reg nl11il; + reg nl11iO; + reg nl11li; + reg nl11ll; + reg nl11lO; + reg nl11Oi; + reg nl11Ol; + reg nl11OO; + reg nl1i0i; + reg nl1i0l; + reg nl1i0O; + reg nl1i1i; + reg nl1i1l; + reg nl1i1O; + reg nl1iii; + reg nl1iil; + reg nl1iiO; + reg nl1ili; + reg nl1ill; + reg nl1ilO; + reg nl1iOi; + reg nl1iOl; + reg nl1iOO; + reg nl1l0i; + reg nl1l0l; + reg nl1l0O; + reg nl1l1i; + reg nl1l1l; + reg nl1l1O; + reg nl1lii; + reg nl1lil; + reg nl1liO; + reg nl1lli; + reg nl1lll; + reg nl1llO; + reg nl1lOi; + reg nl1lOl; + reg nl1lOO; + reg nl1O0i; + reg nl1O0l; + reg nl1O0O; + reg nl1O1i; + reg nl1O1l; + reg nl1O1O; + reg nl1Oii; + reg nl1Oil; + reg nl1OiO; + reg nl1Oli; + reg nl1Oll; + reg nl1OlO; + reg nl1OOi; + reg nl1OOl; + reg nl1OOO; + reg nli0l; + reg nli1i; + reg nli1l; + reg nli1O; + reg nll1li; + reg nll1ll; + reg nll1Ol; + reg nlliOi; + reg nlliOl; + reg nlliOO; + reg nlll0i; + reg nlll0l; + reg nlll0O; + reg nlll1i; + reg nlll1l; + reg nlll1O; + reg nlllii; + reg nlllil; + reg nllliO; + reg nlllli; + reg nlllll; + reg nllllO; + reg nlllOi; + reg nlllOl; + reg nlllOO; + reg nllO0i; + reg nllO0l; + reg nllO0O; + reg nllO1i; + reg nllO1l; + reg nllO1O; + reg nlOilO; + reg nlOiOi; + reg nlOiOl; + reg nlOiOO; + reg nlOl0i; + reg nlOl0l; + reg nlOl0O; + reg nlOl1i; + reg nlOl1l; + reg nlOl1O; + reg nlOlil; + reg nlOliO; + reg nlOlli; + reg nlOlll; + reg nlOllO; + reg nlOlOi; + reg nlOlOl; + reg nlOlOO; + wire wire_n00i_dataout; + wire wire_n00l_dataout; + wire wire_n00O_dataout; + wire wire_n01i_dataout; + wire wire_n01iO_dataout; + wire wire_n01l_dataout; + wire wire_n01O_dataout; + wire wire_n01Oi_dataout; + wire wire_n0i_dataout; + wire wire_n0ii_dataout; + wire wire_n0il_dataout; + wire wire_n0ilO_dataout; + wire wire_n0iO_dataout; + wire wire_n0iOi_dataout; + wire wire_n0iOl_dataout; + wire wire_n0iOO_dataout; + wire wire_n0l_dataout; + wire wire_n0l0i_dataout; + wire wire_n0l0l_dataout; + wire wire_n0l0O_dataout; + wire wire_n0l1i_dataout; + wire wire_n0l1l_dataout; + wire wire_n0l1O_dataout; + wire wire_n0li_dataout; + wire wire_n0lii_dataout; + wire wire_n0lil_dataout; + wire wire_n0liO_dataout; + wire wire_n0ll_dataout; + wire wire_n0lli_dataout; + wire wire_n0lll_dataout; + wire wire_n0llO_dataout; + wire wire_n0lO_dataout; + wire wire_n0lOi_dataout; + wire wire_n0lOl_dataout; + wire wire_n0lOO_dataout; + wire wire_n0O_dataout; + wire wire_n0O0i_dataout; + wire wire_n0O0l_dataout; + wire wire_n0O0O_dataout; + wire wire_n0O1i_dataout; + wire wire_n0O1l_dataout; + wire wire_n0O1O_dataout; + wire wire_n0Oi_dataout; + wire wire_n0Oii_dataout; + wire wire_n0Oil_dataout; + wire wire_n0Ol_dataout; + wire wire_n0OO_dataout; + wire wire_n100i_dataout; + wire wire_n100l_dataout; + wire wire_n100O_dataout; + wire wire_n10i_dataout; + wire wire_n10l_dataout; + wire wire_n10li_dataout; + wire wire_n10lO_dataout; + wire wire_n10O_dataout; + wire wire_n10Oi_dataout; + wire wire_n10Ol_dataout; + wire wire_n10OO_dataout; + wire wire_n11i_dataout; + wire wire_n11l_dataout; + wire wire_n11O_dataout; + wire wire_n1i_dataout; + wire wire_n1ii_dataout; + wire wire_n1iil_dataout; + wire wire_n1iiO_dataout; + wire wire_n1il_dataout; + wire wire_n1ili_dataout; + wire wire_n1ill_dataout; + wire wire_n1ilO_dataout; + wire wire_n1iO_dataout; + wire wire_n1iOi_dataout; + wire wire_n1iOl_dataout; + wire wire_n1l_dataout; + wire wire_n1ll_dataout; + wire wire_n1lO_dataout; + wire wire_n1O_dataout; + wire wire_n1O0i_dataout; + wire wire_n1O0l_dataout; + wire wire_n1O0O_dataout; + wire wire_n1O1i_dataout; + wire wire_n1O1l_dataout; + wire wire_n1O1O_dataout; + wire wire_n1Oi_dataout; + wire wire_n1Oii_dataout; + wire wire_n1Oil_dataout; + wire wire_n1OiO_dataout; + wire wire_n1Ol_dataout; + wire wire_n1Oli_dataout; + wire wire_n1Oll_dataout; + wire wire_n1OlO_dataout; + wire wire_n1OO_dataout; + wire wire_n1OOi_dataout; + wire wire_n1OOl_dataout; + wire wire_n1OOO_dataout; + wire wire_ni_dataout; + wire wire_ni0i_dataout; + wire wire_ni0il_dataout; + wire wire_ni0iO_dataout; + wire wire_ni0l_dataout; + wire wire_ni0li_dataout; + wire wire_ni0ll_dataout; + wire wire_ni0lO_dataout; + wire wire_ni0O_dataout; + wire wire_ni0Oi_dataout; + wire wire_ni0Ol_dataout; + wire wire_ni0OO_dataout; + wire wire_ni1i_dataout; + wire wire_ni1l_dataout; + wire wire_ni1O_dataout; + wire wire_nii_dataout; + wire wire_nii0i_dataout; + wire wire_nii0l_dataout; + wire wire_nii0O_dataout; + wire wire_nii1i_dataout; + wire wire_nii1l_dataout; + wire wire_nii1O_dataout; + wire wire_niii_dataout; + wire wire_niiii_dataout; + wire wire_niiil_dataout; + wire wire_niiiO_dataout; + wire wire_niil_dataout; + wire wire_niili_dataout; + wire wire_niill_dataout; + wire wire_niilO_dataout; + wire wire_niiO_dataout; + wire wire_niiOi_dataout; + wire wire_niiOl_dataout; + wire wire_niiOO_dataout; + wire wire_nil_dataout; + wire wire_nil1i_dataout; + wire wire_nil1l_dataout; + wire wire_nil1O_dataout; + wire wire_nili_dataout; + wire wire_nill_dataout; + wire wire_nilO_dataout; + wire wire_niO_dataout; + wire wire_niOi_dataout; + wire wire_niOl_dataout; + wire wire_niOO_dataout; + wire wire_nl_dataout; + wire wire_nl0i_dataout; + wire wire_nl0l_dataout; + wire wire_nl0O_dataout; + wire wire_nl1i_dataout; + wire wire_nl1l_dataout; + wire wire_nl1O_dataout; + wire wire_nli_dataout; + wire wire_nlii_dataout; + wire wire_nlil_dataout; + wire wire_nliO_dataout; + wire wire_nll_dataout; + wire wire_nll00l_dataout; + wire wire_nll00O_dataout; + wire wire_nll0ii_dataout; + wire wire_nll0il_dataout; + wire wire_nll0iO_dataout; + wire wire_nll0li_dataout; + wire wire_nll0ll_dataout; + wire wire_nll0lO_dataout; + wire wire_nll0Oi_dataout; + wire wire_nll0Ol_dataout; + wire wire_nll0OO_dataout; + wire wire_nlli_dataout; + wire wire_nlli0i_dataout; + wire wire_nlli0l_dataout; + wire wire_nlli0O_dataout; + wire wire_nlli1i_dataout; + wire wire_nlli1l_dataout; + wire wire_nlli1O_dataout; + wire wire_nlliii_dataout; + wire wire_nlliil_dataout; + wire wire_nlliiO_dataout; + wire wire_nllili_dataout; + wire wire_nllill_dataout; + wire wire_nllilO_dataout; + wire wire_nlll_dataout; + wire wire_nllO_dataout; + wire wire_nlO_dataout; + wire wire_nlO0i_dataout; + wire wire_nlO0l_dataout; + wire wire_nlO0O_dataout; + wire wire_nlO1l_dataout; + wire wire_nlO1O_dataout; + wire wire_nlOi_dataout; + wire wire_nlOii_dataout; + wire wire_nlOil_dataout; + wire wire_nlOiO_dataout; + wire wire_nlOl_dataout; + wire wire_nlOli_dataout; + wire wire_nlOll_dataout; + wire wire_nlOlO_dataout; + wire wire_nlOO_dataout; + wire wire_nlOOi_dataout; + wire wire_nlOOl_dataout; + wire wire_nlOOO_dataout; + wire [27:0] wire_n011i_o; + wire [1:0] wire_n01li_o; + wire [0:0] wire_n01ll_o; + wire [11:0] wire_n0Oli_o; + wire [2:0] wire_n10ii_o; + wire [2:0] wire_n10il_o; + wire [9:0] wire_nli0O_o; + wire [27:0] wire_nliii_o; + wire [10:0] wire_nlOlii_o; + wire [8:0] wire_nlOO1l_o; + wire [33:0] wire_nO_o; + wire wire_nil0i_o; + wire wire_nil0l_o; + wire wire_nil0O_o; + wire wire_nilii_o; + wire wire_nilil_o; + wire wire_niliO_o; + wire wire_nilli_o; + wire wire_nilll_o; + wire wire_nillO_o; + wire wire_nilOi_o; + wire wire_nilOl_o; + wire wire_nilOO_o; + wire wire_niO0i_o; + wire wire_niO0l_o; + wire wire_niO0O_o; + wire wire_niO1i_o; + wire wire_niO1l_o; + wire wire_niO1O_o; + wire wire_niOii_o; + wire wire_niOil_o; + wire wire_niOiO_o; + wire wire_niOli_o; + wire wire_niOll_o; + wire wire_niOlO_o; + wire wire_niOOi_o; + wire wire_niOOl_o; + wire wire_niOOO_o; + wire wire_nl00i_o; + wire wire_nl00l_o; + wire wire_nl00O_o; + wire wire_nl01i_o; + wire wire_nl01l_o; + wire wire_nl01O_o; + wire wire_nl0ii_o; + wire wire_nl0il_o; + wire wire_nl0iO_o; + wire wire_nl0li_o; + wire wire_nl10i_o; + wire wire_nl10l_o; + wire wire_nl10O_o; + wire wire_nl11i_o; + wire wire_nl11l_o; + wire wire_nl11O_o; + wire wire_nl1ii_o; + wire wire_nl1il_o; + wire wire_nl1iO_o; + wire wire_nl1li_o; + wire wire_nl1ll_o; + wire wire_nl1lO_o; + wire wire_nl1Oi_o; + wire wire_nl1Ol_o; + wire wire_nl1OO_o; + wire wire_nliliO_o; + wire wire_nlilli_o; + wire wire_nlilll_o; + wire wire_nlillO_o; + wire wire_nlilOi_o; + wire wire_nlilOl_o; + wire wire_nlilOO_o; + wire wire_nliO0i_o; + wire wire_nliO0l_o; + wire wire_nliO0O_o; + wire wire_nliO1i_o; + wire wire_nliO1l_o; + wire wire_nliO1O_o; + wire wire_nliOii_o; + wire wire_nliOil_o; + wire wire_nliOiO_o; + wire wire_nliOli_o; + wire wire_nliOll_o; + wire wire_nliOlO_o; + wire wire_nliOOi_o; + wire wire_nliOOl_o; + wire wire_nliOOO_o; + wire wire_nll01i_o; + wire wire_nll10i_o; + wire wire_nll10l_o; + wire wire_nll10O_o; + wire wire_nll11i_o; + wire wire_nll11l_o; + wire wire_nll11O_o; + wire wire_nll1ii_o; + wire wire_nll1il_o; + wire wire_nll1iO_o; + wire wire_nll1lO_o; + wire wire_nll1Oi_o; + wire wire_nll1OO_o; + wire wire_nllOii_o; + wire wire_nllOil_o; + wire wire_nllOiO_o; + wire wire_nllOli_o; + wire wire_nllOll_o; + wire wire_nllOlO_o; + wire wire_nllOOi_o; + wire wire_nllOOl_o; + wire wire_nllOOO_o; + wire wire_nlO00i_o; + wire wire_nlO00l_o; + wire wire_nlO00O_o; + wire wire_nlO01i_o; + wire wire_nlO01l_o; + wire wire_nlO01O_o; + wire wire_nlO0ii_o; + wire wire_nlO0il_o; + wire wire_nlO0iO_o; + wire wire_nlO0li_o; + wire wire_nlO0ll_o; + wire wire_nlO0lO_o; + wire wire_nlO0Oi_o; + wire wire_nlO0Ol_o; + wire wire_nlO0OO_o; + wire wire_nlO10i_o; + wire wire_nlO10l_o; + wire wire_nlO10O_o; + wire wire_nlO11i_o; + wire wire_nlO11l_o; + wire wire_nlO11O_o; + wire wire_nlO1ii_o; + wire wire_nlO1il_o; + wire wire_nlO1iO_o; + wire wire_nlO1li_o; + wire wire_nlO1ll_o; + wire wire_nlO1lO_o; + wire wire_nlO1Oi_o; + wire wire_nlO1Ol_o; + wire wire_nlO1OO_o; + wire wire_nlOi0i_o; + wire wire_nlOi0l_o; + wire wire_nlOi0O_o; + wire wire_nlOi1i_o; + wire wire_nlOi1l_o; + wire wire_nlOi1O_o; + wire wire_nlOiii_o; + wire wire_nlOiil_o; + wire wire_nlOiiO_o; + wire wire_nlOili_o; + wire wire_nlOill_o; + wire n0OilO; + wire n0OiOi; + wire n0OiOl; + wire n0OiOO; + wire n0Ol0i; + wire n0Ol0l; + wire n0Ol0O; + wire n0Ol1i; + wire n0Ol1l; + wire n0Ol1O; + wire n0Olii; + wire n0Olil; + wire n0OliO; + wire n0Olli; + wire n0Olll; + + altera_syncram ni0Oii + ( + .aclr1(areset), + .address_a({n011O, n1lOO}), + .address_b({n01ii, n010O}), + .clock0(clk), + .clock1(clk), + .clocken0(1'b1), + .clocken1(n01il), + .data_a({wire_ni1O_dataout, wire_ni1l_dataout, wire_ni1i_dataout, wire_n0OO_dataout, wire_n0Ol_dataout, wire_n0Oi_dataout, wire_n0lO_dataout, wire_n0ll_dataout, wire_n0li_dataout, wire_n0iO_dataout, wire_n0il_dataout, wire_n0ii_dataout, wire_n00O_dataout, wire_n00l_dataout, wire_n00i_dataout, wire_n01O_dataout, wire_n01l_dataout, wire_n01i_dataout, wire_n1OO_dataout, wire_n1Ol_dataout, wire_n1Oi_dataout, wire_n1lO_dataout, wire_n1ll_dataout}), + .eccstatus(), + .q_a(), + .q_b(wire_ni0Oii_q_b), + .wren_a(1'b1), + .aclr0(), + .address2_a(), + .address2_b(), + .addressstall_a(), + .addressstall_b(), + .byteena_a(), + .byteena_b(), + .clocken2(), + .clocken3(), + .data_b(), + .eccencbypass(), + .eccencparity(), + .rden_a(), + .rden_b(), + .sclr(), + .wren_b() + ); + defparam + ni0Oii.address_aclr_a = "NONE", + ni0Oii.address_aclr_b = "NONE", + ni0Oii.address_reg_b = "CLOCK0", + ni0Oii.byte_size = 0, + ni0Oii.byteena_reg_b = "CLOCK0", + ni0Oii.clock_enable_core_a = "USE_INPUT_CLKEN", + ni0Oii.clock_enable_core_b = "USE_INPUT_CLKEN", + ni0Oii.clock_enable_input_a = "NORMAL", + ni0Oii.clock_enable_input_b = "NORMAL", + ni0Oii.clock_enable_output_a = "NORMAL", + ni0Oii.clock_enable_output_b = "NORMAL", + ni0Oii.ecc_pipeline_stage_enabled = "FALSE", + ni0Oii.enable_coherent_read = "FALSE", + ni0Oii.enable_ecc = "FALSE", + ni0Oii.enable_ecc_encoder_bypass = "FALSE", + ni0Oii.enable_force_to_zero = "FALSE", + ni0Oii.implement_in_les = "OFF", + ni0Oii.indata_reg_b = "CLOCK0", + ni0Oii.init_file_layout = "PORT_A", + ni0Oii.intended_device_family = "Cyclone V", + ni0Oii.numwords_a = 3, + ni0Oii.numwords_b = 3, + ni0Oii.operation_mode = "DUAL_PORT", + ni0Oii.outdata_aclr_a = "NONE", + ni0Oii.outdata_aclr_b = "CLEAR1", + ni0Oii.outdata_reg_a = "UNREGISTERED", + ni0Oii.outdata_reg_b = "CLOCK1", + ni0Oii.outdata_sclr_a = "NONE", + ni0Oii.outdata_sclr_b = "NONE", + ni0Oii.power_up_uninitialized = "TRUE", + ni0Oii.ram_block_type = "MLAB", + ni0Oii.rdcontrol_reg_b = "CLOCK0", + ni0Oii.read_during_write_mode_mixed_ports = "DONT_CARE", + ni0Oii.read_during_write_mode_port_a = "NEW_DATA_NO_NBE_READ", + ni0Oii.read_during_write_mode_port_b = "NEW_DATA_NO_NBE_READ", + ni0Oii.width_a = 23, + ni0Oii.width_b = 23, + ni0Oii.width_byteena_a = 1, + ni0Oii.width_byteena_b = 1, + ni0Oii.width_eccencparity = 8, + ni0Oii.width_eccstatus = 2, + ni0Oii.widthad2_a = 1, + ni0Oii.widthad2_b = 1, + ni0Oii.widthad_a = 2, + ni0Oii.widthad_b = 2, + ni0Oii.lpm_hint = "ACF_BLOCK_RAM_AND_MLAB_EQUIVALENT_PAUSED_READ_CAPABILITIES=DONT CARE, ACF_BLOCK_RAM_AND_MLAB_EQUIVALENT_POWER_UP_CONDITIONS=AUTO, ACF_DISABLE_MLAB_RAM_USE=FALSE, ACF_IMPLEMENT_MLAB_IN_16_BIT_DEEP_MODE=FALSE, CLOCK_DUTY_CYCLE_DEPENDENCE=AUTO, ENABLE_RUNTIME_MOD=NO, LOW_POWER_MODE=AUTO, RDEN_POWER_OPTIMIZATION=ON"; + altera_syncram nil10l + ( + .aclr1(areset), + .address_a({n11Oi, n11lO, nlOO1i}), + .address_b({n101l, n101i, n11OO}), + .clock0(clk), + .clock1(clk), + .clocken0(1'b1), + .clocken1(n101O), + .data_a({wire_nill_dataout, wire_nili_dataout, wire_niiO_dataout, wire_niil_dataout, wire_niii_dataout, wire_ni0O_dataout, wire_ni0l_dataout, wire_ni0i_dataout}), + .eccstatus(), + .q_a(), + .q_b(wire_nil10l_q_b), + .wren_a(1'b1), + .aclr0(), + .address2_a(), + .address2_b(), + .addressstall_a(), + .addressstall_b(), + .byteena_a(), + .byteena_b(), + .clocken2(), + .clocken3(), + .data_b(), + .eccencbypass(), + .eccencparity(), + .rden_a(), + .rden_b(), + .sclr(), + .wren_b() + ); + defparam + nil10l.address_aclr_a = "NONE", + nil10l.address_aclr_b = "NONE", + nil10l.address_reg_b = "CLOCK0", + nil10l.byte_size = 0, + nil10l.byteena_reg_b = "CLOCK0", + nil10l.clock_enable_core_a = "USE_INPUT_CLKEN", + nil10l.clock_enable_core_b = "USE_INPUT_CLKEN", + nil10l.clock_enable_input_a = "NORMAL", + nil10l.clock_enable_input_b = "NORMAL", + nil10l.clock_enable_output_a = "NORMAL", + nil10l.clock_enable_output_b = "NORMAL", + nil10l.ecc_pipeline_stage_enabled = "FALSE", + nil10l.enable_coherent_read = "FALSE", + nil10l.enable_ecc = "FALSE", + nil10l.enable_ecc_encoder_bypass = "FALSE", + nil10l.enable_force_to_zero = "FALSE", + nil10l.implement_in_les = "OFF", + nil10l.indata_reg_b = "CLOCK0", + nil10l.init_file_layout = "PORT_A", + nil10l.intended_device_family = "Cyclone V", + nil10l.numwords_a = 6, + nil10l.numwords_b = 6, + nil10l.operation_mode = "DUAL_PORT", + nil10l.outdata_aclr_a = "NONE", + nil10l.outdata_aclr_b = "CLEAR1", + nil10l.outdata_reg_a = "UNREGISTERED", + nil10l.outdata_reg_b = "CLOCK1", + nil10l.outdata_sclr_a = "NONE", + nil10l.outdata_sclr_b = "NONE", + nil10l.power_up_uninitialized = "TRUE", + nil10l.ram_block_type = "MLAB", + nil10l.rdcontrol_reg_b = "CLOCK0", + nil10l.read_during_write_mode_mixed_ports = "DONT_CARE", + nil10l.read_during_write_mode_port_a = "NEW_DATA_NO_NBE_READ", + nil10l.read_during_write_mode_port_b = "NEW_DATA_NO_NBE_READ", + nil10l.width_a = 8, + nil10l.width_b = 8, + nil10l.width_byteena_a = 1, + nil10l.width_byteena_b = 1, + nil10l.width_eccencparity = 8, + nil10l.width_eccstatus = 2, + nil10l.widthad2_a = 1, + nil10l.widthad2_b = 1, + nil10l.widthad_a = 3, + nil10l.widthad_b = 3, + nil10l.lpm_hint = "ACF_BLOCK_RAM_AND_MLAB_EQUIVALENT_PAUSED_READ_CAPABILITIES=DONT CARE, ACF_BLOCK_RAM_AND_MLAB_EQUIVALENT_POWER_UP_CONDITIONS=AUTO, ACF_DISABLE_MLAB_RAM_USE=FALSE, ACF_IMPLEMENT_MLAB_IN_16_BIT_DEEP_MODE=FALSE, CLOCK_DUTY_CYCLE_DEPENDENCE=AUTO, ENABLE_RUNTIME_MOD=NO, LOW_POWER_MODE=AUTO, RDEN_POWER_OPTIMIZATION=ON"; + initial + begin + n010O = 0; + end + always @ ( posedge clk or posedge areset) + begin + if (areset == 1'b1) + begin + n010O <= 0; + end + else if (n010i == 1'b0) + begin + n010O <= wire_n01li_o[0]; + end + end + initial + begin + n011O = 0; + n11Oi = 0; + nll00i = 0; + nlOO1i = 0; + end + always @ ( posedge clk or posedge areset) + begin + if (areset == 1'b1) + begin + n011O <= 1; + n11Oi <= 1; + nll00i <= 1; + nlOO1i <= 1; + end + else + begin + n011O <= n01ii; + n11Oi <= n101l; + nll00i <= wire_nll1lO_o; + nlOO1i <= n11OO; + end + end + event n011O_event; + event n11Oi_event; + event nll00i_event; + event nlOO1i_event; + initial + #1 ->n011O_event; + initial + #1 ->n11Oi_event; + initial + #1 ->nll00i_event; + initial + #1 ->nlOO1i_event; + always @(n011O_event) + n011O <= 1; + always @(n11Oi_event) + n11Oi <= 1; + always @(nll00i_event) + nll00i <= 1; + always @(nlOO1i_event) + nlOO1i <= 1; + initial + begin + n000i = 0; + n000l = 0; + n000O = 0; + n001i = 0; + n001l = 0; + n001O = 0; + n00ii = 0; + n00il = 0; + n00iO = 0; + n00li = 0; + n00ll = 0; + n00lO = 0; + n00Oi = 0; + n00Ol = 0; + n00OO = 0; + n010i = 0; + n01ii = 0; + n01il = 0; + n01lO = 0; + n01Ol = 0; + n01OO = 0; + n0i0i = 0; + n0i0l = 0; + n0i0O = 0; + n0i1i = 0; + n0i1l = 0; + n0i1O = 0; + n0iii = 0; + n0iil = 0; + n0iiO = 0; + n0ili = 0; + n0ill = 0; + n0OiO = 0; + n0Oll = 0; + n0OlO = 0; + n0OlOl = 0; + n0OlOO = 0; + n0OO0i = 0; + n0OO0l = 0; + n0OO0O = 0; + n0OO1i = 0; + n0OO1l = 0; + n0OO1O = 0; + n0OOi = 0; + n0OOii = 0; + n0OOil = 0; + n0OOiO = 0; + n0OOl = 0; + n0OOli = 0; + n0OOll = 0; + n0OOlO = 0; + n0OOO = 0; + n0OOOi = 0; + n0OOOl = 0; + n0OOOO = 0; + n101i = 0; + n101l = 0; + n101O = 0; + n10iO = 0; + n11lO = 0; + n11Ol = 0; + n11OO = 0; + n1i0i = 0; + n1i0l = 0; + n1i0O = 0; + n1i1i = 0; + n1i1l = 0; + n1i1O = 0; + n1iii = 0; + n1iOO = 0; + n1l0i = 0; + n1l0l = 0; + n1l0O = 0; + n1l1i = 0; + n1l1l = 0; + n1l1O = 0; + n1lii = 0; + n1lil = 0; + n1liO = 0; + n1lli = 0; + n1lll = 0; + n1llO = 0; + n1lOi = 0; + n1lOl = 0; + n1lOO = 0; + ni000i = 0; + ni000l = 0; + ni000O = 0; + ni001i = 0; + ni001l = 0; + ni001O = 0; + ni00i = 0; + ni00ii = 0; + ni00il = 0; + ni00iO = 0; + ni00l = 0; + ni00li = 0; + ni00ll = 0; + ni00lO = 0; + ni00O = 0; + ni00Oi = 0; + ni00Ol = 0; + ni00OO = 0; + ni010i = 0; + ni010l = 0; + ni010O = 0; + ni011i = 0; + ni011l = 0; + ni011O = 0; + ni01i = 0; + ni01ii = 0; + ni01il = 0; + ni01iO = 0; + ni01l = 0; + ni01li = 0; + ni01ll = 0; + ni01lO = 0; + ni01O = 0; + ni01Oi = 0; + ni01Ol = 0; + ni01OO = 0; + ni0i0i = 0; + ni0i0l = 0; + ni0i0O = 0; + ni0i1i = 0; + ni0i1l = 0; + ni0i1O = 0; + ni0ii = 0; + ni0iii = 0; + ni0iil = 0; + ni0iiO = 0; + ni0ili = 0; + ni0ill = 0; + ni0ilO = 0; + ni0iOi = 0; + ni0iOl = 0; + ni0iOO = 0; + ni0l0i = 0; + ni0l0l = 0; + ni0l0O = 0; + ni0l1i = 0; + ni0l1l = 0; + ni0l1O = 0; + ni0lii = 0; + ni0lil = 0; + ni0liO = 0; + ni0lli = 0; + ni0lll = 0; + ni0llO = 0; + ni0lOi = 0; + ni0lOl = 0; + ni0lOO = 0; + ni0O0i = 0; + ni0O0l = 0; + ni0O0O = 0; + ni0O1i = 0; + ni0O1l = 0; + ni0O1O = 0; + ni0Oil = 0; + ni0OiO = 0; + ni0Oli = 0; + ni0Oll = 0; + ni0OlO = 0; + ni0OOi = 0; + ni0OOl = 0; + ni0OOO = 0; + ni100i = 0; + ni100l = 0; + ni100O = 0; + ni101i = 0; + ni101l = 0; + ni101O = 0; + ni10i = 0; + ni10ii = 0; + ni10il = 0; + ni10iO = 0; + ni10l = 0; + ni10li = 0; + ni10ll = 0; + ni10lO = 0; + ni10O = 0; + ni10Oi = 0; + ni10Ol = 0; + ni10OO = 0; + ni110i = 0; + ni110l = 0; + ni110O = 0; + ni111i = 0; + ni111l = 0; + ni111O = 0; + ni11i = 0; + ni11ii = 0; + ni11il = 0; + ni11iO = 0; + ni11l = 0; + ni11li = 0; + ni11ll = 0; + ni11lO = 0; + ni11O = 0; + ni11Oi = 0; + ni11Ol = 0; + ni11OO = 0; + ni1i0i = 0; + ni1i0l = 0; + ni1i0O = 0; + ni1i1i = 0; + ni1i1l = 0; + ni1i1O = 0; + ni1ii = 0; + ni1iii = 0; + ni1iil = 0; + ni1iiO = 0; + ni1il = 0; + ni1ili = 0; + ni1ill = 0; + ni1ilO = 0; + ni1iO = 0; + ni1iOi = 0; + ni1iOl = 0; + ni1iOO = 0; + ni1l0i = 0; + ni1l0l = 0; + ni1l0O = 0; + ni1l1i = 0; + ni1l1l = 0; + ni1l1O = 0; + ni1li = 0; + ni1lii = 0; + ni1lil = 0; + ni1liO = 0; + ni1ll = 0; + ni1lli = 0; + ni1lll = 0; + ni1llO = 0; + ni1lO = 0; + ni1lOi = 0; + ni1lOl = 0; + ni1lOO = 0; + ni1O0i = 0; + ni1O0l = 0; + ni1O0O = 0; + ni1O1i = 0; + ni1O1l = 0; + ni1O1O = 0; + ni1Oi = 0; + ni1Oii = 0; + ni1Oil = 0; + ni1OiO = 0; + ni1Ol = 0; + ni1Oli = 0; + ni1Oll = 0; + ni1OlO = 0; + ni1OO = 0; + ni1OOi = 0; + ni1OOl = 0; + ni1OOO = 0; + nii00i = 0; + nii00l = 0; + nii00O = 0; + nii01i = 0; + nii01l = 0; + nii01O = 0; + nii0ii = 0; + nii0il = 0; + nii0iO = 0; + nii0li = 0; + nii0ll = 0; + nii0lO = 0; + nii0Oi = 0; + nii0Ol = 0; + nii0OO = 0; + nii10i = 0; + nii10l = 0; + nii10O = 0; + nii11i = 0; + nii11l = 0; + nii11O = 0; + nii1ii = 0; + nii1il = 0; + nii1iO = 0; + nii1li = 0; + nii1ll = 0; + nii1lO = 0; + nii1Oi = 0; + nii1Ol = 0; + nii1OO = 0; + niii0i = 0; + niii0l = 0; + niii0O = 0; + niii1i = 0; + niii1l = 0; + niii1O = 0; + niiiii = 0; + niiiil = 0; + niiiiO = 0; + niiili = 0; + niiill = 0; + niiilO = 0; + niiiOi = 0; + niiiOl = 0; + niiiOO = 0; + niil0i = 0; + niil0l = 0; + niil0O = 0; + niil1i = 0; + niil1l = 0; + niil1O = 0; + niilii = 0; + niilil = 0; + niiliO = 0; + niilli = 0; + niilll = 0; + niillO = 0; + niilOi = 0; + niilOl = 0; + niilOO = 0; + niiO0i = 0; + niiO0l = 0; + niiO0O = 0; + niiO1i = 0; + niiO1l = 0; + niiO1O = 0; + niiOii = 0; + niiOil = 0; + niiOiO = 0; + niiOli = 0; + niiOll = 0; + niiOlO = 0; + niiOOi = 0; + niiOOl = 0; + niiOOO = 0; + nil00i = 0; + nil00l = 0; + nil00O = 0; + nil01i = 0; + nil01l = 0; + nil01O = 0; + nil0ii = 0; + nil0il = 0; + nil0iO = 0; + nil0li = 0; + nil0ll = 0; + nil0lO = 0; + nil0Oi = 0; + nil0Ol = 0; + nil0OO = 0; + nil10i = 0; + nil10O = 0; + nil11i = 0; + nil11l = 0; + nil11O = 0; + nil1ii = 0; + nil1il = 0; + nil1iO = 0; + nil1li = 0; + nil1ll = 0; + nil1lO = 0; + nil1Oi = 0; + nil1Ol = 0; + nil1OO = 0; + nili0i = 0; + nili0l = 0; + nili0O = 0; + nili1i = 0; + nili1l = 0; + nili1O = 0; + niliii = 0; + niliil = 0; + niliiO = 0; + nilili = 0; + nilill = 0; + nililO = 0; + niliOi = 0; + niliOl = 0; + niliOO = 0; + nill0i = 0; + nill0l = 0; + nill0O = 0; + nill1i = 0; + nill1l = 0; + nill1O = 0; + nillii = 0; + nillil = 0; + nilliO = 0; + nillli = 0; + nillll = 0; + nilllO = 0; + nillOi = 0; + nillOl = 0; + nillOO = 0; + nilO0i = 0; + nilO0l = 0; + nilO0O = 0; + nilO1i = 0; + nilO1l = 0; + nilO1O = 0; + nilOii = 0; + nilOil = 0; + nilOiO = 0; + nilOli = 0; + nilOll = 0; + nilOlO = 0; + nilOOi = 0; + nilOOl = 0; + nilOOO = 0; + niO00i = 0; + niO00l = 0; + niO00O = 0; + niO01i = 0; + niO01l = 0; + niO01O = 0; + niO0ii = 0; + niO0il = 0; + niO0iO = 0; + niO0li = 0; + niO0ll = 0; + niO0lO = 0; + niO0Oi = 0; + niO0Ol = 0; + niO0OO = 0; + niO10i = 0; + niO10l = 0; + niO10O = 0; + niO11i = 0; + niO11l = 0; + niO11O = 0; + niO1ii = 0; + niO1il = 0; + niO1iO = 0; + niO1li = 0; + niO1ll = 0; + niO1lO = 0; + niO1Oi = 0; + niO1Ol = 0; + niO1OO = 0; + niOi0i = 0; + niOi0l = 0; + niOi0O = 0; + niOi1i = 0; + niOi1l = 0; + niOi1O = 0; + niOiii = 0; + niOiil = 0; + niOiiO = 0; + niOili = 0; + niOill = 0; + niOilO = 0; + niOiOi = 0; + niOiOl = 0; + niOiOO = 0; + niOl0i = 0; + niOl0l = 0; + niOl0O = 0; + niOl1i = 0; + niOl1l = 0; + niOl1O = 0; + niOlii = 0; + niOlil = 0; + niOliO = 0; + niOlli = 0; + niOlll = 0; + niOllO = 0; + niOlOi = 0; + niOlOl = 0; + niOlOO = 0; + niOO0i = 0; + niOO0l = 0; + niOO0O = 0; + niOO1i = 0; + niOO1l = 0; + niOO1O = 0; + niOOii = 0; + niOOil = 0; + niOOiO = 0; + niOOli = 0; + niOOll = 0; + niOOlO = 0; + niOOOi = 0; + niOOOl = 0; + niOOOO = 0; + nl010i = 0; + nl010l = 0; + nl010O = 0; + nl011i = 0; + nl011l = 0; + nl011O = 0; + nl01ii = 0; + nl01il = 0; + nl01iO = 0; + nl01li = 0; + nl01ll = 0; + nl01lO = 0; + nl01Oi = 0; + nl01Ol = 0; + nl0ll = 0; + nl0lO = 0; + nl0Oi = 0; + nl0Ol = 0; + nl0OO = 0; + nl100i = 0; + nl100l = 0; + nl100O = 0; + nl101i = 0; + nl101l = 0; + nl101O = 0; + nl10ii = 0; + nl10il = 0; + nl10iO = 0; + nl10li = 0; + nl10ll = 0; + nl10lO = 0; + nl10Oi = 0; + nl10Ol = 0; + nl10OO = 0; + nl110i = 0; + nl110l = 0; + nl110O = 0; + nl111i = 0; + nl111l = 0; + nl111O = 0; + nl11ii = 0; + nl11il = 0; + nl11iO = 0; + nl11li = 0; + nl11ll = 0; + nl11lO = 0; + nl11Oi = 0; + nl11Ol = 0; + nl11OO = 0; + nl1i0i = 0; + nl1i0l = 0; + nl1i0O = 0; + nl1i1i = 0; + nl1i1l = 0; + nl1i1O = 0; + nl1iii = 0; + nl1iil = 0; + nl1iiO = 0; + nl1ili = 0; + nl1ill = 0; + nl1ilO = 0; + nl1iOi = 0; + nl1iOl = 0; + nl1iOO = 0; + nl1l0i = 0; + nl1l0l = 0; + nl1l0O = 0; + nl1l1i = 0; + nl1l1l = 0; + nl1l1O = 0; + nl1lii = 0; + nl1lil = 0; + nl1liO = 0; + nl1lli = 0; + nl1lll = 0; + nl1llO = 0; + nl1lOi = 0; + nl1lOl = 0; + nl1lOO = 0; + nl1O0i = 0; + nl1O0l = 0; + nl1O0O = 0; + nl1O1i = 0; + nl1O1l = 0; + nl1O1O = 0; + nl1Oii = 0; + nl1Oil = 0; + nl1OiO = 0; + nl1Oli = 0; + nl1Oll = 0; + nl1OlO = 0; + nl1OOi = 0; + nl1OOl = 0; + nl1OOO = 0; + nli0l = 0; + nli1i = 0; + nli1l = 0; + nli1O = 0; + nll1li = 0; + nll1ll = 0; + nll1Ol = 0; + nlliOi = 0; + nlliOl = 0; + nlliOO = 0; + nlll0i = 0; + nlll0l = 0; + nlll0O = 0; + nlll1i = 0; + nlll1l = 0; + nlll1O = 0; + nlllii = 0; + nlllil = 0; + nllliO = 0; + nlllli = 0; + nlllll = 0; + nllllO = 0; + nlllOi = 0; + nlllOl = 0; + nlllOO = 0; + nllO0i = 0; + nllO0l = 0; + nllO0O = 0; + nllO1i = 0; + nllO1l = 0; + nllO1O = 0; + nlOilO = 0; + nlOiOi = 0; + nlOiOl = 0; + nlOiOO = 0; + nlOl0i = 0; + nlOl0l = 0; + nlOl0O = 0; + nlOl1i = 0; + nlOl1l = 0; + nlOl1O = 0; + nlOlil = 0; + nlOliO = 0; + nlOlli = 0; + nlOlll = 0; + nlOllO = 0; + nlOlOi = 0; + nlOlOl = 0; + nlOlOO = 0; + end + always @ ( posedge clk or posedge areset) + begin + if (areset == 1'b1) + begin + n000i <= 0; + n000l <= 0; + n000O <= 0; + n001i <= 0; + n001l <= 0; + n001O <= 0; + n00ii <= 0; + n00il <= 0; + n00iO <= 0; + n00li <= 0; + n00ll <= 0; + n00lO <= 0; + n00Oi <= 0; + n00Ol <= 0; + n00OO <= 0; + n010i <= 0; + n01ii <= 0; + n01il <= 0; + n01lO <= 0; + n01Ol <= 0; + n01OO <= 0; + n0i0i <= 0; + n0i0l <= 0; + n0i0O <= 0; + n0i1i <= 0; + n0i1l <= 0; + n0i1O <= 0; + n0iii <= 0; + n0iil <= 0; + n0iiO <= 0; + n0ili <= 0; + n0ill <= 0; + n0OiO <= 0; + n0Oll <= 0; + n0OlO <= 0; + n0OlOl <= 0; + n0OlOO <= 0; + n0OO0i <= 0; + n0OO0l <= 0; + n0OO0O <= 0; + n0OO1i <= 0; + n0OO1l <= 0; + n0OO1O <= 0; + n0OOi <= 0; + n0OOii <= 0; + n0OOil <= 0; + n0OOiO <= 0; + n0OOl <= 0; + n0OOli <= 0; + n0OOll <= 0; + n0OOlO <= 0; + n0OOO <= 0; + n0OOOi <= 0; + n0OOOl <= 0; + n0OOOO <= 0; + n101i <= 0; + n101l <= 0; + n101O <= 0; + n10iO <= 0; + n11lO <= 0; + n11Ol <= 0; + n11OO <= 0; + n1i0i <= 0; + n1i0l <= 0; + n1i0O <= 0; + n1i1i <= 0; + n1i1l <= 0; + n1i1O <= 0; + n1iii <= 0; + n1iOO <= 0; + n1l0i <= 0; + n1l0l <= 0; + n1l0O <= 0; + n1l1i <= 0; + n1l1l <= 0; + n1l1O <= 0; + n1lii <= 0; + n1lil <= 0; + n1liO <= 0; + n1lli <= 0; + n1lll <= 0; + n1llO <= 0; + n1lOi <= 0; + n1lOl <= 0; + n1lOO <= 0; + ni000i <= 0; + ni000l <= 0; + ni000O <= 0; + ni001i <= 0; + ni001l <= 0; + ni001O <= 0; + ni00i <= 0; + ni00ii <= 0; + ni00il <= 0; + ni00iO <= 0; + ni00l <= 0; + ni00li <= 0; + ni00ll <= 0; + ni00lO <= 0; + ni00O <= 0; + ni00Oi <= 0; + ni00Ol <= 0; + ni00OO <= 0; + ni010i <= 0; + ni010l <= 0; + ni010O <= 0; + ni011i <= 0; + ni011l <= 0; + ni011O <= 0; + ni01i <= 0; + ni01ii <= 0; + ni01il <= 0; + ni01iO <= 0; + ni01l <= 0; + ni01li <= 0; + ni01ll <= 0; + ni01lO <= 0; + ni01O <= 0; + ni01Oi <= 0; + ni01Ol <= 0; + ni01OO <= 0; + ni0i0i <= 0; + ni0i0l <= 0; + ni0i0O <= 0; + ni0i1i <= 0; + ni0i1l <= 0; + ni0i1O <= 0; + ni0ii <= 0; + ni0iii <= 0; + ni0iil <= 0; + ni0iiO <= 0; + ni0ili <= 0; + ni0ill <= 0; + ni0ilO <= 0; + ni0iOi <= 0; + ni0iOl <= 0; + ni0iOO <= 0; + ni0l0i <= 0; + ni0l0l <= 0; + ni0l0O <= 0; + ni0l1i <= 0; + ni0l1l <= 0; + ni0l1O <= 0; + ni0lii <= 0; + ni0lil <= 0; + ni0liO <= 0; + ni0lli <= 0; + ni0lll <= 0; + ni0llO <= 0; + ni0lOi <= 0; + ni0lOl <= 0; + ni0lOO <= 0; + ni0O0i <= 0; + ni0O0l <= 0; + ni0O0O <= 0; + ni0O1i <= 0; + ni0O1l <= 0; + ni0O1O <= 0; + ni0Oil <= 0; + ni0OiO <= 0; + ni0Oli <= 0; + ni0Oll <= 0; + ni0OlO <= 0; + ni0OOi <= 0; + ni0OOl <= 0; + ni0OOO <= 0; + ni100i <= 0; + ni100l <= 0; + ni100O <= 0; + ni101i <= 0; + ni101l <= 0; + ni101O <= 0; + ni10i <= 0; + ni10ii <= 0; + ni10il <= 0; + ni10iO <= 0; + ni10l <= 0; + ni10li <= 0; + ni10ll <= 0; + ni10lO <= 0; + ni10O <= 0; + ni10Oi <= 0; + ni10Ol <= 0; + ni10OO <= 0; + ni110i <= 0; + ni110l <= 0; + ni110O <= 0; + ni111i <= 0; + ni111l <= 0; + ni111O <= 0; + ni11i <= 0; + ni11ii <= 0; + ni11il <= 0; + ni11iO <= 0; + ni11l <= 0; + ni11li <= 0; + ni11ll <= 0; + ni11lO <= 0; + ni11O <= 0; + ni11Oi <= 0; + ni11Ol <= 0; + ni11OO <= 0; + ni1i0i <= 0; + ni1i0l <= 0; + ni1i0O <= 0; + ni1i1i <= 0; + ni1i1l <= 0; + ni1i1O <= 0; + ni1ii <= 0; + ni1iii <= 0; + ni1iil <= 0; + ni1iiO <= 0; + ni1il <= 0; + ni1ili <= 0; + ni1ill <= 0; + ni1ilO <= 0; + ni1iO <= 0; + ni1iOi <= 0; + ni1iOl <= 0; + ni1iOO <= 0; + ni1l0i <= 0; + ni1l0l <= 0; + ni1l0O <= 0; + ni1l1i <= 0; + ni1l1l <= 0; + ni1l1O <= 0; + ni1li <= 0; + ni1lii <= 0; + ni1lil <= 0; + ni1liO <= 0; + ni1ll <= 0; + ni1lli <= 0; + ni1lll <= 0; + ni1llO <= 0; + ni1lO <= 0; + ni1lOi <= 0; + ni1lOl <= 0; + ni1lOO <= 0; + ni1O0i <= 0; + ni1O0l <= 0; + ni1O0O <= 0; + ni1O1i <= 0; + ni1O1l <= 0; + ni1O1O <= 0; + ni1Oi <= 0; + ni1Oii <= 0; + ni1Oil <= 0; + ni1OiO <= 0; + ni1Ol <= 0; + ni1Oli <= 0; + ni1Oll <= 0; + ni1OlO <= 0; + ni1OO <= 0; + ni1OOi <= 0; + ni1OOl <= 0; + ni1OOO <= 0; + nii00i <= 0; + nii00l <= 0; + nii00O <= 0; + nii01i <= 0; + nii01l <= 0; + nii01O <= 0; + nii0ii <= 0; + nii0il <= 0; + nii0iO <= 0; + nii0li <= 0; + nii0ll <= 0; + nii0lO <= 0; + nii0Oi <= 0; + nii0Ol <= 0; + nii0OO <= 0; + nii10i <= 0; + nii10l <= 0; + nii10O <= 0; + nii11i <= 0; + nii11l <= 0; + nii11O <= 0; + nii1ii <= 0; + nii1il <= 0; + nii1iO <= 0; + nii1li <= 0; + nii1ll <= 0; + nii1lO <= 0; + nii1Oi <= 0; + nii1Ol <= 0; + nii1OO <= 0; + niii0i <= 0; + niii0l <= 0; + niii0O <= 0; + niii1i <= 0; + niii1l <= 0; + niii1O <= 0; + niiiii <= 0; + niiiil <= 0; + niiiiO <= 0; + niiili <= 0; + niiill <= 0; + niiilO <= 0; + niiiOi <= 0; + niiiOl <= 0; + niiiOO <= 0; + niil0i <= 0; + niil0l <= 0; + niil0O <= 0; + niil1i <= 0; + niil1l <= 0; + niil1O <= 0; + niilii <= 0; + niilil <= 0; + niiliO <= 0; + niilli <= 0; + niilll <= 0; + niillO <= 0; + niilOi <= 0; + niilOl <= 0; + niilOO <= 0; + niiO0i <= 0; + niiO0l <= 0; + niiO0O <= 0; + niiO1i <= 0; + niiO1l <= 0; + niiO1O <= 0; + niiOii <= 0; + niiOil <= 0; + niiOiO <= 0; + niiOli <= 0; + niiOll <= 0; + niiOlO <= 0; + niiOOi <= 0; + niiOOl <= 0; + niiOOO <= 0; + nil00i <= 0; + nil00l <= 0; + nil00O <= 0; + nil01i <= 0; + nil01l <= 0; + nil01O <= 0; + nil0ii <= 0; + nil0il <= 0; + nil0iO <= 0; + nil0li <= 0; + nil0ll <= 0; + nil0lO <= 0; + nil0Oi <= 0; + nil0Ol <= 0; + nil0OO <= 0; + nil10i <= 0; + nil10O <= 0; + nil11i <= 0; + nil11l <= 0; + nil11O <= 0; + nil1ii <= 0; + nil1il <= 0; + nil1iO <= 0; + nil1li <= 0; + nil1ll <= 0; + nil1lO <= 0; + nil1Oi <= 0; + nil1Ol <= 0; + nil1OO <= 0; + nili0i <= 0; + nili0l <= 0; + nili0O <= 0; + nili1i <= 0; + nili1l <= 0; + nili1O <= 0; + niliii <= 0; + niliil <= 0; + niliiO <= 0; + nilili <= 0; + nilill <= 0; + nililO <= 0; + niliOi <= 0; + niliOl <= 0; + niliOO <= 0; + nill0i <= 0; + nill0l <= 0; + nill0O <= 0; + nill1i <= 0; + nill1l <= 0; + nill1O <= 0; + nillii <= 0; + nillil <= 0; + nilliO <= 0; + nillli <= 0; + nillll <= 0; + nilllO <= 0; + nillOi <= 0; + nillOl <= 0; + nillOO <= 0; + nilO0i <= 0; + nilO0l <= 0; + nilO0O <= 0; + nilO1i <= 0; + nilO1l <= 0; + nilO1O <= 0; + nilOii <= 0; + nilOil <= 0; + nilOiO <= 0; + nilOli <= 0; + nilOll <= 0; + nilOlO <= 0; + nilOOi <= 0; + nilOOl <= 0; + nilOOO <= 0; + niO00i <= 0; + niO00l <= 0; + niO00O <= 0; + niO01i <= 0; + niO01l <= 0; + niO01O <= 0; + niO0ii <= 0; + niO0il <= 0; + niO0iO <= 0; + niO0li <= 0; + niO0ll <= 0; + niO0lO <= 0; + niO0Oi <= 0; + niO0Ol <= 0; + niO0OO <= 0; + niO10i <= 0; + niO10l <= 0; + niO10O <= 0; + niO11i <= 0; + niO11l <= 0; + niO11O <= 0; + niO1ii <= 0; + niO1il <= 0; + niO1iO <= 0; + niO1li <= 0; + niO1ll <= 0; + niO1lO <= 0; + niO1Oi <= 0; + niO1Ol <= 0; + niO1OO <= 0; + niOi0i <= 0; + niOi0l <= 0; + niOi0O <= 0; + niOi1i <= 0; + niOi1l <= 0; + niOi1O <= 0; + niOiii <= 0; + niOiil <= 0; + niOiiO <= 0; + niOili <= 0; + niOill <= 0; + niOilO <= 0; + niOiOi <= 0; + niOiOl <= 0; + niOiOO <= 0; + niOl0i <= 0; + niOl0l <= 0; + niOl0O <= 0; + niOl1i <= 0; + niOl1l <= 0; + niOl1O <= 0; + niOlii <= 0; + niOlil <= 0; + niOliO <= 0; + niOlli <= 0; + niOlll <= 0; + niOllO <= 0; + niOlOi <= 0; + niOlOl <= 0; + niOlOO <= 0; + niOO0i <= 0; + niOO0l <= 0; + niOO0O <= 0; + niOO1i <= 0; + niOO1l <= 0; + niOO1O <= 0; + niOOii <= 0; + niOOil <= 0; + niOOiO <= 0; + niOOli <= 0; + niOOll <= 0; + niOOlO <= 0; + niOOOi <= 0; + niOOOl <= 0; + niOOOO <= 0; + nl010i <= 0; + nl010l <= 0; + nl010O <= 0; + nl011i <= 0; + nl011l <= 0; + nl011O <= 0; + nl01ii <= 0; + nl01il <= 0; + nl01iO <= 0; + nl01li <= 0; + nl01ll <= 0; + nl01lO <= 0; + nl01Oi <= 0; + nl01Ol <= 0; + nl0ll <= 0; + nl0lO <= 0; + nl0Oi <= 0; + nl0Ol <= 0; + nl0OO <= 0; + nl100i <= 0; + nl100l <= 0; + nl100O <= 0; + nl101i <= 0; + nl101l <= 0; + nl101O <= 0; + nl10ii <= 0; + nl10il <= 0; + nl10iO <= 0; + nl10li <= 0; + nl10ll <= 0; + nl10lO <= 0; + nl10Oi <= 0; + nl10Ol <= 0; + nl10OO <= 0; + nl110i <= 0; + nl110l <= 0; + nl110O <= 0; + nl111i <= 0; + nl111l <= 0; + nl111O <= 0; + nl11ii <= 0; + nl11il <= 0; + nl11iO <= 0; + nl11li <= 0; + nl11ll <= 0; + nl11lO <= 0; + nl11Oi <= 0; + nl11Ol <= 0; + nl11OO <= 0; + nl1i0i <= 0; + nl1i0l <= 0; + nl1i0O <= 0; + nl1i1i <= 0; + nl1i1l <= 0; + nl1i1O <= 0; + nl1iii <= 0; + nl1iil <= 0; + nl1iiO <= 0; + nl1ili <= 0; + nl1ill <= 0; + nl1ilO <= 0; + nl1iOi <= 0; + nl1iOl <= 0; + nl1iOO <= 0; + nl1l0i <= 0; + nl1l0l <= 0; + nl1l0O <= 0; + nl1l1i <= 0; + nl1l1l <= 0; + nl1l1O <= 0; + nl1lii <= 0; + nl1lil <= 0; + nl1liO <= 0; + nl1lli <= 0; + nl1lll <= 0; + nl1llO <= 0; + nl1lOi <= 0; + nl1lOl <= 0; + nl1lOO <= 0; + nl1O0i <= 0; + nl1O0l <= 0; + nl1O0O <= 0; + nl1O1i <= 0; + nl1O1l <= 0; + nl1O1O <= 0; + nl1Oii <= 0; + nl1Oil <= 0; + nl1OiO <= 0; + nl1Oli <= 0; + nl1Oll <= 0; + nl1OlO <= 0; + nl1OOi <= 0; + nl1OOl <= 0; + nl1OOO <= 0; + nli0l <= 0; + nli1i <= 0; + nli1l <= 0; + nli1O <= 0; + nll1li <= 0; + nll1ll <= 0; + nll1Ol <= 0; + nlliOi <= 0; + nlliOl <= 0; + nlliOO <= 0; + nlll0i <= 0; + nlll0l <= 0; + nlll0O <= 0; + nlll1i <= 0; + nlll1l <= 0; + nlll1O <= 0; + nlllii <= 0; + nlllil <= 0; + nllliO <= 0; + nlllli <= 0; + nlllll <= 0; + nllllO <= 0; + nlllOi <= 0; + nlllOl <= 0; + nlllOO <= 0; + nllO0i <= 0; + nllO0l <= 0; + nllO0O <= 0; + nllO1i <= 0; + nllO1l <= 0; + nllO1O <= 0; + nlOilO <= 0; + nlOiOi <= 0; + nlOiOl <= 0; + nlOiOO <= 0; + nlOl0i <= 0; + nlOl0l <= 0; + nlOl0O <= 0; + nlOl1i <= 0; + nlOl1l <= 0; + nlOl1O <= 0; + nlOlil <= 0; + nlOliO <= 0; + nlOlli <= 0; + nlOlll <= 0; + nlOllO <= 0; + nlOlOi <= 0; + nlOlOl <= 0; + nlOlOO <= 0; + end + else + begin + n000i <= wire_n0l1l_dataout; + n000l <= wire_n0l1O_dataout; + n000O <= wire_n0l0i_dataout; + n001i <= wire_n0iOl_dataout; + n001l <= wire_n0iOO_dataout; + n001O <= wire_n0l1i_dataout; + n00ii <= wire_n0l0l_dataout; + n00il <= wire_n0l0O_dataout; + n00iO <= wire_n0lii_dataout; + n00li <= wire_n0lil_dataout; + n00ll <= wire_n0liO_dataout; + n00lO <= wire_n0lli_dataout; + n00Oi <= wire_n0lll_dataout; + n00Ol <= wire_n0llO_dataout; + n00OO <= wire_n0lOi_dataout; + n010i <= ((~ n01ii) & n010O); + n01ii <= wire_n01iO_dataout; + n01il <= wire_n01Oi_dataout; + n01lO <= ((~ n01ii) & n010O); + n01Ol <= wire_n0ilO_dataout; + n01OO <= wire_n0iOi_dataout; + n0i0i <= wire_n0O1l_dataout; + n0i0l <= wire_n0O1O_dataout; + n0i0O <= wire_n0O0i_dataout; + n0i1i <= wire_n0lOl_dataout; + n0i1l <= wire_n0lOO_dataout; + n0i1O <= wire_n0O1i_dataout; + n0iii <= wire_n0O0l_dataout; + n0iil <= wire_n0O0O_dataout; + n0iiO <= wire_n0Oii_dataout; + n0ili <= wire_n0Oil_dataout; + n0ill <= wire_n0Oli_o[11]; + n0OiO <= wire_ni0il_dataout; + n0Oll <= wire_ni0iO_dataout; + n0OlO <= wire_ni0li_dataout; + n0OlOl <= b[0]; + n0OlOO <= b[1]; + n0OO0i <= b[5]; + n0OO0l <= b[6]; + n0OO0O <= b[7]; + n0OO1i <= b[2]; + n0OO1l <= b[3]; + n0OO1O <= b[4]; + n0OOi <= wire_ni0ll_dataout; + n0OOii <= b[8]; + n0OOil <= b[9]; + n0OOiO <= b[10]; + n0OOl <= wire_ni0lO_dataout; + n0OOli <= b[11]; + n0OOll <= b[12]; + n0OOlO <= b[13]; + n0OOO <= wire_ni0Oi_dataout; + n0OOOi <= b[14]; + n0OOOl <= b[15]; + n0OOOO <= b[16]; + n101i <= wire_n100l_dataout; + n101l <= wire_n100O_dataout; + n101O <= wire_n10li_dataout; + n10iO <= ((n101l & (~ n101i)) & (~ n11OO)); + n11lO <= n101i; + n11Ol <= ((n101l & (~ n101i)) & (~ n11OO)); + n11OO <= wire_n100i_dataout; + n1i0i <= wire_n1ill_dataout; + n1i0l <= wire_n1ilO_dataout; + n1i0O <= wire_n1iOi_dataout; + n1i1i <= wire_n1iil_dataout; + n1i1l <= wire_n1iiO_dataout; + n1i1O <= wire_n1ili_dataout; + n1iii <= wire_n1iOl_dataout; + n1iOO <= wire_n1O1i_dataout; + n1l0i <= wire_n1O0l_dataout; + n1l0l <= wire_n1O0O_dataout; + n1l0O <= wire_n1Oii_dataout; + n1l1i <= wire_n1O1l_dataout; + n1l1l <= wire_n1O1O_dataout; + n1l1O <= wire_n1O0i_dataout; + n1lii <= wire_n1Oil_dataout; + n1lil <= wire_n1OiO_dataout; + n1liO <= wire_n1Oli_dataout; + n1lli <= wire_n1Oll_dataout; + n1lll <= wire_n1OlO_dataout; + n1llO <= wire_n1OOi_dataout; + n1lOi <= wire_n1OOl_dataout; + n1lOl <= wire_n1OOO_dataout; + n1lOO <= n010O; + ni000i <= (n0Olll ^ wire_n10i_dataout); + ni000l <= (n0Olll ^ wire_n10l_dataout); + ni000O <= (n0Olll ^ wire_n10O_dataout); + ni001i <= (n0Olll ^ wire_n11i_dataout); + ni001l <= (n0Olll ^ wire_n11l_dataout); + ni001O <= (n0Olll ^ wire_n11O_dataout); + ni00i <= wire_nil1l_dataout; + ni00ii <= (n0Olll ^ wire_n1ii_dataout); + ni00il <= (n0Olll ^ wire_n1il_dataout); + ni00iO <= (n0Olll ^ wire_n1iO_dataout); + ni00l <= wire_nil1O_dataout; + ni00li <= (n0Olll ^ (~ ni1l0O)); + ni00ll <= n0Olll; + ni00lO <= wire_nliii_o[0]; + ni00O <= ni0lil; + ni00Oi <= wire_nliii_o[1]; + ni00Ol <= wire_nliii_o[2]; + ni00OO <= wire_nliii_o[3]; + ni010i <= (n0Olll ^ wire_nlO0i_dataout); + ni010l <= (n0Olll ^ wire_nlO0l_dataout); + ni010O <= (n0Olll ^ wire_nlO0O_dataout); + ni011i <= n0Olll; + ni011l <= (n0Olll ^ wire_nlO1l_dataout); + ni011O <= (n0Olll ^ wire_nlO1O_dataout); + ni01i <= wire_niiOl_dataout; + ni01ii <= (n0Olll ^ wire_nlOii_dataout); + ni01il <= (n0Olll ^ wire_nlOil_dataout); + ni01iO <= (n0Olll ^ wire_nlOiO_dataout); + ni01l <= wire_niiOO_dataout; + ni01li <= (n0Olll ^ wire_nlOli_dataout); + ni01ll <= (n0Olll ^ wire_nlOll_dataout); + ni01lO <= (n0Olll ^ wire_nlOlO_dataout); + ni01O <= wire_nil1i_dataout; + ni01Oi <= (n0Olll ^ wire_nlOOi_dataout); + ni01Ol <= (n0Olll ^ wire_nlOOl_dataout); + ni01OO <= (n0Olll ^ wire_nlOOO_dataout); + ni0i0i <= wire_nliii_o[7]; + ni0i0l <= wire_nliii_o[8]; + ni0i0O <= wire_nliii_o[9]; + ni0i1i <= wire_nliii_o[4]; + ni0i1l <= wire_nliii_o[5]; + ni0i1O <= wire_nliii_o[6]; + ni0ii <= wire_nli0O_o[1]; + ni0iii <= wire_nliii_o[10]; + ni0iil <= wire_nliii_o[11]; + ni0iiO <= wire_nliii_o[12]; + ni0ili <= wire_nliii_o[13]; + ni0ill <= wire_nliii_o[14]; + ni0ilO <= wire_nliii_o[15]; + ni0iOi <= wire_nliii_o[16]; + ni0iOl <= wire_nliii_o[17]; + ni0iOO <= wire_nliii_o[18]; + ni0l0i <= wire_nliii_o[22]; + ni0l0l <= wire_nliii_o[23]; + ni0l0O <= wire_nliii_o[24]; + ni0l1i <= wire_nliii_o[19]; + ni0l1l <= wire_nliii_o[20]; + ni0l1O <= wire_nliii_o[21]; + ni0lii <= wire_nliii_o[25]; + ni0lil <= wire_nliii_o[26]; + ni0liO <= ni0lil; + ni0lli <= ni0llO; + ni0lll <= ni0lOi; + ni0llO <= nl0Oi; + ni0lOi <= nl0Ol; + ni0lOl <= ni0O1i; + ni0lOO <= ni0O1l; + ni0O0i <= ni0ii; + ni0O0l <= ni0O0O; + ni0O0O <= (~ n0ill); + ni0O1i <= nl0ll; + ni0O1l <= nl0lO; + ni0O1O <= ni0O0i; + ni0Oil <= wire_ni0Oii_q_b[0]; + ni0OiO <= wire_ni0Oii_q_b[1]; + ni0Oli <= wire_ni0Oii_q_b[2]; + ni0Oll <= wire_ni0Oii_q_b[3]; + ni0OlO <= wire_ni0Oii_q_b[4]; + ni0OOi <= wire_ni0Oii_q_b[5]; + ni0OOl <= wire_ni0Oii_q_b[6]; + ni0OOO <= wire_ni0Oii_q_b[7]; + ni100i <= a[3]; + ni100l <= a[4]; + ni100O <= a[5]; + ni101i <= a[0]; + ni101l <= a[1]; + ni101O <= a[2]; + ni10i <= wire_nii1l_dataout; + ni10ii <= a[6]; + ni10il <= a[7]; + ni10iO <= a[8]; + ni10l <= wire_nii1O_dataout; + ni10li <= a[9]; + ni10ll <= a[10]; + ni10lO <= a[11]; + ni10O <= wire_nii0i_dataout; + ni10Oi <= a[12]; + ni10Ol <= a[13]; + ni10OO <= a[14]; + ni110i <= b[20]; + ni110l <= b[21]; + ni110O <= b[22]; + ni111i <= b[17]; + ni111l <= b[18]; + ni111O <= b[19]; + ni11i <= wire_ni0Ol_dataout; + ni11ii <= b[23]; + ni11il <= b[24]; + ni11iO <= b[25]; + ni11l <= wire_ni0OO_dataout; + ni11li <= b[26]; + ni11ll <= b[27]; + ni11lO <= b[28]; + ni11O <= wire_nii1i_dataout; + ni11Oi <= b[29]; + ni11Ol <= b[30]; + ni11OO <= b[31]; + ni1i0i <= a[18]; + ni1i0l <= a[19]; + ni1i0O <= a[20]; + ni1i1i <= a[15]; + ni1i1l <= a[16]; + ni1i1O <= a[17]; + ni1ii <= wire_nii0l_dataout; + ni1iii <= a[21]; + ni1iil <= a[22]; + ni1iiO <= a[23]; + ni1il <= wire_nii0O_dataout; + ni1ili <= a[24]; + ni1ill <= a[25]; + ni1ilO <= a[26]; + ni1iO <= wire_niiii_dataout; + ni1iOi <= a[27]; + ni1iOl <= a[28]; + ni1iOO <= a[29]; + ni1l0i <= wire_nilO_dataout; + ni1l0l <= n0Olll; + ni1l0O <= n0Ol0i; + ni1l1i <= a[30]; + ni1l1l <= a[31]; + ni1l1O <= wire_nl_dataout; + ni1li <= wire_niiil_dataout; + ni1lii <= wire_niOi_dataout; + ni1lil <= wire_niOl_dataout; + ni1liO <= wire_niOO_dataout; + ni1ll <= wire_niiiO_dataout; + ni1lli <= wire_nl1i_dataout; + ni1lll <= wire_nl1l_dataout; + ni1llO <= wire_nl1O_dataout; + ni1lO <= wire_niili_dataout; + ni1lOi <= wire_nl0i_dataout; + ni1lOl <= wire_nl0l_dataout; + ni1lOO <= wire_nl0O_dataout; + ni1O0i <= wire_nlli_dataout; + ni1O0l <= wire_nlll_dataout; + ni1O0O <= wire_nllO_dataout; + ni1O1i <= wire_nlii_dataout; + ni1O1l <= wire_nlil_dataout; + ni1O1O <= wire_nliO_dataout; + ni1Oi <= wire_niill_dataout; + ni1Oii <= wire_nlOi_dataout; + ni1Oil <= wire_nlOl_dataout; + ni1OiO <= wire_nlOO_dataout; + ni1Ol <= wire_niilO_dataout; + ni1Oli <= wire_n1i_dataout; + ni1Oll <= wire_n1l_dataout; + ni1OlO <= wire_n1O_dataout; + ni1OO <= wire_niiOi_dataout; + ni1OOi <= wire_n0i_dataout; + ni1OOl <= wire_n0l_dataout; + ni1OOO <= n0Olll; + nii00i <= wire_n011i_o[3]; + nii00l <= wire_n011i_o[4]; + nii00O <= wire_n011i_o[5]; + nii01i <= wire_n011i_o[0]; + nii01l <= wire_n011i_o[1]; + nii01O <= wire_n011i_o[2]; + nii0ii <= wire_n011i_o[6]; + nii0il <= wire_n011i_o[7]; + nii0iO <= wire_n011i_o[8]; + nii0li <= wire_n011i_o[9]; + nii0ll <= wire_n011i_o[10]; + nii0lO <= wire_n011i_o[11]; + nii0Oi <= wire_n011i_o[12]; + nii0Ol <= wire_n011i_o[13]; + nii0OO <= wire_n011i_o[14]; + nii10i <= wire_ni0Oii_q_b[11]; + nii10l <= wire_ni0Oii_q_b[12]; + nii10O <= wire_ni0Oii_q_b[13]; + nii11i <= wire_ni0Oii_q_b[8]; + nii11l <= wire_ni0Oii_q_b[9]; + nii11O <= wire_ni0Oii_q_b[10]; + nii1ii <= wire_ni0Oii_q_b[14]; + nii1il <= wire_ni0Oii_q_b[15]; + nii1iO <= wire_ni0Oii_q_b[16]; + nii1li <= wire_ni0Oii_q_b[17]; + nii1ll <= wire_ni0Oii_q_b[18]; + nii1lO <= wire_ni0Oii_q_b[19]; + nii1Oi <= wire_ni0Oii_q_b[20]; + nii1Ol <= wire_ni0Oii_q_b[21]; + nii1OO <= wire_ni0Oii_q_b[22]; + niii0i <= wire_n011i_o[18]; + niii0l <= wire_n011i_o[19]; + niii0O <= wire_n011i_o[20]; + niii1i <= wire_n011i_o[15]; + niii1l <= wire_n011i_o[16]; + niii1O <= wire_n011i_o[17]; + niiiii <= wire_n011i_o[21]; + niiiil <= wire_n011i_o[22]; + niiiiO <= wire_n011i_o[23]; + niiili <= wire_n011i_o[24]; + niiill <= wire_n011i_o[25]; + niiilO <= wire_n011i_o[26]; + niiiOi <= niiiOl; + niiiOl <= niiiOO; + niiiOO <= n0OliO; + niil0i <= ((~ wire_n10OO_dataout) & (~ wire_n10Ol_dataout)); + niil0l <= wire_n10Oi_dataout; + niil0O <= wire_n10OO_dataout; + niil1i <= niil1l; + niil1l <= n0Olil; + niil1O <= n0Olii; + niilii <= n0Ol1O; + niilil <= niiliO; + niiliO <= niilli; + niilli <= niilll; + niilll <= niillO; + niillO <= niilOi; + niilOi <= niilOl; + niilOl <= niilOO; + niilOO <= niiO1i; + niiO0i <= niiO0l; + niiO0l <= niiO0O; + niiO0O <= niiOii; + niiO1i <= ni1l0i; + niiO1l <= n0Ol1l; + niiO1O <= niiO0i; + niiOii <= niiOil; + niiOil <= niiOiO; + niiOiO <= niiOli; + niiOli <= niiO1l; + niiOll <= niiOlO; + niiOlO <= niiOOi; + niiOOi <= niiOOl; + niiOOl <= niiOOO; + niiOOO <= nil11i; + nil00i <= nil00l; + nil00l <= nil00O; + nil00O <= nil0ii; + nil01i <= ((~ nil1Ol) & (~ nil1OO)); + nil01l <= nil01O; + nil01O <= nil00i; + nil0ii <= nil0il; + nil0il <= nil0iO; + nil0iO <= nil0li; + nil0li <= ni1l1O; + nil0ll <= nil0lO; + nil0lO <= nil0Oi; + nil0Oi <= nil0Ol; + nil0Ol <= nil0OO; + nil0OO <= nili1i; + nil10i <= ((~ niiO1O) & niiOll); + nil10O <= wire_nil10l_q_b[0]; + nil11i <= nil11l; + nil11l <= nil11O; + nil11O <= (~ ni1l0O); + nil1ii <= wire_nil10l_q_b[1]; + nil1il <= wire_nil10l_q_b[2]; + nil1iO <= wire_nil10l_q_b[3]; + nil1li <= wire_nil10l_q_b[4]; + nil1ll <= wire_nil10l_q_b[5]; + nil1lO <= wire_nil10l_q_b[6]; + nil1Oi <= wire_nil10l_q_b[7]; + nil1Ol <= n0Ol1i; + nil1OO <= n0OiOO; + nili0i <= ni1l0O; + nili0l <= nil1OO; + nili0O <= n0OiOl; + nili1i <= nili1l; + nili1l <= nili1O; + nili1O <= nili0i; + niliii <= niliil; + niliil <= niliiO; + niliiO <= nilili; + nilili <= nilill; + nilill <= nililO; + nililO <= niliOi; + niliOi <= nili0O; + niliOl <= (niiO1O & niliii); + niliOO <= n0OiOi; + nill0i <= (nil1Ol & nill1i); + nill0l <= ((((nil10i & nil01i) & niilil) & (~ niilii)) | (((((nil0ll & nili0l) & niilil) & nil01l) | ((nil01i & nil0ll) & niilil)) | ((nil01l & niliOl) | (niilil & nill0i)))); + nill0O <= (niiO1O & (~ niliii)); + nill1i <= nill1l; + nill1l <= nill1O; + nill1O <= niliOO; + nillii <= nill0O; + nillil <= (nil1Ol & (~ nill1i)); + nilliO <= nillil; + nillli <= nillll; + nillll <= nilllO; + nilllO <= nillOi; + nillOi <= nillOl; + nillOl <= nillOO; + nillOO <= nilO1i; + nilO0i <= niliOl; + nilO0l <= nill0i; + nilO0O <= ((~ n0Ol0O) & nill0l); + nilO1i <= nilO1l; + nilO1l <= nilO1O; + nilO1O <= ni1l0l; + nilOii <= niO11l; + nilOil <= niO11O; + nilOiO <= niO10i; + nilOli <= niO10l; + nilOll <= niO10O; + nilOlO <= niO1ii; + nilOOi <= niO1il; + nilOOl <= niO1iO; + nilOOO <= niO1li; + niO00i <= nii0il; + niO00l <= nii0iO; + niO00O <= nii0li; + niO01i <= nii00l; + niO01l <= nii00O; + niO01O <= nii0ii; + niO0ii <= niOl1O; + niO0il <= niOl0i; + niO0iO <= niOl0l; + niO0li <= niOl0O; + niO0ll <= niOlii; + niO0lO <= niOlil; + niO0Oi <= niOliO; + niO0Ol <= niOlli; + niO0OO <= niOlll; + niO10i <= niO1Ol; + niO10l <= niO1OO; + niO10O <= niO01i; + niO11i <= niO1ll; + niO11l <= niO1lO; + niO11O <= niO1Oi; + niO1ii <= niO01l; + niO1il <= niO01O; + niO1iO <= niO00i; + niO1li <= niO00l; + niO1ll <= niO00O; + niO1lO <= nii01i; + niO1Oi <= nii01l; + niO1Ol <= nii01O; + niO1OO <= nii00i; + niOi0i <= niOlOO; + niOi0l <= niOO1i; + niOi0O <= niOO1l; + niOi1i <= niOllO; + niOi1l <= niOlOi; + niOi1O <= niOlOl; + niOiii <= niOO1O; + niOiil <= niOO0i; + niOiiO <= niOO0l; + niOili <= niOO0O; + niOill <= niOOii; + niOilO <= niOOil; + niOiOi <= niOOiO; + niOiOl <= niOOli; + niOiOO <= niOOll; + niOl0i <= niOOOO; + niOl0l <= nl111i; + niOl0O <= nl111l; + niOl1i <= niOOlO; + niOl1l <= niOOOi; + niOl1O <= niOOOl; + niOlii <= nl111O; + niOlil <= nl110i; + niOliO <= nl110l; + niOlli <= nl110O; + niOlll <= nl11ii; + niOllO <= nl11il; + niOlOi <= nl11iO; + niOlOl <= nl11li; + niOlOO <= nl11ll; + niOO0i <= nl11OO; + niOO0l <= nl101i; + niOO0O <= nl101l; + niOO1i <= nl11lO; + niOO1l <= nl11Oi; + niOO1O <= nl11Ol; + niOOii <= nl101O; + niOOil <= nl100i; + niOOiO <= nl100l; + niOOli <= nl100O; + niOOll <= nl10ii; + niOOlO <= nl10il; + niOOOi <= nl10iO; + niOOOl <= nii01i; + niOOOO <= nii01l; + nl010i <= wire_nlli1l_dataout; + nl010l <= wire_nlli1O_dataout; + nl010O <= wire_nlli0i_dataout; + nl011i <= wire_nll0Ol_dataout; + nl011l <= wire_nll0OO_dataout; + nl011O <= wire_nlli1i_dataout; + nl01ii <= wire_nlli0l_dataout; + nl01il <= wire_nlli0O_dataout; + nl01iO <= wire_nlliii_dataout; + nl01li <= wire_nlliil_dataout; + nl01ll <= wire_nlliiO_dataout; + nl01lO <= wire_nllili_dataout; + nl01Oi <= wire_nllill_dataout; + nl01Ol <= wire_nllilO_dataout; + nl0ll <= wire_nli0O_o[2]; + nl0lO <= wire_nli0O_o[3]; + nl0Oi <= wire_nli0O_o[4]; + nl0Ol <= wire_nli0O_o[5]; + nl0OO <= wire_nli0O_o[6]; + nl100i <= niii0O; + nl100l <= niiiii; + nl100O <= niiiil; + nl101i <= niii1O; + nl101l <= niii0i; + nl101O <= niii0l; + nl10ii <= niiiiO; + nl10il <= niiili; + nl10iO <= niiill; + nl10li <= (~ wire_n10lO_dataout); + nl10ll <= nl1i0i; + nl10lO <= nl1i0l; + nl10Oi <= nl1i0O; + nl10Ol <= nl1iii; + nl10OO <= nl1iil; + nl110i <= nii00O; + nl110l <= nii0ii; + nl110O <= nii0il; + nl111i <= nii01O; + nl111l <= nii00i; + nl111O <= nii00l; + nl11ii <= nii0iO; + nl11il <= nii0li; + nl11iO <= nii0ll; + nl11li <= nii0lO; + nl11ll <= nii0Oi; + nl11lO <= nii0Ol; + nl11Oi <= nii0OO; + nl11Ol <= niii1i; + nl11OO <= niii1l; + nl1i0i <= nllO0O; + nl1i0l <= nlOilO; + nl1i0O <= nlOiOi; + nl1i1i <= nl1iiO; + nl1i1l <= nl1ili; + nl1i1O <= nl1ill; + nl1iii <= nlOiOl; + nl1iil <= nlOiOO; + nl1iiO <= nlOl1i; + nl1ili <= nlOl1l; + nl1ill <= nlOl1O; + nl1ilO <= n0OilO; + nl1iOi <= n0Ol0l; + nl1iOl <= nl1Oii; + nl1iOO <= nl1Oil; + nl1l0i <= nl1OlO; + nl1l0l <= nl1OOi; + nl1l0O <= nl1OOl; + nl1l1i <= nl1OiO; + nl1l1l <= nl1Oli; + nl1l1O <= nl1Oll; + nl1lii <= nl1OOO; + nl1lil <= nl011i; + nl1liO <= nl011l; + nl1lli <= nl011O; + nl1lll <= nl010i; + nl1llO <= nl010l; + nl1lOi <= nl010O; + nl1lOl <= nl01ii; + nl1lOO <= nl01il; + nl1O0i <= nl01lO; + nl1O0l <= nl01Oi; + nl1O0O <= nl01Ol; + nl1O1i <= nl01iO; + nl1O1l <= nl01li; + nl1O1O <= nl01ll; + nl1Oii <= wire_nll00l_dataout; + nl1Oil <= wire_nll00O_dataout; + nl1OiO <= wire_nll0ii_dataout; + nl1Oli <= wire_nll0il_dataout; + nl1Oll <= wire_nll0iO_dataout; + nl1OlO <= wire_nll0li_dataout; + nl1OOi <= wire_nll0ll_dataout; + nl1OOl <= wire_nll0lO_dataout; + nl1OOO <= wire_nll0Oi_dataout; + nli0l <= wire_nO_o[33]; + nli1i <= wire_nli0O_o[7]; + nli1l <= wire_nli0O_o[8]; + nli1O <= wire_nli0O_o[9]; + nll1li <= wire_nll1Oi_o; + nll1ll <= wire_nll1OO_o; + nll1Ol <= wire_nllOii_o; + nlliOi <= wire_nllOil_o; + nlliOl <= wire_nllOiO_o; + nlliOO <= wire_nllOli_o; + nlll0i <= wire_nllOOl_o; + nlll0l <= wire_nllOOO_o; + nlll0O <= wire_nlO11i_o; + nlll1i <= wire_nllOll_o; + nlll1l <= wire_nllOlO_o; + nlll1O <= wire_nllOOi_o; + nlllii <= wire_nlO11l_o; + nlllil <= wire_nlO11O_o; + nllliO <= wire_nlO10i_o; + nlllli <= wire_nlO10l_o; + nlllll <= wire_nlO10O_o; + nllllO <= wire_nlO1ii_o; + nlllOi <= wire_nlO1il_o; + nlllOl <= wire_nlO1iO_o; + nlllOO <= wire_nlO1li_o; + nllO0i <= wire_nlO1Ol_o; + nllO0l <= wire_nlO1OO_o; + nllO0O <= wire_nlOlii_o[1]; + nllO1i <= wire_nlO1ll_o; + nllO1l <= wire_nlO1lO_o; + nllO1O <= wire_nlO1Oi_o; + nlOilO <= wire_nlOlii_o[2]; + nlOiOi <= wire_nlOlii_o[3]; + nlOiOl <= wire_nlOlii_o[4]; + nlOiOO <= wire_nlOlii_o[5]; + nlOl0i <= wire_nlOlii_o[9]; + nlOl0l <= wire_nlOlii_o[10]; + nlOl0O <= wire_nlOO1l_o[0]; + nlOl1i <= wire_nlOlii_o[6]; + nlOl1l <= wire_nlOlii_o[7]; + nlOl1O <= wire_nlOlii_o[8]; + nlOlil <= wire_nlOO1l_o[1]; + nlOliO <= wire_nlOO1l_o[2]; + nlOlli <= wire_nlOO1l_o[3]; + nlOlll <= wire_nlOO1l_o[4]; + nlOllO <= wire_nlOO1l_o[5]; + nlOlOi <= wire_nlOO1l_o[6]; + nlOlOl <= wire_nlOO1l_o[7]; + nlOlOO <= wire_nlOO1l_o[8]; + end + end + assign wire_n00i_dataout = (nli0l === 1'b1) ? n0OOii : ni10iO; + assign wire_n00l_dataout = (nli0l === 1'b1) ? n0OOil : ni10li; + assign wire_n00O_dataout = (nli0l === 1'b1) ? n0OOiO : ni10ll; + assign wire_n01i_dataout = (nli0l === 1'b1) ? n0OO0i : ni100O; + assign wire_n01iO_dataout = (n010i === 1'b1) ? wire_n01ll_o[0] : wire_n01li_o[1]; + assign wire_n01l_dataout = (nli0l === 1'b1) ? n0OO0l : ni10ii; + assign wire_n01O_dataout = (nli0l === 1'b1) ? n0OO0O : ni10il; + or(wire_n01Oi_dataout, n01lO, n01il); + assign wire_n0i_dataout = (nli0l === 1'b1) ? ni1iii : ni110l; + assign wire_n0ii_dataout = (nli0l === 1'b1) ? n0OOli : ni10lO; + assign wire_n0il_dataout = (nli0l === 1'b1) ? n0OOll : ni10Oi; + assign wire_n0ilO_dataout = ((~ ni0O0l) === 1'b1) ? n0OiO : ni0liO; + assign wire_n0iO_dataout = (nli0l === 1'b1) ? n0OOlO : ni10Ol; + assign wire_n0iOi_dataout = ((~ ni0O0l) === 1'b1) ? n0Oll : ni0liO; + assign wire_n0iOl_dataout = ((~ ni0O0l) === 1'b1) ? n0OlO : ni0liO; + assign wire_n0iOO_dataout = ((~ ni0O0l) === 1'b1) ? n0OOi : ni0liO; + assign wire_n0l_dataout = (nli0l === 1'b1) ? ni1iil : ni110O; + assign wire_n0l0i_dataout = ((~ ni0O0l) === 1'b1) ? ni11l : ni0liO; + assign wire_n0l0l_dataout = ((~ ni0O0l) === 1'b1) ? ni11O : ni0liO; + assign wire_n0l0O_dataout = ((~ ni0O0l) === 1'b1) ? ni10i : ni0liO; + assign wire_n0l1i_dataout = ((~ ni0O0l) === 1'b1) ? n0OOl : ni0liO; + assign wire_n0l1l_dataout = ((~ ni0O0l) === 1'b1) ? n0OOO : ni0liO; + assign wire_n0l1O_dataout = ((~ ni0O0l) === 1'b1) ? ni11i : ni0liO; + assign wire_n0li_dataout = (nli0l === 1'b1) ? n0OOOi : ni10OO; + assign wire_n0lii_dataout = ((~ ni0O0l) === 1'b1) ? ni10l : ni0liO; + assign wire_n0lil_dataout = ((~ ni0O0l) === 1'b1) ? ni10O : ni0liO; + assign wire_n0liO_dataout = ((~ ni0O0l) === 1'b1) ? ni1ii : ni0liO; + assign wire_n0ll_dataout = (nli0l === 1'b1) ? n0OOOl : ni1i1i; + assign wire_n0lli_dataout = ((~ ni0O0l) === 1'b1) ? ni1il : ni0liO; + assign wire_n0lll_dataout = ((~ ni0O0l) === 1'b1) ? ni1iO : ni0liO; + assign wire_n0llO_dataout = ((~ ni0O0l) === 1'b1) ? ni1li : ni0liO; + assign wire_n0lO_dataout = (nli0l === 1'b1) ? n0OOOO : ni1i1l; + assign wire_n0lOi_dataout = ((~ ni0O0l) === 1'b1) ? ni1ll : ni0liO; + assign wire_n0lOl_dataout = ((~ ni0O0l) === 1'b1) ? ni1lO : ni0liO; + assign wire_n0lOO_dataout = ((~ ni0O0l) === 1'b1) ? ni1Oi : ni0liO; + assign wire_n0O_dataout = (nli0l === 1'b1) ? ni1iiO : ni11ii; + assign wire_n0O0i_dataout = ((~ ni0O0l) === 1'b1) ? ni01l : ni0liO; + assign wire_n0O0l_dataout = ((~ ni0O0l) === 1'b1) ? ni01O : ni0liO; + assign wire_n0O0O_dataout = ((~ ni0O0l) === 1'b1) ? ni00i : ni0liO; + assign wire_n0O1i_dataout = ((~ ni0O0l) === 1'b1) ? ni1Ol : ni0liO; + assign wire_n0O1l_dataout = ((~ ni0O0l) === 1'b1) ? ni1OO : ni0liO; + assign wire_n0O1O_dataout = ((~ ni0O0l) === 1'b1) ? ni01i : ni0liO; + assign wire_n0Oi_dataout = (nli0l === 1'b1) ? ni111i : ni1i1O; + assign wire_n0Oii_dataout = ((~ ni0O0l) === 1'b1) ? ni00l : ni0liO; + assign wire_n0Oil_dataout = ((~ ni0O0l) === 1'b1) ? ni00O : ni0liO; + assign wire_n0Ol_dataout = (nli0l === 1'b1) ? ni111l : ni1i0i; + assign wire_n0OO_dataout = (nli0l === 1'b1) ? ni111O : ni1i0l; + assign wire_n100i_dataout = (n11Ol === 1'b1) ? wire_n10il_o[0] : wire_n10ii_o[0]; + assign wire_n100l_dataout = (n11Ol === 1'b1) ? wire_n10il_o[1] : wire_n10ii_o[1]; + assign wire_n100O_dataout = (n11Ol === 1'b1) ? wire_n10il_o[2] : wire_n10ii_o[2]; + and(wire_n10i_dataout, ni1OiO, (~ ni1l0O)); + and(wire_n10l_dataout, ni1Oli, (~ ni1l0O)); + or(wire_n10li_dataout, n10iO, n101O); + assign wire_n10lO_dataout = ((~ niil0i) === 1'b1) ? niil0O : niil0l; + and(wire_n10O_dataout, ni1Oll, (~ ni1l0O)); + assign wire_n10Oi_dataout = ((~ n0Olii) === 1'b1) ? n1i0l : n1i1i; + assign wire_n10Ol_dataout = ((~ n0Olii) === 1'b1) ? n1i0O : n1i1l; + assign wire_n10OO_dataout = ((~ n0Olii) === 1'b1) ? n1iii : n1i1O; + and(wire_n11i_dataout, ni1O0O, (~ ni1l0O)); + and(wire_n11l_dataout, ni1Oii, (~ ni1l0O)); + and(wire_n11O_dataout, ni1Oil, (~ ni1l0O)); + assign wire_n1i_dataout = (nli0l === 1'b1) ? ni1i0i : ni111l; + and(wire_n1ii_dataout, ni1OlO, (~ ni1l0O)); + assign wire_n1iil_dataout = ((~ n0Olil) === 1'b1) ? n1lil : n1iOO; + assign wire_n1iiO_dataout = ((~ n0Olil) === 1'b1) ? n1liO : n1l1i; + and(wire_n1il_dataout, ni1OOi, (~ ni1l0O)); + assign wire_n1ili_dataout = ((~ n0Olil) === 1'b1) ? n1lli : n1l1l; + assign wire_n1ill_dataout = ((~ n0Olil) === 1'b1) ? n1lll : n1l1O; + assign wire_n1ilO_dataout = ((~ n0Olil) === 1'b1) ? n1llO : n1l0i; + and(wire_n1iO_dataout, ni1OOl, (~ ni1l0O)); + assign wire_n1iOi_dataout = ((~ n0Olil) === 1'b1) ? n1lOi : n1l0l; + assign wire_n1iOl_dataout = ((~ n0Olil) === 1'b1) ? n1lOl : n1l0O; + assign wire_n1l_dataout = (nli0l === 1'b1) ? ni1i0l : ni111O; + assign wire_n1ll_dataout = (nli0l === 1'b1) ? n0OlOl : ni101i; + assign wire_n1lO_dataout = (nli0l === 1'b1) ? n0OlOO : ni101l; + assign wire_n1O_dataout = (nli0l === 1'b1) ? ni1i0O : ni110i; + or(wire_n1O0i_dataout, niii1i, ~((~ n0OliO))); + assign wire_n1O0l_dataout = ((~ n0OliO) === 1'b1) ? niii1l : nii01i; + assign wire_n1O0O_dataout = ((~ n0OliO) === 1'b1) ? niii1O : nii01l; + or(wire_n1O1i_dataout, nii0Oi, ~((~ n0OliO))); + or(wire_n1O1l_dataout, nii0Ol, ~((~ n0OliO))); + or(wire_n1O1O_dataout, nii0OO, ~((~ n0OliO))); + assign wire_n1Oi_dataout = (nli0l === 1'b1) ? n0OO1i : ni101O; + assign wire_n1Oii_dataout = ((~ n0OliO) === 1'b1) ? niii0i : nii01O; + assign wire_n1Oil_dataout = ((~ n0OliO) === 1'b1) ? niii0l : nii00i; + assign wire_n1OiO_dataout = ((~ n0OliO) === 1'b1) ? niii0O : nii00l; + assign wire_n1Ol_dataout = (nli0l === 1'b1) ? n0OO1l : ni100i; + assign wire_n1Oli_dataout = ((~ n0OliO) === 1'b1) ? niiiii : nii00O; + assign wire_n1Oll_dataout = ((~ n0OliO) === 1'b1) ? niiiil : nii0ii; + assign wire_n1OlO_dataout = ((~ n0OliO) === 1'b1) ? niiiiO : nii0il; + assign wire_n1OO_dataout = (nli0l === 1'b1) ? n0OO1O : ni100l; + assign wire_n1OOi_dataout = ((~ n0OliO) === 1'b1) ? niiili : nii0iO; + assign wire_n1OOl_dataout = ((~ n0OliO) === 1'b1) ? niiill : nii0li; + assign wire_n1OOO_dataout = ((~ n0OliO) === 1'b1) ? niiilO : nii0ll; + assign wire_ni_dataout = (nli0l === 1'b1) ? ni1l1i : ni11Ol; + assign wire_ni0i_dataout = (nli0l === 1'b1) ? ni11ii : ni1iiO; + assign wire_ni0il_dataout = ((~ ni0O1O) === 1'b1) ? wire_nil0i_o : wire_nil0l_o; + assign wire_ni0iO_dataout = ((~ ni0O1O) === 1'b1) ? wire_nil0l_o : wire_nil0O_o; + assign wire_ni0l_dataout = (nli0l === 1'b1) ? ni11il : ni1ili; + assign wire_ni0li_dataout = ((~ ni0O1O) === 1'b1) ? wire_nil0O_o : wire_nilii_o; + assign wire_ni0ll_dataout = ((~ ni0O1O) === 1'b1) ? wire_nilii_o : wire_nilil_o; + assign wire_ni0lO_dataout = ((~ ni0O1O) === 1'b1) ? wire_nilil_o : wire_niliO_o; + assign wire_ni0O_dataout = (nli0l === 1'b1) ? ni11iO : ni1ill; + assign wire_ni0Oi_dataout = ((~ ni0O1O) === 1'b1) ? wire_niliO_o : wire_nilli_o; + assign wire_ni0Ol_dataout = ((~ ni0O1O) === 1'b1) ? wire_nilli_o : wire_nilll_o; + assign wire_ni0OO_dataout = ((~ ni0O1O) === 1'b1) ? wire_nilll_o : wire_nillO_o; + assign wire_ni1i_dataout = (nli0l === 1'b1) ? ni110i : ni1i0O; + assign wire_ni1l_dataout = (nli0l === 1'b1) ? ni110l : ni1iii; + assign wire_ni1O_dataout = (nli0l === 1'b1) ? ni110O : ni1iil; + assign wire_nii_dataout = (nli0l === 1'b1) ? ni1ili : ni11il; + assign wire_nii0i_dataout = ((~ ni0O1O) === 1'b1) ? wire_nilOO_o : wire_niO1i_o; + assign wire_nii0l_dataout = ((~ ni0O1O) === 1'b1) ? wire_niO1i_o : wire_niO1l_o; + assign wire_nii0O_dataout = ((~ ni0O1O) === 1'b1) ? wire_niO1l_o : wire_niO1O_o; + assign wire_nii1i_dataout = ((~ ni0O1O) === 1'b1) ? wire_nillO_o : wire_nilOi_o; + assign wire_nii1l_dataout = ((~ ni0O1O) === 1'b1) ? wire_nilOi_o : wire_nilOl_o; + assign wire_nii1O_dataout = ((~ ni0O1O) === 1'b1) ? wire_nilOl_o : wire_nilOO_o; + assign wire_niii_dataout = (nli0l === 1'b1) ? ni11li : ni1ilO; + assign wire_niiii_dataout = ((~ ni0O1O) === 1'b1) ? wire_niO1O_o : wire_niO0i_o; + assign wire_niiil_dataout = ((~ ni0O1O) === 1'b1) ? wire_niO0i_o : wire_niO0l_o; + assign wire_niiiO_dataout = ((~ ni0O1O) === 1'b1) ? wire_niO0l_o : wire_niO0O_o; + assign wire_niil_dataout = (nli0l === 1'b1) ? ni11ll : ni1iOi; + assign wire_niili_dataout = ((~ ni0O1O) === 1'b1) ? wire_niO0O_o : wire_niOii_o; + assign wire_niill_dataout = ((~ ni0O1O) === 1'b1) ? wire_niOii_o : wire_niOil_o; + assign wire_niilO_dataout = ((~ ni0O1O) === 1'b1) ? wire_niOil_o : wire_niOiO_o; + assign wire_niiO_dataout = (nli0l === 1'b1) ? ni11lO : ni1iOl; + assign wire_niiOi_dataout = ((~ ni0O1O) === 1'b1) ? wire_niOiO_o : wire_niOli_o; + assign wire_niiOl_dataout = ((~ ni0O1O) === 1'b1) ? wire_niOli_o : wire_niOll_o; + assign wire_niiOO_dataout = ((~ ni0O1O) === 1'b1) ? wire_niOll_o : wire_niOlO_o; + assign wire_nil_dataout = (nli0l === 1'b1) ? ni1ill : ni11iO; + assign wire_nil1i_dataout = ((~ ni0O1O) === 1'b1) ? wire_niOlO_o : wire_niOOi_o; + assign wire_nil1l_dataout = ((~ ni0O1O) === 1'b1) ? wire_niOOi_o : wire_niOOl_o; + assign wire_nil1O_dataout = ((~ ni0O1O) === 1'b1) ? wire_niOOl_o : ni0lil; + assign wire_nili_dataout = (nli0l === 1'b1) ? ni11Oi : ni1iOO; + assign wire_nill_dataout = (nli0l === 1'b1) ? ni11Ol : ni1l1i; + assign wire_nilO_dataout = (nli0l === 1'b1) ? ni11OO : ni1l1l; + assign wire_niO_dataout = (nli0l === 1'b1) ? ni1ilO : ni11li; + assign wire_niOi_dataout = (nli0l === 1'b1) ? ni101i : n0OlOl; + assign wire_niOl_dataout = (nli0l === 1'b1) ? ni101l : n0OlOO; + assign wire_niOO_dataout = (nli0l === 1'b1) ? ni101O : n0OO1i; + assign wire_nl_dataout = (nli0l === 1'b1) ? ni1l1l : ni11OO; + assign wire_nl0i_dataout = (nli0l === 1'b1) ? ni10ii : n0OO0l; + assign wire_nl0l_dataout = (nli0l === 1'b1) ? ni10il : n0OO0O; + assign wire_nl0O_dataout = (nli0l === 1'b1) ? ni10iO : n0OOii; + assign wire_nl1i_dataout = (nli0l === 1'b1) ? ni100i : n0OO1l; + assign wire_nl1l_dataout = (nli0l === 1'b1) ? ni100l : n0OO1O; + assign wire_nl1O_dataout = (nli0l === 1'b1) ? ni100O : n0OO0i; + assign wire_nli_dataout = (nli0l === 1'b1) ? ni1iOi : ni11ll; + assign wire_nlii_dataout = (nli0l === 1'b1) ? ni10li : n0OOil; + assign wire_nlil_dataout = (nli0l === 1'b1) ? ni10ll : n0OOiO; + assign wire_nliO_dataout = (nli0l === 1'b1) ? ni10lO : n0OOli; + assign wire_nll_dataout = (nli0l === 1'b1) ? ni1iOl : ni11lO; + assign wire_nll00l_dataout = ((~ nl10li) === 1'b1) ? nlliOi : nll1Ol; + assign wire_nll00O_dataout = ((~ nl10li) === 1'b1) ? nlliOl : nlliOi; + assign wire_nll0ii_dataout = ((~ nl10li) === 1'b1) ? nlliOO : nlliOl; + assign wire_nll0il_dataout = ((~ nl10li) === 1'b1) ? nlll1i : nlliOO; + assign wire_nll0iO_dataout = ((~ nl10li) === 1'b1) ? nlll1l : nlll1i; + assign wire_nll0li_dataout = ((~ nl10li) === 1'b1) ? nlll1O : nlll1l; + assign wire_nll0ll_dataout = ((~ nl10li) === 1'b1) ? nlll0i : nlll1O; + assign wire_nll0lO_dataout = ((~ nl10li) === 1'b1) ? nlll0l : nlll0i; + assign wire_nll0Oi_dataout = ((~ nl10li) === 1'b1) ? nlll0O : nlll0l; + assign wire_nll0Ol_dataout = ((~ nl10li) === 1'b1) ? nlllii : nlll0O; + assign wire_nll0OO_dataout = ((~ nl10li) === 1'b1) ? nlllil : nlllii; + assign wire_nlli_dataout = (nli0l === 1'b1) ? ni10Oi : n0OOll; + assign wire_nlli0i_dataout = ((~ nl10li) === 1'b1) ? nllllO : nlllll; + assign wire_nlli0l_dataout = ((~ nl10li) === 1'b1) ? nlllOi : nllllO; + assign wire_nlli0O_dataout = ((~ nl10li) === 1'b1) ? nlllOl : nlllOi; + assign wire_nlli1i_dataout = ((~ nl10li) === 1'b1) ? nllliO : nlllil; + assign wire_nlli1l_dataout = ((~ nl10li) === 1'b1) ? nlllli : nllliO; + assign wire_nlli1O_dataout = ((~ nl10li) === 1'b1) ? nlllll : nlllli; + assign wire_nlliii_dataout = ((~ nl10li) === 1'b1) ? nlllOO : nlllOl; + assign wire_nlliil_dataout = ((~ nl10li) === 1'b1) ? nllO1i : nlllOO; + assign wire_nlliiO_dataout = ((~ nl10li) === 1'b1) ? nllO1l : nllO1i; + assign wire_nllili_dataout = ((~ nl10li) === 1'b1) ? nllO1O : nllO1l; + assign wire_nllill_dataout = ((~ nl10li) === 1'b1) ? nllO0i : nllO1O; + assign wire_nllilO_dataout = ((~ nl10li) === 1'b1) ? nllO0l : nllO0i; + assign wire_nlll_dataout = (nli0l === 1'b1) ? ni10Ol : n0OOlO; + assign wire_nllO_dataout = (nli0l === 1'b1) ? ni10OO : n0OOOi; + assign wire_nlO_dataout = (nli0l === 1'b1) ? ni1iOO : ni11Oi; + and(wire_nlO0i_dataout, ni1liO, (~ ni1l0O)); + and(wire_nlO0l_dataout, ni1lli, (~ ni1l0O)); + and(wire_nlO0O_dataout, ni1lll, (~ ni1l0O)); + and(wire_nlO1l_dataout, ni1lii, (~ ni1l0O)); + and(wire_nlO1O_dataout, ni1lil, (~ ni1l0O)); + assign wire_nlOi_dataout = (nli0l === 1'b1) ? ni1i1i : n0OOOl; + and(wire_nlOii_dataout, ni1llO, (~ ni1l0O)); + and(wire_nlOil_dataout, ni1lOi, (~ ni1l0O)); + and(wire_nlOiO_dataout, ni1lOl, (~ ni1l0O)); + assign wire_nlOl_dataout = (nli0l === 1'b1) ? ni1i1l : n0OOOO; + and(wire_nlOli_dataout, ni1lOO, (~ ni1l0O)); + and(wire_nlOll_dataout, ni1O1i, (~ ni1l0O)); + and(wire_nlOlO_dataout, ni1O1l, (~ ni1l0O)); + assign wire_nlOO_dataout = (nli0l === 1'b1) ? ni1i1O : ni111i; + and(wire_nlOOi_dataout, ni1O1O, (~ ni1l0O)); + and(wire_nlOOl_dataout, ni1O0i, (~ ni1l0O)); + and(wire_nlOOO_dataout, ni1O0l, (~ ni1l0O)); + oper_add n011i + ( + .a({{2{1'b0}}, 1'b1, nii1OO, nii1Ol, nii1Oi, nii1lO, nii1ll, nii1li, nii1iO, nii1il, nii1ii, nii10O, nii10l, nii10i, nii11O, nii11l, nii11i, ni0OOO, ni0OOl, ni0OOi, ni0OlO, ni0Oll, ni0Oli, ni0OiO, ni0Oil, {2{1'b0}}}), + .b({{2{n0ili}}, n0iiO, n0iil, n0iii, n0i0O, n0i0l, n0i0i, n0i1O, n0i1l, n0i1i, n00OO, n00Ol, n00Oi, n00lO, n00ll, n00li, n00iO, n00il, n00ii, n000O, n000l, n000i, n001O, n001l, n001i, n01OO, n01Ol}), + .cin(1'b0), + .cout(), + .o(wire_n011i_o)); + defparam + n011i.sgate_representation = 0, + n011i.width_a = 28, + n011i.width_b = 28, + n011i.width_o = 28; + oper_add n01li + ( + .a({n01ii, n010O}), + .b({1'b0, 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_n01li_o)); + defparam + n01li.sgate_representation = 0, + n01li.width_a = 2, + n01li.width_b = 2, + n01li.width_o = 2; + oper_add n01ll + ( + .a({n01ii}), + .b({1'b1}), + .cin(1'b0), + .cout(), + .o(wire_n01ll_o)); + defparam + n01ll.sgate_representation = 0, + n01ll.width_a = 1, + n01ll.width_b = 1, + n01ll.width_o = 1; + oper_add n0Oli + ( + .a({{2{1'b0}}, nli1O, nli1l, nli1i, nl0OO, nl0Ol, nl0Oi, nl0lO, nl0ll, ni0ii, 1'b1}), + .b({{6{1'b1}}, {2{1'b0}}, 1'b1, {2{1'b0}}, 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_n0Oli_o)); + defparam + n0Oli.sgate_representation = 0, + n0Oli.width_a = 12, + n0Oli.width_b = 12, + n0Oli.width_o = 12; + oper_add n10ii + ( + .a({n101l, n101i, n11OO}), + .b({{2{1'b0}}, 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_n10ii_o)); + defparam + n10ii.sgate_representation = 0, + n10ii.width_a = 3, + n10ii.width_b = 3, + n10ii.width_o = 3; + oper_add n10il + ( + .a({n101l, n101i, n11OO}), + .b({1'b0, {2{1'b1}}}), + .cin(1'b0), + .cout(), + .o(wire_n10il_o)); + defparam + n10il.sgate_representation = 0, + n10il.width_a = 3, + n10il.width_b = 3, + n10il.width_o = 3; + oper_add nli0O + ( + .a({1'b0, wire_nill_dataout, wire_nili_dataout, wire_niiO_dataout, wire_niil_dataout, wire_niii_dataout, wire_ni0O_dataout, wire_ni0l_dataout, wire_ni0i_dataout, 1'b1}), + .b({1'b1, (~ wire_ni_dataout), (~ wire_nlO_dataout), (~ wire_nll_dataout), (~ wire_nli_dataout), (~ wire_niO_dataout), (~ wire_nil_dataout), (~ wire_nii_dataout), (~ wire_n0O_dataout), 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_nli0O_o)); + defparam + nli0O.sgate_representation = 0, + nli0O.width_a = 10, + nli0O.width_b = 10, + nli0O.width_o = 10; + oper_add nliii + ( + .a({1'b0, ni00ll, ni00li, ni00iO, ni00il, ni00ii, ni000O, ni000l, ni000i, ni001O, ni001l, ni001i, ni01OO, ni01Ol, ni01Oi, ni01lO, ni01ll, ni01li, ni01iO, ni01il, ni01ii, ni010O, ni010l, ni010i, ni011O, ni011l, ni011i, ni1OOO}), + .b({{27{1'b0}}, ni1l0l}), + .cin(1'b0), + .cout(), + .o(wire_nliii_o)); + defparam + nliii.sgate_representation = 0, + nliii.width_a = 28, + nliii.width_b = 28, + nliii.width_o = 28; + oper_add nlOlii + ( + .a({1'b0, nlOlOO, nlOlOl, nlOlOi, nlOllO, nlOlll, nlOlli, nlOliO, nlOlil, nlOl0O, 1'b1}), + .b({{5{1'b1}}, (~ niiiOi), (~ niil1i), (~ niil1O), (~ niil0i), wire_n10lO_dataout, 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_nlOlii_o)); + defparam + nlOlii.sgate_representation = 0, + nlOlii.width_a = 11, + nlOlii.width_b = 11, + nlOlii.width_o = 11; + oper_add nlOO1l + ( + .a({1'b0, nil1Oi, nil1lO, nil1ll, nil1li, nil1iO, nil1il, nil1ii, nil10O}), + .b({{8{1'b0}}, 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_nlOO1l_o)); + defparam + nlOO1l.sgate_representation = 0, + nlOO1l.width_a = 9, + nlOO1l.width_b = 9, + nlOO1l.width_o = 9; + oper_add nO + ( + .a({{2{1'b0}}, a[30:0], 1'b1}), + .b({{2{1'b1}}, (~ b[30]), (~ b[29]), (~ b[28]), (~ b[27]), (~ b[26]), (~ b[25]), (~ b[24]), (~ b[23]), (~ b[22]), (~ b[21]), (~ b[20]), (~ b[19]), (~ b[18]), (~ b[17]), (~ b[16]), (~ b[15]), (~ b[14]), (~ b[13]), (~ b[12]), (~ b[11]), (~ b[10]), (~ b[9]), (~ b[8]), (~ b[7]), (~ b[6]), (~ b[5]), (~ b[4]), (~ b[3]), (~ b[2]), (~ b[1]), (~ b[0]), 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_nO_o)); + defparam + nO.sgate_representation = 0, + nO.width_a = 34, + nO.width_b = 34, + nO.width_o = 34; + oper_mux nil0i + ( + .data({wire_nl10O_o, wire_nl10i_o, wire_nl11l_o, wire_niOOO_o}), + .o(wire_nil0i_o), + .sel({ni0lOO, ni0lOl})); + defparam + nil0i.width_data = 4, + nil0i.width_sel = 2; + oper_mux nil0l + ( + .data({wire_nl1ii_o, wire_nl10l_o, wire_nl11O_o, wire_nl11i_o}), + .o(wire_nil0l_o), + .sel({ni0lOO, ni0lOl})); + defparam + nil0l.width_data = 4, + nil0l.width_sel = 2; + oper_mux nil0O + ( + .data({wire_nl1il_o, wire_nl10O_o, wire_nl10i_o, wire_nl11l_o}), + .o(wire_nil0O_o), + .sel({ni0lOO, ni0lOl})); + defparam + nil0O.width_data = 4, + nil0O.width_sel = 2; + oper_mux nilii + ( + .data({wire_nl1iO_o, wire_nl1ii_o, wire_nl10l_o, wire_nl11O_o}), + .o(wire_nilii_o), + .sel({ni0lOO, ni0lOl})); + defparam + nilii.width_data = 4, + nilii.width_sel = 2; + oper_mux nilil + ( + .data({wire_nl1li_o, wire_nl1il_o, wire_nl10O_o, wire_nl10i_o}), + .o(wire_nilil_o), + .sel({ni0lOO, ni0lOl})); + defparam + nilil.width_data = 4, + nilil.width_sel = 2; + oper_mux niliO + ( + .data({wire_nl1ll_o, wire_nl1iO_o, wire_nl1ii_o, wire_nl10l_o}), + .o(wire_niliO_o), + .sel({ni0lOO, ni0lOl})); + defparam + niliO.width_data = 4, + niliO.width_sel = 2; + oper_mux nilli + ( + .data({wire_nl1lO_o, wire_nl1li_o, wire_nl1il_o, wire_nl10O_o}), + .o(wire_nilli_o), + .sel({ni0lOO, ni0lOl})); + defparam + nilli.width_data = 4, + nilli.width_sel = 2; + oper_mux nilll + ( + .data({wire_nl1Oi_o, wire_nl1ll_o, wire_nl1iO_o, wire_nl1ii_o}), + .o(wire_nilll_o), + .sel({ni0lOO, ni0lOl})); + defparam + nilll.width_data = 4, + nilll.width_sel = 2; + oper_mux nillO + ( + .data({wire_nl1Ol_o, wire_nl1lO_o, wire_nl1li_o, wire_nl1il_o}), + .o(wire_nillO_o), + .sel({ni0lOO, ni0lOl})); + defparam + nillO.width_data = 4, + nillO.width_sel = 2; + oper_mux nilOi + ( + .data({wire_nl1OO_o, wire_nl1Oi_o, wire_nl1ll_o, wire_nl1iO_o}), + .o(wire_nilOi_o), + .sel({ni0lOO, ni0lOl})); + defparam + nilOi.width_data = 4, + nilOi.width_sel = 2; + oper_mux nilOl + ( + .data({wire_nl01i_o, wire_nl1Ol_o, wire_nl1lO_o, wire_nl1li_o}), + .o(wire_nilOl_o), + .sel({ni0lOO, ni0lOl})); + defparam + nilOl.width_data = 4, + nilOl.width_sel = 2; + oper_mux nilOO + ( + .data({wire_nl01l_o, wire_nl1OO_o, wire_nl1Oi_o, wire_nl1ll_o}), + .o(wire_nilOO_o), + .sel({ni0lOO, ni0lOl})); + defparam + nilOO.width_data = 4, + nilOO.width_sel = 2; + oper_mux niO0i + ( + .data({wire_nl00O_o, wire_nl00i_o, wire_nl01l_o, wire_nl1OO_o}), + .o(wire_niO0i_o), + .sel({ni0lOO, ni0lOl})); + defparam + niO0i.width_data = 4, + niO0i.width_sel = 2; + oper_mux niO0l + ( + .data({wire_nl0ii_o, wire_nl00l_o, wire_nl01O_o, wire_nl01i_o}), + .o(wire_niO0l_o), + .sel({ni0lOO, ni0lOl})); + defparam + niO0l.width_data = 4, + niO0l.width_sel = 2; + oper_mux niO0O + ( + .data({wire_nl0il_o, wire_nl00O_o, wire_nl00i_o, wire_nl01l_o}), + .o(wire_niO0O_o), + .sel({ni0lOO, ni0lOl})); + defparam + niO0O.width_data = 4, + niO0O.width_sel = 2; + oper_mux niO1i + ( + .data({wire_nl01O_o, wire_nl01i_o, wire_nl1Ol_o, wire_nl1lO_o}), + .o(wire_niO1i_o), + .sel({ni0lOO, ni0lOl})); + defparam + niO1i.width_data = 4, + niO1i.width_sel = 2; + oper_mux niO1l + ( + .data({wire_nl00i_o, wire_nl01l_o, wire_nl1OO_o, wire_nl1Oi_o}), + .o(wire_niO1l_o), + .sel({ni0lOO, ni0lOl})); + defparam + niO1l.width_data = 4, + niO1l.width_sel = 2; + oper_mux niO1O + ( + .data({wire_nl00l_o, wire_nl01O_o, wire_nl01i_o, wire_nl1Ol_o}), + .o(wire_niO1O_o), + .sel({ni0lOO, ni0lOl})); + defparam + niO1O.width_data = 4, + niO1O.width_sel = 2; + oper_mux niOii + ( + .data({wire_nl0iO_o, wire_nl0ii_o, wire_nl00l_o, wire_nl01O_o}), + .o(wire_niOii_o), + .sel({ni0lOO, ni0lOl})); + defparam + niOii.width_data = 4, + niOii.width_sel = 2; + oper_mux niOil + ( + .data({wire_nl0li_o, wire_nl0il_o, wire_nl00O_o, wire_nl00i_o}), + .o(wire_niOil_o), + .sel({ni0lOO, ni0lOl})); + defparam + niOil.width_data = 4, + niOil.width_sel = 2; + oper_mux niOiO + ( + .data({ni0lil, wire_nl0iO_o, wire_nl0ii_o, wire_nl00l_o}), + .o(wire_niOiO_o), + .sel({ni0lOO, ni0lOl})); + defparam + niOiO.width_data = 4, + niOiO.width_sel = 2; + oper_mux niOli + ( + .data({ni0lil, wire_nl0li_o, wire_nl0il_o, wire_nl00O_o}), + .o(wire_niOli_o), + .sel({ni0lOO, ni0lOl})); + defparam + niOli.width_data = 4, + niOli.width_sel = 2; + oper_mux niOll + ( + .data({{2{ni0lil}}, wire_nl0iO_o, wire_nl0ii_o}), + .o(wire_niOll_o), + .sel({ni0lOO, ni0lOl})); + defparam + niOll.width_data = 4, + niOll.width_sel = 2; + oper_mux niOlO + ( + .data({{2{ni0lil}}, wire_nl0li_o, wire_nl0il_o}), + .o(wire_niOlO_o), + .sel({ni0lOO, ni0lOl})); + defparam + niOlO.width_data = 4, + niOlO.width_sel = 2; + oper_mux niOOi + ( + .data({{3{ni0lil}}, wire_nl0iO_o}), + .o(wire_niOOi_o), + .sel({ni0lOO, ni0lOl})); + defparam + niOOi.width_data = 4, + niOOi.width_sel = 2; + oper_mux niOOl + ( + .data({{3{ni0lil}}, wire_nl0li_o}), + .o(wire_niOOl_o), + .sel({ni0lOO, ni0lOl})); + defparam + niOOl.width_data = 4, + niOOl.width_sel = 2; + oper_mux niOOO + ( + .data({ni0l0O, ni0iOi, ni0i0l, ni00lO}), + .o(wire_niOOO_o), + .sel({ni0lll, ni0lli})); + defparam + niOOO.width_data = 4, + niOOO.width_sel = 2; + oper_mux nl00i + ( + .data({{3{ni0lil}}, ni0l1i}), + .o(wire_nl00i_o), + .sel({ni0lll, ni0lli})); + defparam + nl00i.width_data = 4, + nl00i.width_sel = 2; + oper_mux nl00l + ( + .data({{3{ni0lil}}, ni0l1l}), + .o(wire_nl00l_o), + .sel({ni0lll, ni0lli})); + defparam + nl00l.width_data = 4, + nl00l.width_sel = 2; + oper_mux nl00O + ( + .data({{3{ni0lil}}, ni0l1O}), + .o(wire_nl00O_o), + .sel({ni0lll, ni0lli})); + defparam + nl00O.width_data = 4, + nl00O.width_sel = 2; + oper_mux nl01i + ( + .data({{2{ni0lil}}, ni0l0O, ni0iOi}), + .o(wire_nl01i_o), + .sel({ni0lll, ni0lli})); + defparam + nl01i.width_data = 4, + nl01i.width_sel = 2; + oper_mux nl01l + ( + .data({{2{ni0lil}}, ni0lii, ni0iOl}), + .o(wire_nl01l_o), + .sel({ni0lll, ni0lli})); + defparam + nl01l.width_data = 4, + nl01l.width_sel = 2; + oper_mux nl01O + ( + .data({{3{ni0lil}}, ni0iOO}), + .o(wire_nl01O_o), + .sel({ni0lll, ni0lli})); + defparam + nl01O.width_data = 4, + nl01O.width_sel = 2; + oper_mux nl0ii + ( + .data({{3{ni0lil}}, ni0l0i}), + .o(wire_nl0ii_o), + .sel({ni0lll, ni0lli})); + defparam + nl0ii.width_data = 4, + nl0ii.width_sel = 2; + oper_mux nl0il + ( + .data({{3{ni0lil}}, ni0l0l}), + .o(wire_nl0il_o), + .sel({ni0lll, ni0lli})); + defparam + nl0il.width_data = 4, + nl0il.width_sel = 2; + oper_mux nl0iO + ( + .data({{3{ni0lil}}, ni0l0O}), + .o(wire_nl0iO_o), + .sel({ni0lll, ni0lli})); + defparam + nl0iO.width_data = 4, + nl0iO.width_sel = 2; + oper_mux nl0li + ( + .data({{3{ni0lil}}, ni0lii}), + .o(wire_nl0li_o), + .sel({ni0lll, ni0lli})); + defparam + nl0li.width_data = 4, + nl0li.width_sel = 2; + oper_mux nl10i + ( + .data({ni0lil, ni0l1l, ni0iiO, ni0i1i}), + .o(wire_nl10i_o), + .sel({ni0lll, ni0lli})); + defparam + nl10i.width_data = 4, + nl10i.width_sel = 2; + oper_mux nl10l + ( + .data({ni0lil, ni0l1O, ni0ili, ni0i1l}), + .o(wire_nl10l_o), + .sel({ni0lll, ni0lli})); + defparam + nl10l.width_data = 4, + nl10l.width_sel = 2; + oper_mux nl10O + ( + .data({ni0lil, ni0l0i, ni0ill, ni0i1O}), + .o(wire_nl10O_o), + .sel({ni0lll, ni0lli})); + defparam + nl10O.width_data = 4, + nl10O.width_sel = 2; + oper_mux nl11i + ( + .data({ni0lii, ni0iOl, ni0i0O, ni00Oi}), + .o(wire_nl11i_o), + .sel({ni0lll, ni0lli})); + defparam + nl11i.width_data = 4, + nl11i.width_sel = 2; + oper_mux nl11l + ( + .data({ni0lil, ni0iOO, ni0iii, ni00Ol}), + .o(wire_nl11l_o), + .sel({ni0lll, ni0lli})); + defparam + nl11l.width_data = 4, + nl11l.width_sel = 2; + oper_mux nl11O + ( + .data({ni0lil, ni0l1i, ni0iil, ni00OO}), + .o(wire_nl11O_o), + .sel({ni0lll, ni0lli})); + defparam + nl11O.width_data = 4, + nl11O.width_sel = 2; + oper_mux nl1ii + ( + .data({ni0lil, ni0l0l, ni0ilO, ni0i0i}), + .o(wire_nl1ii_o), + .sel({ni0lll, ni0lli})); + defparam + nl1ii.width_data = 4, + nl1ii.width_sel = 2; + oper_mux nl1il + ( + .data({ni0lil, ni0l0O, ni0iOi, ni0i0l}), + .o(wire_nl1il_o), + .sel({ni0lll, ni0lli})); + defparam + nl1il.width_data = 4, + nl1il.width_sel = 2; + oper_mux nl1iO + ( + .data({ni0lil, ni0lii, ni0iOl, ni0i0O}), + .o(wire_nl1iO_o), + .sel({ni0lll, ni0lli})); + defparam + nl1iO.width_data = 4, + nl1iO.width_sel = 2; + oper_mux nl1li + ( + .data({{2{ni0lil}}, ni0iOO, ni0iii}), + .o(wire_nl1li_o), + .sel({ni0lll, ni0lli})); + defparam + nl1li.width_data = 4, + nl1li.width_sel = 2; + oper_mux nl1ll + ( + .data({{2{ni0lil}}, ni0l1i, ni0iil}), + .o(wire_nl1ll_o), + .sel({ni0lll, ni0lli})); + defparam + nl1ll.width_data = 4, + nl1ll.width_sel = 2; + oper_mux nl1lO + ( + .data({{2{ni0lil}}, ni0l1l, ni0iiO}), + .o(wire_nl1lO_o), + .sel({ni0lll, ni0lli})); + defparam + nl1lO.width_data = 4, + nl1lO.width_sel = 2; + oper_mux nl1Oi + ( + .data({{2{ni0lil}}, ni0l1O, ni0ili}), + .o(wire_nl1Oi_o), + .sel({ni0lll, ni0lli})); + defparam + nl1Oi.width_data = 4, + nl1Oi.width_sel = 2; + oper_mux nl1Ol + ( + .data({{2{ni0lil}}, ni0l0i, ni0ill}), + .o(wire_nl1Ol_o), + .sel({ni0lll, ni0lli})); + defparam + nl1Ol.width_data = 4, + nl1Ol.width_sel = 2; + oper_mux nl1OO + ( + .data({{2{ni0lil}}, ni0l0l, ni0ilO}), + .o(wire_nl1OO_o), + .sel({ni0lll, ni0lli})); + defparam + nl1OO.width_data = 4, + nl1OO.width_sel = 2; + oper_mux nliliO + ( + .data({1'b1, 1'b0, nl1iOl, 1'b0}), + .o(wire_nliliO_o), + .sel({nll1li, nll00i})); + defparam + nliliO.width_data = 4, + nliliO.width_sel = 2; + oper_mux nlilli + ( + .data({{2{1'b0}}, nl1iOO, 1'b0}), + .o(wire_nlilli_o), + .sel({nll1li, nll00i})); + defparam + nlilli.width_data = 4, + nlilli.width_sel = 2; + oper_mux nlilll + ( + .data({{2{1'b0}}, nl1l1i, 1'b0}), + .o(wire_nlilll_o), + .sel({nll1li, nll00i})); + defparam + nlilll.width_data = 4, + nlilll.width_sel = 2; + oper_mux nlillO + ( + .data({{2{1'b0}}, nl1l1l, 1'b0}), + .o(wire_nlillO_o), + .sel({nll1li, nll00i})); + defparam + nlillO.width_data = 4, + nlillO.width_sel = 2; + oper_mux nlilOi + ( + .data({{2{1'b0}}, nl1l1O, 1'b0}), + .o(wire_nlilOi_o), + .sel({nll1li, nll00i})); + defparam + nlilOi.width_data = 4, + nlilOi.width_sel = 2; + oper_mux nlilOl + ( + .data({{2{1'b0}}, nl1l0i, 1'b0}), + .o(wire_nlilOl_o), + .sel({nll1li, nll00i})); + defparam + nlilOl.width_data = 4, + nlilOl.width_sel = 2; + oper_mux nlilOO + ( + .data({{2{1'b0}}, nl1l0l, 1'b0}), + .o(wire_nlilOO_o), + .sel({nll1li, nll00i})); + defparam + nlilOO.width_data = 4, + nlilOO.width_sel = 2; + oper_mux nliO0i + ( + .data({{2{1'b0}}, nl1liO, 1'b0}), + .o(wire_nliO0i_o), + .sel({nll1li, nll00i})); + defparam + nliO0i.width_data = 4, + nliO0i.width_sel = 2; + oper_mux nliO0l + ( + .data({{2{1'b0}}, nl1lli, 1'b0}), + .o(wire_nliO0l_o), + .sel({nll1li, nll00i})); + defparam + nliO0l.width_data = 4, + nliO0l.width_sel = 2; + oper_mux nliO0O + ( + .data({{2{1'b0}}, nl1lll, 1'b0}), + .o(wire_nliO0O_o), + .sel({nll1li, nll00i})); + defparam + nliO0O.width_data = 4, + nliO0O.width_sel = 2; + oper_mux nliO1i + ( + .data({{2{1'b0}}, nl1l0O, 1'b0}), + .o(wire_nliO1i_o), + .sel({nll1li, nll00i})); + defparam + nliO1i.width_data = 4, + nliO1i.width_sel = 2; + oper_mux nliO1l + ( + .data({{2{1'b0}}, nl1lii, 1'b0}), + .o(wire_nliO1l_o), + .sel({nll1li, nll00i})); + defparam + nliO1l.width_data = 4, + nliO1l.width_sel = 2; + oper_mux nliO1O + ( + .data({{2{1'b0}}, nl1lil, 1'b0}), + .o(wire_nliO1O_o), + .sel({nll1li, nll00i})); + defparam + nliO1O.width_data = 4, + nliO1O.width_sel = 2; + oper_mux nliOii + ( + .data({{2{1'b0}}, nl1llO, 1'b0}), + .o(wire_nliOii_o), + .sel({nll1li, nll00i})); + defparam + nliOii.width_data = 4, + nliOii.width_sel = 2; + oper_mux nliOil + ( + .data({{2{1'b0}}, nl1lOi, 1'b0}), + .o(wire_nliOil_o), + .sel({nll1li, nll00i})); + defparam + nliOil.width_data = 4, + nliOil.width_sel = 2; + oper_mux nliOiO + ( + .data({{2{1'b0}}, nl1lOl, 1'b0}), + .o(wire_nliOiO_o), + .sel({nll1li, nll00i})); + defparam + nliOiO.width_data = 4, + nliOiO.width_sel = 2; + oper_mux nliOli + ( + .data({{2{1'b0}}, nl1lOO, 1'b0}), + .o(wire_nliOli_o), + .sel({nll1li, nll00i})); + defparam + nliOli.width_data = 4, + nliOli.width_sel = 2; + oper_mux nliOll + ( + .data({{2{1'b0}}, nl1O1i, 1'b0}), + .o(wire_nliOll_o), + .sel({nll1li, nll00i})); + defparam + nliOll.width_data = 4, + nliOll.width_sel = 2; + oper_mux nliOlO + ( + .data({{2{1'b0}}, nl1O1l, 1'b0}), + .o(wire_nliOlO_o), + .sel({nll1li, nll00i})); + defparam + nliOlO.width_data = 4, + nliOlO.width_sel = 2; + oper_mux nliOOi + ( + .data({{2{1'b0}}, nl1O1O, 1'b0}), + .o(wire_nliOOi_o), + .sel({nll1li, nll00i})); + defparam + nliOOi.width_data = 4, + nliOOi.width_sel = 2; + oper_mux nliOOl + ( + .data({{2{1'b0}}, nl1O0i, 1'b0}), + .o(wire_nliOOl_o), + .sel({nll1li, nll00i})); + defparam + nliOOl.width_data = 4, + nliOOl.width_sel = 2; + oper_mux nliOOO + ( + .data({{2{1'b0}}, nl1O0l, 1'b0}), + .o(wire_nliOOO_o), + .sel({nll1li, nll00i})); + defparam + nliOOO.width_data = 4, + nliOOO.width_sel = 2; + oper_mux nll01i + ( + .data({{31{1'b0}}, 1'b1, {25{1'b0}}, {5{1'b1}}, {2{1'b0}}}), + .o(wire_nll01i_o), + .sel({(nl1ilO & nl1iOi), nillii, nilliO, nilO0i, nilO0l, nillli})); + defparam + nll01i.width_data = 64, + nll01i.width_sel = 6; + oper_mux nll10i + ( + .data({{2{1'b1}}, nl10Oi, 1'b0}), + .o(wire_nll10i_o), + .sel({nll1li, nll00i})); + defparam + nll10i.width_data = 4, + nll10i.width_sel = 2; + oper_mux nll10l + ( + .data({{2{1'b1}}, nl10Ol, 1'b0}), + .o(wire_nll10l_o), + .sel({nll1li, nll00i})); + defparam + nll10l.width_data = 4, + nll10l.width_sel = 2; + oper_mux nll10O + ( + .data({{2{1'b1}}, nl10OO, 1'b0}), + .o(wire_nll10O_o), + .sel({nll1li, nll00i})); + defparam + nll10O.width_data = 4, + nll10O.width_sel = 2; + oper_mux nll11i + ( + .data({{2{1'b0}}, nl1O0O, 1'b0}), + .o(wire_nll11i_o), + .sel({nll1li, nll00i})); + defparam + nll11i.width_data = 4, + nll11i.width_sel = 2; + oper_mux nll11l + ( + .data({{2{1'b1}}, nl10ll, 1'b0}), + .o(wire_nll11l_o), + .sel({nll1li, nll00i})); + defparam + nll11l.width_data = 4, + nll11l.width_sel = 2; + oper_mux nll11O + ( + .data({{2{1'b1}}, nl10lO, 1'b0}), + .o(wire_nll11O_o), + .sel({nll1li, nll00i})); + defparam + nll11O.width_data = 4, + nll11O.width_sel = 2; + oper_mux nll1ii + ( + .data({{2{1'b1}}, nl1i1i, 1'b0}), + .o(wire_nll1ii_o), + .sel({nll1li, nll00i})); + defparam + nll1ii.width_data = 4, + nll1ii.width_sel = 2; + oper_mux nll1il + ( + .data({{2{1'b1}}, nl1i1l, 1'b0}), + .o(wire_nll1il_o), + .sel({nll1li, nll00i})); + defparam + nll1il.width_data = 4, + nll1il.width_sel = 2; + oper_mux nll1iO + ( + .data({{2{1'b1}}, nl1i1O, 1'b0}), + .o(wire_nll1iO_o), + .sel({nll1li, nll00i})); + defparam + nll1iO.width_data = 4, + nll1iO.width_sel = 2; + oper_mux nll1lO + ( + .data({{4{1'b1}}, {3{1'b0}}, 1'b1}), + .o(wire_nll1lO_o), + .sel({n0Ol0O, wire_nll01i_o, nll1ll})); + defparam + nll1lO.width_data = 8, + nll1lO.width_sel = 3; + oper_mux nll1Oi + ( + .data({{3{1'b1}}, 1'b0}), + .o(wire_nll1Oi_o), + .sel({n0Ol0O, wire_nll01i_o})); + defparam + nll1Oi.width_data = 4, + nll1Oi.width_sel = 2; + oper_mux nll1OO + ( + .data({{3{1'b0}}, {2{1'b1}}, {6{1'b0}}, {2{1'b1}}, {6{1'b0}}, {2{1'b1}}, {7{1'b0}}, 1'b1, {3{1'b0}}}), + .o(wire_nll1OO_o), + .sel({niilii, nlOl0l, n0Ol0l, nil0ll, nili0l})); + defparam + nll1OO.width_data = 32, + nll1OO.width_sel = 5; + oper_mux nllOii + ( + .data({{2{1'b0}}, wire_nlO01i_o, wire_nlO01O_o}), + .o(wire_nllOii_o), + .sel({niil1O, niil0i})); + defparam + nllOii.width_data = 4, + nllOii.width_sel = 2; + oper_mux nllOil + ( + .data({{2{1'b0}}, wire_nlO01l_o, wire_nlO00i_o}), + .o(wire_nllOil_o), + .sel({niil1O, niil0i})); + defparam + nllOil.width_data = 4, + nllOil.width_sel = 2; + oper_mux nllOiO + ( + .data({1'b0, wire_nlO01i_o, wire_nlO01O_o, wire_nlO00l_o}), + .o(wire_nllOiO_o), + .sel({niil1O, niil0i})); + defparam + nllOiO.width_data = 4, + nllOiO.width_sel = 2; + oper_mux nllOli + ( + .data({1'b0, wire_nlO01l_o, wire_nlO00i_o, wire_nlO00O_o}), + .o(wire_nllOli_o), + .sel({niil1O, niil0i})); + defparam + nllOli.width_data = 4, + nllOli.width_sel = 2; + oper_mux nllOll + ( + .data({wire_nlO01i_o, wire_nlO01O_o, wire_nlO00l_o, wire_nlO0ii_o}), + .o(wire_nllOll_o), + .sel({niil1O, niil0i})); + defparam + nllOll.width_data = 4, + nllOll.width_sel = 2; + oper_mux nllOlO + ( + .data({wire_nlO01l_o, wire_nlO00i_o, wire_nlO00O_o, wire_nlO0il_o}), + .o(wire_nllOlO_o), + .sel({niil1O, niil0i})); + defparam + nllOlO.width_data = 4, + nllOlO.width_sel = 2; + oper_mux nllOOi + ( + .data({wire_nlO01O_o, wire_nlO00l_o, wire_nlO0ii_o, wire_nlO0iO_o}), + .o(wire_nllOOi_o), + .sel({niil1O, niil0i})); + defparam + nllOOi.width_data = 4, + nllOOi.width_sel = 2; + oper_mux nllOOl + ( + .data({wire_nlO00i_o, wire_nlO00O_o, wire_nlO0il_o, wire_nlO0li_o}), + .o(wire_nllOOl_o), + .sel({niil1O, niil0i})); + defparam + nllOOl.width_data = 4, + nllOOl.width_sel = 2; + oper_mux nllOOO + ( + .data({wire_nlO00l_o, wire_nlO0ii_o, wire_nlO0iO_o, wire_nlO0ll_o}), + .o(wire_nllOOO_o), + .sel({niil1O, niil0i})); + defparam + nllOOO.width_data = 4, + nllOOO.width_sel = 2; + oper_mux nlO00i + ( + .data({{3{1'b0}}, niO0li}), + .o(wire_nlO00i_o), + .sel({niiiOi, niil1i})); + defparam + nlO00i.width_data = 4, + nlO00i.width_sel = 2; + oper_mux nlO00l + ( + .data({{3{1'b0}}, niO0ll}), + .o(wire_nlO00l_o), + .sel({niiiOi, niil1i})); + defparam + nlO00l.width_data = 4, + nlO00l.width_sel = 2; + oper_mux nlO00O + ( + .data({{3{1'b0}}, niO0lO}), + .o(wire_nlO00O_o), + .sel({niiiOi, niil1i})); + defparam + nlO00O.width_data = 4, + nlO00O.width_sel = 2; + oper_mux nlO01i + ( + .data({{3{1'b0}}, niO0ii}), + .o(wire_nlO01i_o), + .sel({niiiOi, niil1i})); + defparam + nlO01i.width_data = 4, + nlO01i.width_sel = 2; + oper_mux nlO01l + ( + .data({{3{1'b0}}, niO0il}), + .o(wire_nlO01l_o), + .sel({niiiOi, niil1i})); + defparam + nlO01l.width_data = 4, + nlO01l.width_sel = 2; + oper_mux nlO01O + ( + .data({{3{1'b0}}, niO0iO}), + .o(wire_nlO01O_o), + .sel({niiiOi, niil1i})); + defparam + nlO01O.width_data = 4, + nlO01O.width_sel = 2; + oper_mux nlO0ii + ( + .data({{3{1'b0}}, niO0Oi}), + .o(wire_nlO0ii_o), + .sel({niiiOi, niil1i})); + defparam + nlO0ii.width_data = 4, + nlO0ii.width_sel = 2; + oper_mux nlO0il + ( + .data({{3{1'b0}}, niO0Ol}), + .o(wire_nlO0il_o), + .sel({niiiOi, niil1i})); + defparam + nlO0il.width_data = 4, + nlO0il.width_sel = 2; + oper_mux nlO0iO + ( + .data({{2{1'b0}}, niO0ii, niO0OO}), + .o(wire_nlO0iO_o), + .sel({niiiOi, niil1i})); + defparam + nlO0iO.width_data = 4, + nlO0iO.width_sel = 2; + oper_mux nlO0li + ( + .data({{2{1'b0}}, niO0il, niOi1i}), + .o(wire_nlO0li_o), + .sel({niiiOi, niil1i})); + defparam + nlO0li.width_data = 4, + nlO0li.width_sel = 2; + oper_mux nlO0ll + ( + .data({{2{1'b0}}, niO0iO, niOi1l}), + .o(wire_nlO0ll_o), + .sel({niiiOi, niil1i})); + defparam + nlO0ll.width_data = 4, + nlO0ll.width_sel = 2; + oper_mux nlO0lO + ( + .data({{2{1'b0}}, niO0li, niOi1O}), + .o(wire_nlO0lO_o), + .sel({niiiOi, niil1i})); + defparam + nlO0lO.width_data = 4, + nlO0lO.width_sel = 2; + oper_mux nlO0Oi + ( + .data({{2{1'b0}}, niO0ll, niOi0i}), + .o(wire_nlO0Oi_o), + .sel({niiiOi, niil1i})); + defparam + nlO0Oi.width_data = 4, + nlO0Oi.width_sel = 2; + oper_mux nlO0Ol + ( + .data({{2{1'b0}}, niO0lO, niOi0l}), + .o(wire_nlO0Ol_o), + .sel({niiiOi, niil1i})); + defparam + nlO0Ol.width_data = 4, + nlO0Ol.width_sel = 2; + oper_mux nlO0OO + ( + .data({{2{1'b0}}, niO0Oi, niOi0O}), + .o(wire_nlO0OO_o), + .sel({niiiOi, niil1i})); + defparam + nlO0OO.width_data = 4, + nlO0OO.width_sel = 2; + oper_mux nlO10i + ( + .data({wire_nlO0iO_o, wire_nlO0ll_o, wire_nlO0Oi_o, wire_nlO0OO_o}), + .o(wire_nlO10i_o), + .sel({niil1O, niil0i})); + defparam + nlO10i.width_data = 4, + nlO10i.width_sel = 2; + oper_mux nlO10l + ( + .data({wire_nlO0li_o, wire_nlO0lO_o, wire_nlO0Ol_o, wire_nlOi1i_o}), + .o(wire_nlO10l_o), + .sel({niil1O, niil0i})); + defparam + nlO10l.width_data = 4, + nlO10l.width_sel = 2; + oper_mux nlO10O + ( + .data({wire_nlO0ll_o, wire_nlO0Oi_o, wire_nlO0OO_o, wire_nlOi1l_o}), + .o(wire_nlO10O_o), + .sel({niil1O, niil0i})); + defparam + nlO10O.width_data = 4, + nlO10O.width_sel = 2; + oper_mux nlO11i + ( + .data({wire_nlO00O_o, wire_nlO0il_o, wire_nlO0li_o, wire_nlO0lO_o}), + .o(wire_nlO11i_o), + .sel({niil1O, niil0i})); + defparam + nlO11i.width_data = 4, + nlO11i.width_sel = 2; + oper_mux nlO11l + ( + .data({wire_nlO0ii_o, wire_nlO0iO_o, wire_nlO0ll_o, wire_nlO0Oi_o}), + .o(wire_nlO11l_o), + .sel({niil1O, niil0i})); + defparam + nlO11l.width_data = 4, + nlO11l.width_sel = 2; + oper_mux nlO11O + ( + .data({wire_nlO0il_o, wire_nlO0li_o, wire_nlO0lO_o, wire_nlO0Ol_o}), + .o(wire_nlO11O_o), + .sel({niil1O, niil0i})); + defparam + nlO11O.width_data = 4, + nlO11O.width_sel = 2; + oper_mux nlO1ii + ( + .data({wire_nlO0lO_o, wire_nlO0Ol_o, wire_nlOi1i_o, wire_nlOi1O_o}), + .o(wire_nlO1ii_o), + .sel({niil1O, niil0i})); + defparam + nlO1ii.width_data = 4, + nlO1ii.width_sel = 2; + oper_mux nlO1il + ( + .data({wire_nlO0Oi_o, wire_nlO0OO_o, wire_nlOi1l_o, wire_nlOi0i_o}), + .o(wire_nlO1il_o), + .sel({niil1O, niil0i})); + defparam + nlO1il.width_data = 4, + nlO1il.width_sel = 2; + oper_mux nlO1iO + ( + .data({wire_nlO0Ol_o, wire_nlOi1i_o, wire_nlOi1O_o, wire_nlOi0l_o}), + .o(wire_nlO1iO_o), + .sel({niil1O, niil0i})); + defparam + nlO1iO.width_data = 4, + nlO1iO.width_sel = 2; + oper_mux nlO1li + ( + .data({wire_nlO0OO_o, wire_nlOi1l_o, wire_nlOi0i_o, wire_nlOi0O_o}), + .o(wire_nlO1li_o), + .sel({niil1O, niil0i})); + defparam + nlO1li.width_data = 4, + nlO1li.width_sel = 2; + oper_mux nlO1ll + ( + .data({wire_nlOi1i_o, wire_nlOi1O_o, wire_nlOi0l_o, wire_nlOiii_o}), + .o(wire_nlO1ll_o), + .sel({niil1O, niil0i})); + defparam + nlO1ll.width_data = 4, + nlO1ll.width_sel = 2; + oper_mux nlO1lO + ( + .data({wire_nlOi1l_o, wire_nlOi0i_o, wire_nlOi0O_o, wire_nlOiil_o}), + .o(wire_nlO1lO_o), + .sel({niil1O, niil0i})); + defparam + nlO1lO.width_data = 4, + nlO1lO.width_sel = 2; + oper_mux nlO1Oi + ( + .data({wire_nlOi1O_o, wire_nlOi0l_o, wire_nlOiii_o, wire_nlOiiO_o}), + .o(wire_nlO1Oi_o), + .sel({niil1O, niil0i})); + defparam + nlO1Oi.width_data = 4, + nlO1Oi.width_sel = 2; + oper_mux nlO1Ol + ( + .data({wire_nlOi0i_o, wire_nlOi0O_o, wire_nlOiil_o, wire_nlOili_o}), + .o(wire_nlO1Ol_o), + .sel({niil1O, niil0i})); + defparam + nlO1Ol.width_data = 4, + nlO1Ol.width_sel = 2; + oper_mux nlO1OO + ( + .data({wire_nlOi0l_o, wire_nlOiii_o, wire_nlOiiO_o, wire_nlOill_o}), + .o(wire_nlO1OO_o), + .sel({niil1O, niil0i})); + defparam + nlO1OO.width_data = 4, + nlO1OO.width_sel = 2; + oper_mux nlOi0i + ( + .data({1'b0, nilOiO, niOi1l, niOili}), + .o(wire_nlOi0i_o), + .sel({niiiOi, niil1i})); + defparam + nlOi0i.width_data = 4, + nlOi0i.width_sel = 2; + oper_mux nlOi0l + ( + .data({1'b0, nilOli, niOi1O, niOill}), + .o(wire_nlOi0l_o), + .sel({niiiOi, niil1i})); + defparam + nlOi0l.width_data = 4, + nlOi0l.width_sel = 2; + oper_mux nlOi0O + ( + .data({1'b0, nilOll, niOi0i, niOilO}), + .o(wire_nlOi0O_o), + .sel({niiiOi, niil1i})); + defparam + nlOi0O.width_data = 4, + nlOi0O.width_sel = 2; + oper_mux nlOi1i + ( + .data({{2{1'b0}}, niO0Ol, niOiii}), + .o(wire_nlOi1i_o), + .sel({niiiOi, niil1i})); + defparam + nlOi1i.width_data = 4, + nlOi1i.width_sel = 2; + oper_mux nlOi1l + ( + .data({1'b0, nilOii, niO0OO, niOiil}), + .o(wire_nlOi1l_o), + .sel({niiiOi, niil1i})); + defparam + nlOi1l.width_data = 4, + nlOi1l.width_sel = 2; + oper_mux nlOi1O + ( + .data({1'b0, nilOil, niOi1i, niOiiO}), + .o(wire_nlOi1O_o), + .sel({niiiOi, niil1i})); + defparam + nlOi1O.width_data = 4, + nlOi1O.width_sel = 2; + oper_mux nlOiii + ( + .data({1'b0, nilOlO, niOi0l, niOiOi}), + .o(wire_nlOiii_o), + .sel({niiiOi, niil1i})); + defparam + nlOiii.width_data = 4, + nlOiii.width_sel = 2; + oper_mux nlOiil + ( + .data({1'b0, nilOOi, niOi0O, niOiOl}), + .o(wire_nlOiil_o), + .sel({niiiOi, niil1i})); + defparam + nlOiil.width_data = 4, + nlOiil.width_sel = 2; + oper_mux nlOiiO + ( + .data({1'b0, nilOOl, niOiii, niOiOO}), + .o(wire_nlOiiO_o), + .sel({niiiOi, niil1i})); + defparam + nlOiiO.width_data = 4, + nlOiiO.width_sel = 2; + oper_mux nlOili + ( + .data({niO0ii, nilOOO, niOiil, niOl1i}), + .o(wire_nlOili_o), + .sel({niiiOi, niil1i})); + defparam + nlOili.width_data = 4, + nlOili.width_sel = 2; + oper_mux nlOill + ( + .data({niO0il, niO11i, niOiiO, niOl1l}), + .o(wire_nlOill_o), + .sel({niiiOi, niil1i})); + defparam + nlOill.width_data = 4, + nlOill.width_sel = 2; + assign + n0OilO = ((((((((((~ nlOl0l) & (~ nlOl0i)) & nlOl1O) & nlOl1l) & nlOl1i) & nlOiOO) & nlOiOl) & nlOiOi) & nlOilO) & nllO0O), + n0OiOi = (((((((((((((((((((((((~ nii1OO) & (~ nii1Ol)) & (~ nii1Oi)) & (~ nii1lO)) & (~ nii1ll)) & (~ nii1li)) & (~ nii1iO)) & (~ nii1il)) & (~ nii1ii)) & (~ nii10O)) & (~ nii10l)) & (~ nii10i)) & (~ nii11O)) & (~ nii11l)) & (~ nii11i)) & (~ ni0OOO)) & (~ ni0OOl)) & (~ ni0OOi)) & (~ ni0OlO)) & (~ ni0Oll)) & (~ ni0Oli)) & (~ ni0OiO)) & (~ ni0Oil)), + n0OiOl = (((((((((((((((((((((((~ ni1OOl) & (~ ni1OOi)) & (~ ni1OlO)) & (~ ni1Oll)) & (~ ni1Oli)) & (~ ni1OiO)) & (~ ni1Oil)) & (~ ni1Oii)) & (~ ni1O0O)) & (~ ni1O0l)) & (~ ni1O0i)) & (~ ni1O1O)) & (~ ni1O1l)) & (~ ni1O1i)) & (~ ni1lOO)) & (~ ni1lOl)) & (~ ni1lOi)) & (~ ni1llO)) & (~ ni1lll)) & (~ ni1lli)) & (~ ni1liO)) & (~ ni1lil)) & (~ ni1lii)), + n0OiOO = ((((((((~ nil1Oi) & (~ nil1lO)) & (~ nil1ll)) & (~ nil1li)) & (~ nil1iO)) & (~ nil1il)) & (~ nil1ii)) & (~ nil10O)), + n0Ol0i = ((((((((~ wire_ni_dataout) & (~ wire_nlO_dataout)) & (~ wire_nll_dataout)) & (~ wire_nli_dataout)) & (~ wire_niO_dataout)) & (~ wire_nil_dataout)) & (~ wire_nii_dataout)) & (~ wire_n0O_dataout)), + n0Ol0l = (nil10i & nil01i), + n0Ol0O = ((nillii | nilliO) | ((nilO0i & nilO0l) & nillli)), + n0Ol1i = (((((((nil1Oi & nil1lO) & nil1ll) & nil1li) & nil1iO) & nil1il) & nil1ii) & nil10O), + n0Ol1l = (((((((wire_ni_dataout & wire_nlO_dataout) & wire_nll_dataout) & wire_nli_dataout) & wire_niO_dataout) & wire_nil_dataout) & wire_nii_dataout) & wire_n0O_dataout), + n0Ol1O = (((((~ wire_n10lO_dataout) & niiiOi) & niil1i) & (~ niil1O)) & niil0i), + n0Olii = ((((~ n1iii) & (~ n1i0O)) & (~ n1i0l)) & (~ n1i0i)), + n0Olil = ((((((((~ n1lOl) & (~ n1lOi)) & (~ n1llO)) & (~ n1lll)) & (~ n1lli)) & (~ n1liO)) & (~ n1lil)) & (~ n1lii)), + n0OliO = ((((((((((((((((~ niiilO) & (~ niiill)) & (~ niiili)) & (~ niiiiO)) & (~ niiiil)) & (~ niiiii)) & (~ niii0O)) & (~ niii0l)) & (~ niii0i)) & (~ niii1O)) & (~ niii1l)) & (~ niii1i)) & (~ nii0OO)) & (~ nii0Ol)) & (~ nii0Oi)) & (~ nii0lO)), + n0Olli = 1'b1, + n0Olll = (ni1l1O ^ ni1l0i), + q = {nilO0O, wire_nll1iO_o, wire_nll1il_o, wire_nll1ii_o, wire_nll10O_o, wire_nll10l_o, wire_nll10i_o, wire_nll11O_o, wire_nll11l_o, wire_nll11i_o, wire_nliOOO_o, wire_nliOOl_o, wire_nliOOi_o, wire_nliOlO_o, wire_nliOll_o, wire_nliOli_o, wire_nliOiO_o, wire_nliOil_o, wire_nliOii_o, wire_nliO0O_o, wire_nliO0l_o, wire_nliO0i_o, wire_nliO1O_o, wire_nliO1l_o, wire_nliO1i_o, wire_nlilOO_o, wire_nlilOl_o, wire_nlilOi_o, wire_nlillO_o, wire_nlilll_o, wire_nlilli_o, wire_nliliO_o}; +endmodule //ip_fp_add +//synopsys translate_on +//VALID FILE diff --git a/ip/ip_fp_add_sim/mentor/msim_setup.tcl b/ip/ip_fp_add_sim/mentor/msim_setup.tcl new file mode 100644 index 0000000..f1ebd9b --- /dev/null +++ b/ip/ip_fp_add_sim/mentor/msim_setup.tcl @@ -0,0 +1,272 @@ + +# (C) 2001-2023 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and +# other software and tools, and its AMPP partner logic functions, and +# any output files any of the foregoing (including device programming +# or simulation files), and any associated documentation or information +# are expressly subject to the terms and conditions of the Altera +# Program License Subscription Agreement, Altera MegaCore Function +# License Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +# ---------------------------------------- +# Auto-generated simulation script msim_setup.tcl +# ---------------------------------------- +# This script provides commands to simulate the following IP detected in +# your Quartus project: +# ip_fp_add +# +# Altera recommends that you source this Quartus-generated IP simulation +# script from your own customized top-level script, and avoid editing this +# generated script. +# +# To write a top-level script that compiles Altera simulation libraries and +# the Quartus-generated IP in your project, along with your design and +# testbench files, copy the text from the TOP-LEVEL TEMPLATE section below +# into a new file, e.g. named "mentor.do", and modify the text as directed. +# +# ---------------------------------------- +# # TOP-LEVEL TEMPLATE - BEGIN +# # +# # QSYS_SIMDIR is used in the Quartus-generated IP simulation script to +# # construct paths to the files required to simulate the IP in your Quartus +# # project. By default, the IP script assumes that you are launching the +# # simulator from the IP script location. If launching from another +# # location, set QSYS_SIMDIR to the output directory you specified when you +# # generated the IP script, relative to the directory from which you launch +# # the simulator. +# # +# set QSYS_SIMDIR <script generation output directory> +# # +# # Source the generated IP simulation script. +# source $QSYS_SIMDIR/mentor/msim_setup.tcl +# # +# # Set any compilation options you require (this is unusual). +# set USER_DEFINED_COMPILE_OPTIONS <compilation options> +# set USER_DEFINED_VHDL_COMPILE_OPTIONS <compilation options for VHDL> +# set USER_DEFINED_VERILOG_COMPILE_OPTIONS <compilation options for Verilog> +# # +# # Call command to compile the Quartus EDA simulation library. +# dev_com +# # +# # Call command to compile the Quartus-generated IP simulation files. +# com +# # +# # Add commands to compile all design files and testbench files, including +# # the top level. (These are all the files required for simulation other +# # than the files compiled by the Quartus-generated IP simulation script) +# # +# vlog <compilation options> <design and testbench files> +# # +# # Set the top-level simulation or testbench module/entity name, which is +# # used by the elab command to elaborate the top level. +# # +# set TOP_LEVEL_NAME <simulation top> +# # +# # Set any elaboration options you require. +# set USER_DEFINED_ELAB_OPTIONS <elaboration options> +# # +# # Call command to elaborate your design and testbench. +# elab +# # +# # Run the simulation. +# run -a +# # +# # Report success to the shell. +# exit -code 0 +# # +# # TOP-LEVEL TEMPLATE - END +# ---------------------------------------- +# +# IP SIMULATION SCRIPT +# ---------------------------------------- +# If ip_fp_add is one of several IP cores in your +# Quartus project, you can generate a simulation script +# suitable for inclusion in your top-level simulation +# script by running the following command line: +# +# ip-setup-simulation --quartus-project=<quartus project> +# +# ip-setup-simulation will discover the Altera IP +# within the Quartus project, and generate a unified +# script which supports all the Altera IP within the design. +# ---------------------------------------- +# ACDS 20.1 720 linux 2023.10.21.04:46:09 + +# ---------------------------------------- +# Initialize variables +if ![info exists SYSTEM_INSTANCE_NAME] { + set SYSTEM_INSTANCE_NAME "" +} elseif { ![ string match "" $SYSTEM_INSTANCE_NAME ] } { + set SYSTEM_INSTANCE_NAME "/$SYSTEM_INSTANCE_NAME" +} + +if ![info exists TOP_LEVEL_NAME] { + set TOP_LEVEL_NAME "ip_fp_add" +} + +if ![info exists QSYS_SIMDIR] { + set QSYS_SIMDIR "./../" +} + +if ![info exists QUARTUS_INSTALL_DIR] { + set QUARTUS_INSTALL_DIR "/nix/store/q54w47mfmcj9ag8kxwqvyi0snainbhjw-quartus-prime-lite-unwrapped-20.1.1.720/quartus/" +} + +if ![info exists USER_DEFINED_COMPILE_OPTIONS] { + set USER_DEFINED_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_VHDL_COMPILE_OPTIONS] { + set USER_DEFINED_VHDL_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_VERILOG_COMPILE_OPTIONS] { + set USER_DEFINED_VERILOG_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_ELAB_OPTIONS] { + set USER_DEFINED_ELAB_OPTIONS "" +} + +# ---------------------------------------- +# Initialize simulation properties - DO NOT MODIFY! +set ELAB_OPTIONS "" +set SIM_OPTIONS "" +if ![ string match "*-64 vsim*" [ vsim -version ] ] { +} else { +} + +# ---------------------------------------- +# Copy ROM/RAM files to simulation directory +alias file_copy { + echo "\[exec\] file_copy" +} + +# ---------------------------------------- +# Create compilation libraries +proc ensure_lib { lib } { if ![file isdirectory $lib] { vlib $lib } } +ensure_lib ./libraries/ +ensure_lib ./libraries/work/ +vmap work ./libraries/work/ +vmap work_lib ./libraries/work/ +if ![ string match "*ModelSim ALTERA*" [ vsim -version ] ] { + ensure_lib ./libraries/altera_ver/ + vmap altera_ver ./libraries/altera_ver/ + ensure_lib ./libraries/lpm_ver/ + vmap lpm_ver ./libraries/lpm_ver/ + ensure_lib ./libraries/sgate_ver/ + vmap sgate_ver ./libraries/sgate_ver/ + ensure_lib ./libraries/altera_mf_ver/ + vmap altera_mf_ver ./libraries/altera_mf_ver/ + ensure_lib ./libraries/altera_lnsim_ver/ + vmap altera_lnsim_ver ./libraries/altera_lnsim_ver/ + ensure_lib ./libraries/cyclonev_ver/ + vmap cyclonev_ver ./libraries/cyclonev_ver/ + ensure_lib ./libraries/cyclonev_hssi_ver/ + vmap cyclonev_hssi_ver ./libraries/cyclonev_hssi_ver/ + ensure_lib ./libraries/cyclonev_pcie_hip_ver/ + vmap cyclonev_pcie_hip_ver ./libraries/cyclonev_pcie_hip_ver/ +} + + +# ---------------------------------------- +# Compile device library files +alias dev_com { + echo "\[exec\] dev_com" + if ![ string match "*ModelSim ALTERA*" [ vsim -version ] ] { + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v" -work altera_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v" -work lpm_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v" -work sgate_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v" -work altera_mf_ver + eval vlog -sv $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim.sv" -work altera_lnsim_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/cyclonev_atoms_ncrypt.v" -work cyclonev_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/cyclonev_hmi_atoms_ncrypt.v" -work cyclonev_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v" -work cyclonev_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/cyclonev_hssi_atoms_ncrypt.v" -work cyclonev_hssi_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_hssi_atoms.v" -work cyclonev_hssi_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/cyclonev_pcie_hip_atoms_ncrypt.v" -work cyclonev_pcie_hip_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_pcie_hip_atoms.v" -work cyclonev_pcie_hip_ver + } +} + +# ---------------------------------------- +# Compile the design files in correct order +alias com { + echo "\[exec\] com" + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QSYS_SIMDIR/ip_fp_add.vo" +} + +# ---------------------------------------- +# Elaborate top level design +alias elab { + echo "\[exec\] elab" + eval vsim -t ps $ELAB_OPTIONS $USER_DEFINED_ELAB_OPTIONS -L work -L work_lib -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclonev_ver -L cyclonev_hssi_ver -L cyclonev_pcie_hip_ver $TOP_LEVEL_NAME +} + +# ---------------------------------------- +# Elaborate the top level design with -voptargs=+acc option +alias elab_debug { + echo "\[exec\] elab_debug" + eval vsim -voptargs=+acc -t ps $ELAB_OPTIONS $USER_DEFINED_ELAB_OPTIONS -L work -L work_lib -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclonev_ver -L cyclonev_hssi_ver -L cyclonev_pcie_hip_ver $TOP_LEVEL_NAME +} + +# ---------------------------------------- +# Compile all the design files and elaborate the top level design +alias ld " + dev_com + com + elab +" + +# ---------------------------------------- +# Compile all the design files and elaborate the top level design with -voptargs=+acc +alias ld_debug " + dev_com + com + elab_debug +" + +# ---------------------------------------- +# Print out user commmand line aliases +alias h { + echo "List Of Command Line Aliases" + echo + echo "file_copy -- Copy ROM/RAM files to simulation directory" + echo + echo "dev_com -- Compile device library files" + echo + echo "com -- Compile the design files in correct order" + echo + echo "elab -- Elaborate top level design" + echo + echo "elab_debug -- Elaborate the top level design with -voptargs=+acc option" + echo + echo "ld -- Compile all the design files and elaborate the top level design" + echo + echo "ld_debug -- Compile all the design files and elaborate the top level design with -voptargs=+acc" + echo + echo + echo + echo "List Of Variables" + echo + echo "TOP_LEVEL_NAME -- Top level module name." + echo " For most designs, this should be overridden" + echo " to enable the elab/elab_debug aliases." + echo + echo "SYSTEM_INSTANCE_NAME -- Instantiated system module name inside top level module." + echo + echo "QSYS_SIMDIR -- Platform Designer base simulation directory." + echo + echo "QUARTUS_INSTALL_DIR -- Quartus installation directory." + echo + echo "USER_DEFINED_COMPILE_OPTIONS -- User-defined compile options, added to com/dev_com aliases." + echo + echo "USER_DEFINED_ELAB_OPTIONS -- User-defined elaboration options, added to elab/elab_debug aliases." + echo + echo "USER_DEFINED_VHDL_COMPILE_OPTIONS -- User-defined vhdl compile options, added to com/dev_com aliases." + echo + echo "USER_DEFINED_VERILOG_COMPILE_OPTIONS -- User-defined verilog compile options, added to com/dev_com aliases." +} +file_copy +h diff --git a/ip/ip_fp_add_sim/synopsys/vcs/vcs_setup.sh b/ip/ip_fp_add_sim/synopsys/vcs/vcs_setup.sh new file mode 100755 index 0000000..ed96edc --- /dev/null +++ b/ip/ip_fp_add_sim/synopsys/vcs/vcs_setup.sh @@ -0,0 +1,152 @@ + +# (C) 2001-2023 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and +# other software and tools, and its AMPP partner logic functions, and +# any output files any of the foregoing (including device programming +# or simulation files), and any associated documentation or information +# are expressly subject to the terms and conditions of the Altera +# Program License Subscription Agreement, Altera MegaCore Function +# License Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +# ACDS 20.1 720 linux 2023.10.21.04:46:09 + +# ---------------------------------------- +# vcs - auto-generated simulation script + +# ---------------------------------------- +# This script provides commands to simulate the following IP detected in +# your Quartus project: +# ip_fp_add +# +# Altera recommends that you source this Quartus-generated IP simulation +# script from your own customized top-level script, and avoid editing this +# generated script. +# +# To write a top-level shell script that compiles Altera simulation libraries +# and the Quartus-generated IP in your project, along with your design and +# testbench files, follow the guidelines below. +# +# 1) Copy the shell script text from the TOP-LEVEL TEMPLATE section +# below into a new file, e.g. named "vcs_sim.sh". +# +# 2) Copy the text from the DESIGN FILE LIST & OPTIONS TEMPLATE section into +# a separate file, e.g. named "filelist.f". +# +# ---------------------------------------- +# # TOP-LEVEL TEMPLATE - BEGIN +# # +# # TOP_LEVEL_NAME is used in the Quartus-generated IP simulation script to +# # set the top-level simulation or testbench module/entity name. +# # +# # QSYS_SIMDIR is used in the Quartus-generated IP simulation script to +# # construct paths to the files required to simulate the IP in your Quartus +# # project. By default, the IP script assumes that you are launching the +# # simulator from the IP script location. If launching from another +# # location, set QSYS_SIMDIR to the output directory you specified when you +# # generated the IP script, relative to the directory from which you launch +# # the simulator. +# # +# # Source the Quartus-generated IP simulation script and do the following: +# # - Compile the Quartus EDA simulation library and IP simulation files. +# # - Specify TOP_LEVEL_NAME and QSYS_SIMDIR. +# # - Compile the design and top-level simulation module/entity using +# # information specified in "filelist.f". +# # - Override the default USER_DEFINED_SIM_OPTIONS. For example, to run +# # until $finish(), set to an empty string: USER_DEFINED_SIM_OPTIONS="". +# # - Run the simulation. +# # +# source <script generation output directory>/synopsys/vcs/vcs_setup.sh \ +# TOP_LEVEL_NAME=<simulation top> \ +# QSYS_SIMDIR=<script generation output directory> \ +# USER_DEFINED_ELAB_OPTIONS="\"-f filelist.f\"" \ +# USER_DEFINED_SIM_OPTIONS=<simulation options for your design> +# # +# # TOP-LEVEL TEMPLATE - END +# ---------------------------------------- +# +# ---------------------------------------- +# # DESIGN FILE LIST & OPTIONS TEMPLATE - BEGIN +# # +# # Compile all design files and testbench files, including the top level. +# # (These are all the files required for simulation other than the files +# # compiled by the Quartus-generated IP simulation script) +# # +# +systemverilogext+.sv +# <design and testbench files, compile-time options, elaboration options> +# # +# # DESIGN FILE LIST & OPTIONS TEMPLATE - END +# ---------------------------------------- +# +# IP SIMULATION SCRIPT +# ---------------------------------------- +# If ip_fp_add is one of several IP cores in your +# Quartus project, you can generate a simulation script +# suitable for inclusion in your top-level simulation +# script by running the following command line: +# +# ip-setup-simulation --quartus-project=<quartus project> +# +# ip-setup-simulation will discover the Altera IP +# within the Quartus project, and generate a unified +# script which supports all the Altera IP within the design. +# ---------------------------------------- +# ACDS 20.1 720 linux 2023.10.21.04:46:09 +# ---------------------------------------- +# initialize variables +TOP_LEVEL_NAME="ip_fp_add" +QSYS_SIMDIR="./../../" +QUARTUS_INSTALL_DIR="/nix/store/q54w47mfmcj9ag8kxwqvyi0snainbhjw-quartus-prime-lite-unwrapped-20.1.1.720/quartus/" +SKIP_FILE_COPY=0 +SKIP_SIM=0 +USER_DEFINED_ELAB_OPTIONS="" +USER_DEFINED_SIM_OPTIONS="+vcs+finish+100" +# ---------------------------------------- +# overwrite variables - DO NOT MODIFY! +# This block evaluates each command line argument, typically used for +# overwriting variables. An example usage: +# sh <simulator>_setup.sh SKIP_SIM=1 +for expression in "$@"; do + eval $expression + if [ $? -ne 0 ]; then + echo "Error: This command line argument, \"$expression\", is/has an invalid expression." >&2 + exit $? + fi +done + +# ---------------------------------------- +# initialize simulation properties - DO NOT MODIFY! +ELAB_OPTIONS="" +SIM_OPTIONS="" +if [[ `vcs -platform` != *"amd64"* ]]; then + : +else + : +fi + +# ---------------------------------------- +# copy RAM/ROM files to simulation directory + +vcs -lca -timescale=1ps/1ps -sverilog +verilog2001ext+.v -ntb_opts dtm $ELAB_OPTIONS $USER_DEFINED_ELAB_OPTIONS \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v \ + $QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim.sv \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_atoms_ncrypt.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_hmi_atoms_ncrypt.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_hssi_atoms_ncrypt.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_hssi_atoms.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_pcie_hip_atoms_ncrypt.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_pcie_hip_atoms.v \ + $QSYS_SIMDIR/ip_fp_add.vo \ + -top $TOP_LEVEL_NAME +# ---------------------------------------- +# simulate +if [ $SKIP_SIM -eq 0 ]; then + ./simv $SIM_OPTIONS $USER_DEFINED_SIM_OPTIONS +fi diff --git a/ip/ip_fp_add_sim/synopsys/vcsmx/synopsys_sim.setup b/ip/ip_fp_add_sim/synopsys/vcsmx/synopsys_sim.setup new file mode 100644 index 0000000..5ae9b46 --- /dev/null +++ b/ip/ip_fp_add_sim/synopsys/vcsmx/synopsys_sim.setup @@ -0,0 +1,13 @@ + +WORK > DEFAULT +DEFAULT: ./libraries/work/ +work: ./libraries/work/ +altera_ver: ./libraries/altera_ver/ +lpm_ver: ./libraries/lpm_ver/ +sgate_ver: ./libraries/sgate_ver/ +altera_mf_ver: ./libraries/altera_mf_ver/ +altera_lnsim_ver: ./libraries/altera_lnsim_ver/ +cyclonev_ver: ./libraries/cyclonev_ver/ +cyclonev_hssi_ver: ./libraries/cyclonev_hssi_ver/ +cyclonev_pcie_hip_ver: ./libraries/cyclonev_pcie_hip_ver/ +LIBRARY_SCAN = TRUE diff --git a/ip/ip_fp_add_sim/synopsys/vcsmx/vcsmx_setup.sh b/ip/ip_fp_add_sim/synopsys/vcsmx/vcsmx_setup.sh new file mode 100755 index 0000000..0e88a36 --- /dev/null +++ b/ip/ip_fp_add_sim/synopsys/vcsmx/vcsmx_setup.sh @@ -0,0 +1,195 @@ + +# (C) 2001-2023 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and +# other software and tools, and its AMPP partner logic functions, and +# any output files any of the foregoing (including device programming +# or simulation files), and any associated documentation or information +# are expressly subject to the terms and conditions of the Altera +# Program License Subscription Agreement, Altera MegaCore Function +# License Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +# ACDS 20.1 720 linux 2023.10.21.04:46:09 + +# ---------------------------------------- +# vcsmx - auto-generated simulation script + +# ---------------------------------------- +# This script provides commands to simulate the following IP detected in +# your Quartus project: +# ip_fp_add +# +# Altera recommends that you source this Quartus-generated IP simulation +# script from your own customized top-level script, and avoid editing this +# generated script. +# +# To write a top-level shell script that compiles Altera simulation libraries +# and the Quartus-generated IP in your project, along with your design and +# testbench files, copy the text from the TOP-LEVEL TEMPLATE section below +# into a new file, e.g. named "vcsmx_sim.sh", and modify text as directed. +# +# You can also modify the simulation flow to suit your needs. Set the +# following variables to 1 to disable their corresponding processes: +# - SKIP_FILE_COPY: skip copying ROM/RAM initialization files +# - SKIP_DEV_COM: skip compiling the Quartus EDA simulation library +# - SKIP_COM: skip compiling Quartus-generated IP simulation files +# - SKIP_ELAB and SKIP_SIM: skip elaboration and simulation +# +# ---------------------------------------- +# # TOP-LEVEL TEMPLATE - BEGIN +# # +# # QSYS_SIMDIR is used in the Quartus-generated IP simulation script to +# # construct paths to the files required to simulate the IP in your Quartus +# # project. By default, the IP script assumes that you are launching the +# # simulator from the IP script location. If launching from another +# # location, set QSYS_SIMDIR to the output directory you specified when you +# # generated the IP script, relative to the directory from which you launch +# # the simulator. In this case, you must also copy the generated library +# # setup "synopsys_sim.setup" into the location from which you launch the +# # simulator, or incorporate into any existing library setup. +# # +# # Run Quartus-generated IP simulation script once to compile Quartus EDA +# # simulation libraries and Quartus-generated IP simulation files, and copy +# # any ROM/RAM initialization files to the simulation directory. +# # +# # - If necessary, specify any compilation options: +# # USER_DEFINED_COMPILE_OPTIONS +# # USER_DEFINED_VHDL_COMPILE_OPTIONS applied to vhdl compiler +# # USER_DEFINED_VERILOG_COMPILE_OPTIONS applied to verilog compiler +# # +# source <script generation output directory>/synopsys/vcsmx/vcsmx_setup.sh \ +# SKIP_ELAB=1 \ +# SKIP_SIM=1 \ +# USER_DEFINED_COMPILE_OPTIONS=<compilation options for your design> \ +# USER_DEFINED_VHDL_COMPILE_OPTIONS=<VHDL compilation options for your design> \ +# USER_DEFINED_VERILOG_COMPILE_OPTIONS=<Verilog compilation options for your design> \ +# QSYS_SIMDIR=<script generation output directory> +# # +# # Compile all design files and testbench files, including the top level. +# # (These are all the files required for simulation other than the files +# # compiled by the IP script) +# # +# vlogan <compilation options> <design and testbench files> +# # +# # TOP_LEVEL_NAME is used in this script to set the top-level simulation or +# # testbench module/entity name. +# # +# # Run the IP script again to elaborate and simulate the top level: +# # - Specify TOP_LEVEL_NAME and USER_DEFINED_ELAB_OPTIONS. +# # - Override the default USER_DEFINED_SIM_OPTIONS. For example, to run +# # until $finish(), set to an empty string: USER_DEFINED_SIM_OPTIONS="". +# # +# source <script generation output directory>/synopsys/vcsmx/vcsmx_setup.sh \ +# SKIP_FILE_COPY=1 \ +# SKIP_DEV_COM=1 \ +# SKIP_COM=1 \ +# TOP_LEVEL_NAME="'-top <simulation top>'" \ +# QSYS_SIMDIR=<script generation output directory> \ +# USER_DEFINED_ELAB_OPTIONS=<elaboration options for your design> \ +# USER_DEFINED_SIM_OPTIONS=<simulation options for your design> +# # +# # TOP-LEVEL TEMPLATE - END +# ---------------------------------------- +# +# IP SIMULATION SCRIPT +# ---------------------------------------- +# If ip_fp_add is one of several IP cores in your +# Quartus project, you can generate a simulation script +# suitable for inclusion in your top-level simulation +# script by running the following command line: +# +# ip-setup-simulation --quartus-project=<quartus project> +# +# ip-setup-simulation will discover the Altera IP +# within the Quartus project, and generate a unified +# script which supports all the Altera IP within the design. +# ---------------------------------------- +# ACDS 20.1 720 linux 2023.10.21.04:46:09 +# ---------------------------------------- +# initialize variables +TOP_LEVEL_NAME="ip_fp_add" +QSYS_SIMDIR="./../../" +QUARTUS_INSTALL_DIR="/nix/store/q54w47mfmcj9ag8kxwqvyi0snainbhjw-quartus-prime-lite-unwrapped-20.1.1.720/quartus/" +SKIP_FILE_COPY=0 +SKIP_DEV_COM=0 +SKIP_COM=0 +SKIP_ELAB=0 +SKIP_SIM=0 +USER_DEFINED_ELAB_OPTIONS="" +USER_DEFINED_SIM_OPTIONS="+vcs+finish+100" + +# ---------------------------------------- +# overwrite variables - DO NOT MODIFY! +# This block evaluates each command line argument, typically used for +# overwriting variables. An example usage: +# sh <simulator>_setup.sh SKIP_SIM=1 +for expression in "$@"; do + eval $expression + if [ $? -ne 0 ]; then + echo "Error: This command line argument, \"$expression\", is/has an invalid expression." >&2 + exit $? + fi +done + +# ---------------------------------------- +# initialize simulation properties - DO NOT MODIFY! +ELAB_OPTIONS="" +SIM_OPTIONS="" +if [[ `vcs -platform` != *"amd64"* ]]; then + : +else + : +fi + +# ---------------------------------------- +# create compilation libraries +mkdir -p ./libraries/work/ +mkdir -p ./libraries/altera_ver/ +mkdir -p ./libraries/lpm_ver/ +mkdir -p ./libraries/sgate_ver/ +mkdir -p ./libraries/altera_mf_ver/ +mkdir -p ./libraries/altera_lnsim_ver/ +mkdir -p ./libraries/cyclonev_ver/ +mkdir -p ./libraries/cyclonev_hssi_ver/ +mkdir -p ./libraries/cyclonev_pcie_hip_ver/ + +# ---------------------------------------- +# copy RAM/ROM files to simulation directory + +# ---------------------------------------- +# compile device library files +if [ $SKIP_DEV_COM -eq 0 ]; then + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v" -work altera_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v" -work lpm_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v" -work sgate_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v" -work altera_mf_ver + vlogan +v2k -sverilog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim.sv" -work altera_lnsim_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_atoms_ncrypt.v" -work cyclonev_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_hmi_atoms_ncrypt.v" -work cyclonev_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v" -work cyclonev_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_hssi_atoms_ncrypt.v" -work cyclonev_hssi_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_hssi_atoms.v" -work cyclonev_hssi_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_pcie_hip_atoms_ncrypt.v" -work cyclonev_pcie_hip_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_pcie_hip_atoms.v" -work cyclonev_pcie_hip_ver +fi + +# ---------------------------------------- +# compile design files in correct order +if [ $SKIP_COM -eq 0 ]; then + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QSYS_SIMDIR/ip_fp_add.vo" +fi + +# ---------------------------------------- +# elaborate top level design +if [ $SKIP_ELAB -eq 0 ]; then + vcs -lca -t ps $ELAB_OPTIONS $USER_DEFINED_ELAB_OPTIONS $TOP_LEVEL_NAME +fi + +# ---------------------------------------- +# simulate +if [ $SKIP_SIM -eq 0 ]; then + ./simv $SIM_OPTIONS $USER_DEFINED_SIM_OPTIONS +fi diff --git a/ip/ip_fp_mul.cmp b/ip/ip_fp_mul.cmp new file mode 100644 index 0000000..f2c0a07 --- /dev/null +++ b/ip/ip_fp_mul.cmp @@ -0,0 +1,10 @@ + component ip_fp_mul is + port ( + clk : in std_logic := 'X'; -- clk + areset : in std_logic := 'X'; -- reset + a : in std_logic_vector(31 downto 0) := (others => 'X'); -- a + b : in std_logic_vector(31 downto 0) := (others => 'X'); -- b + q : out std_logic_vector(31 downto 0) -- q + ); + end component ip_fp_mul; + diff --git a/ip/ip_fp_mul.qip b/ip/ip_fp_mul.qip new file mode 100644 index 0000000..043d6a2 --- /dev/null +++ b/ip/ip_fp_mul.qip @@ -0,0 +1,86 @@ +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_TOOL_NAME "altera_fp_functions" +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_TOOL_VERSION "20.1" +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_TOOL_ENV "mwpim" +set_global_assignment -library "ip_fp_mul" -name MISC_FILE [file join $::quartus(qip_path) "ip_fp_mul.cmp"] +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_TARGETED_DEVICE_FAMILY "Cyclone V" +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_GENERATED_DEVICE_FAMILY "{Cyclone V}" +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_QSYS_MODE "UNKNOWN" +set_global_assignment -name SYNTHESIS_ONLY_QIP ON +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_COMPONENT_NAME "aXBfZnBfbXVs" +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_COMPONENT_DISPLAY_NAME "RlBfRlVOQ1RJT05TIEludGVsIEZQR0EgSVA=" +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_COMPONENT_REPORT_HIERARCHY "Off" +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_COMPONENT_INTERNAL "Off" +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_COMPONENT_AUTHOR "SW50ZWwgQ29ycG9yYXRpb24=" +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_COMPONENT_VERSION "MjAuMQ==" +set_global_assignment -entity "ip_fp_mul" -library "ip_fp_mul" -name IP_COMPONENT_DESCRIPTION "QSBjb2xsZWN0aW9uIG9mIGZsb2F0aW5nIHBvaW50IGZ1bmN0aW9ucw==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_NAME "aXBfZnBfbXVsXzAwMDI=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_DISPLAY_NAME "RlBfRlVOQ1RJT05TIEludGVsIEZQR0EgSVA=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_REPORT_HIERARCHY "Off" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_INTERNAL "Off" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_AUTHOR "SW50ZWwgQ29ycG9yYXRpb24=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_VERSION "MjAuMQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_DESCRIPTION "QSBjb2xsZWN0aW9uIG9mIGZsb2F0aW5nIHBvaW50IGZ1bmN0aW9ucw==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "RlVOQ1RJT05fRkFNSUxZ::QVJJVEg=::RmFtaWx5" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "QVJJVEhfZnVuY3Rpb24=::TVVM::TmFtZQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "Q09OVkVSVF9mdW5jdGlvbg==::RlhQX0ZQ::TmFtZQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "QUxMX2Z1bmN0aW9u::QURE::TmFtZQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "RVhQX0xPR19mdW5jdGlvbg==::RVhQRQ==::TmFtZQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "VFJJR19mdW5jdGlvbg==::U0lO::TmFtZQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "Q09NUEFSRV9mdW5jdGlvbg==::TUlO::TmFtZQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "Uk9PVFNfZnVuY3Rpb24=::U1FSVA==::TmFtZQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZGVyaXZlZGZ1bmN0aW9u::TVVM::ZGVyaXZlZGZ1bmN0aW9u" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfZm9ybWF0::c2luZ2xl::Rm9ybWF0" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfZXhw::OA==::RXhwb25lbnQ=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfZXhwX2Rlcml2ZWQ=::OA==::ZnBfZXhwX2Rlcml2ZWQ=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfbWFu::MjM=::TWFudGlzc2E=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfbWFuX2Rlcml2ZWQ=::MjM=::ZnBfbWFuX2Rlcml2ZWQ=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZXhwb25lbnRfd2lkdGg=::MjM=::RXhwb25lbnQgV2lkdGg=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnJlcXVlbmN5X3RhcmdldA==::MjAw::VGFyZ2V0" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "bGF0ZW5jeV90YXJnZXQ=::Mg==::VGFyZ2V0" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "cGVyZm9ybWFuY2VfZ29hbA==::ZnJlcXVlbmN5::R29hbA==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "cm91bmRpbmdfbW9kZQ==::bmVhcmVzdCB3aXRoIHRpZSBicmVha2luZyBhd2F5IGZyb20gemVybw==::TW9kZQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "cm91bmRpbmdfbW9kZV9kZXJpdmVk::bmVhcmVzdCB3aXRoIHRpZSBicmVha2luZyB0byBldmVu::TW9kZQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "dXNlX3JvdW5kaW5nX21vZGU=::dHJ1ZQ==::dXNlX3JvdW5kaW5nX21vZGU=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZmFpdGhmdWxfcm91bmRpbmc=::dHJ1ZQ==::UmVsYXggcm91bmRpbmcgdG8gcm91bmQgdXAgb3IgZG93biB0byByZWR1Y2UgcmVzb3VyY2UgdXNhZ2U=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "Z2VuX2VuYWJsZQ==::ZmFsc2U=::R2VuZXJhdGUgYW4gZW5hYmxlIHBvcnQ=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZGl2aWRlX3R5cGU=::MA==::TWV0aG9k" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "c2VsZWN0X3NpZ25hbF9lbmFibGU=::ZmFsc2U=::VXNlIFNlbGVjdCBTaWduYWw=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "c2NhbGVfYnlfcGk=::ZmFsc2U=::UmVwcmVzZW50IGFuZ2xlIGFzIG11bHRpcGxlIG9mIFBp" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "bnVtYmVyX29mX2lucHV0cw==::Mg==::SW5wdXQgVmVjdG9yIERpbWVuc2lvbg==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "dHJpZ19ub19yYW5nZV9yZWR1Y3Rpb24=::ZmFsc2U=::SW5wdXRzIGFyZSB3aXRoaW4gcmFuZ2UgLTJwaSB0byArMnBp" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "cmVwb3J0X3Jlc291cmNlc190b194bWw=::ZmFsc2U=::cmVwb3J0X3Jlc291cmNlc190b194bWw=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnhwdF93aWR0aA==::MzI=::V2lkdGg=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnhwdF9mcmFjdGlvbg==::MA==::RnJhY3Rpb24=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnhwdF9zaWdu::MQ==::U2lnbg==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnJlcXVlbmN5X2ZlZWRiYWNr::MA==::ZnJlcXVlbmN5X2ZlZWRiYWNr" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "bGF0ZW5jeV9mZWVkYmFjaw==::Ng==::bGF0ZW5jeV9mZWVkYmFjaw==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "Zm9yY2VfZWxhYm9yYXRl::MA==::Zm9yY2VfZWxhYm9yYXRl" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfb3V0X2Zvcm1hdA==::c2luZ2xl::T3V0cHV0IEZvcm1hdA==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfb3V0X2V4cA==::OA==::T3V0cHV0IEV4cG9uZW50" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfb3V0X2V4cF9kZXJpdmVk::OA==::ZnBfb3V0X2V4cF9kZXJpdmVk" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfb3V0X21hbg==::MjM=::T3V0cHV0IE1hbnRpc3Nh" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfb3V0X21hbl9kZXJpdmVk::OA==::ZnBfb3V0X21hbl9kZXJpdmVk" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfaW5fZm9ybWF0::c2luZ2xl::SW5wdXQgRm9ybWF0" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfaW5fZXhw::OA==::SW5wdXQgRXhwb25lbnQ=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfaW5fZXhwX2Rlcml2ZWQ=::OA==::ZnBfaW5fZXhwX2Rlcml2ZWQ=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfaW5fbWFu::MjM=::SW5wdXQgTWFudGlzc2E=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZnBfaW5fbWFuX2Rlcml2ZWQ=::OA==::ZnBfaW5fbWFuX2Rlcml2ZWQ=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "ZW5hYmxlX2hhcmRfZnA=::dHJ1ZQ==::RW5hYmxlIEhhcmQgRmxvYXRpbmcgUG9pbnQ=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "bWFudWFsX2RzcF9wbGFubmluZw==::dHJ1ZQ==::RW5hYmxlIEhhcmQgRmxvYXRpbmcgUG9pbnQ=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "Zm9yY2VSZWdpc3RlcnM=::MTExMQ==::Zm9yY2VSZWdpc3RlcnM=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "UkVTX0RTUF9wYXJhbQ==::Mg==::TXVsdGlwbGllcw==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "UkVTX0xVVF9wYXJhbQ==::MjQ2::TFVUcw==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "UkVTX01CSVRfcGFyYW0=::MA==::TWVtb3J5IEJpdHM=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "UkVTX01CTE9DS19wYXJhbQ==::MA==::TWVtb3J5IEJsb2Nrcw==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "c2VsZWN0ZWRfZGV2aWNlX2ZhbWlseQ==::Q3ljbG9uZSBW::c2VsZWN0ZWRfZGV2aWNlX2ZhbWlseQ==" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "c2VsZWN0ZWRfZGV2aWNlX3NwZWVkZ3JhZGU=::Nw==::c2VsZWN0ZWRfZGV2aWNlX3NwZWVkZ3JhZGU=" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_COMPONENT_PARAMETER "dmFsaWRhdGlvbl9mYWlsZWQ=::ZmFsc2U=::dmFsaWRhdGlvbl9mYWlsZWQ=" + +set_global_assignment -library "ip_fp_mul" -name VERILOG_FILE [file join $::quartus(qip_path) "ip_fp_mul.v"] +set_global_assignment -library "ip_fp_mul" -name VHDL_FILE [file join $::quartus(qip_path) "ip_fp_mul/dspba_library_package.vhd"] +set_global_assignment -library "ip_fp_mul" -name VHDL_FILE [file join $::quartus(qip_path) "ip_fp_mul/dspba_library.vhd"] +set_global_assignment -library "ip_fp_mul" -name VHDL_FILE [file join $::quartus(qip_path) "ip_fp_mul/ip_fp_mul_0002.vhd"] + +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_TOOL_NAME "altera_fp_functions" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_TOOL_VERSION "20.1" +set_global_assignment -entity "ip_fp_mul_0002" -library "ip_fp_mul" -name IP_TOOL_ENV "mwpim" diff --git a/ip/ip_fp_mul.sip b/ip/ip_fp_mul.sip new file mode 100644 index 0000000..3971fde --- /dev/null +++ b/ip/ip_fp_mul.sip @@ -0,0 +1,6 @@ +set_global_assignment -entity "ip_fp_mul" -library "lib_ip_fp_mul" -name IP_TOOL_NAME "altera_fp_functions" +set_global_assignment -entity "ip_fp_mul" -library "lib_ip_fp_mul" -name IP_TOOL_VERSION "20.1" +set_global_assignment -entity "ip_fp_mul" -library "lib_ip_fp_mul" -name IP_TOOL_ENV "mwpim" +set_global_assignment -library "lib_ip_fp_mul" -name SPD_FILE [file join $::quartus(sip_path) "ip_fp_mul.spd"] + +set_global_assignment -library "lib_ip_fp_mul" -name MISC_FILE [file join $::quartus(sip_path) "ip_fp_mul_sim/ip_fp_mul.vo"] diff --git a/ip/ip_fp_mul.spd b/ip/ip_fp_mul.spd new file mode 100644 index 0000000..3e1d3ed --- /dev/null +++ b/ip/ip_fp_mul.spd @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<simPackage> + <file path="ip_fp_mul_sim/ip_fp_mul.vo" type="VERILOG" /> + <topLevel name="ip_fp_mul" /> + <deviceFamily name="cyclonev" /> +</simPackage> diff --git a/ip/ip_fp_mul.v b/ip/ip_fp_mul.v new file mode 100644 index 0000000..9585ce3 --- /dev/null +++ b/ip/ip_fp_mul.v @@ -0,0 +1,92 @@ +// megafunction wizard: %FP_FUNCTIONS Intel FPGA IP v20.1% +// GENERATION: XML +// ip_fp_mul.v + +// Generated using ACDS version 20.1 720 + +`timescale 1 ps / 1 ps +module ip_fp_mul ( + input wire clk, // clk.clk + input wire areset, // areset.reset + input wire [31:0] a, // a.a + input wire [31:0] b, // b.b + output wire [31:0] q // q.q + ); + + ip_fp_mul_0002 ip_fp_mul_inst ( + .clk (clk), // clk.clk + .areset (areset), // areset.reset + .a (a), // a.a + .b (b), // b.b + .q (q) // q.q + ); + +endmodule +// Retrieval info: <?xml version="1.0"?> +//<!-- +// Generated by Altera MegaWizard Launcher Utility version 1.0 +// ************************************************************ +// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +// ************************************************************ +// Copyright (C) 1991-2023 Altera Corporation +// Any megafunction design, and related net list (encrypted or decrypted), +// support information, device programming or simulation file, and any other +// associated documentation or information provided by Altera or a partner +// under Altera's Megafunction Partnership Program may be used only to +// program PLD devices (but not masked PLD devices) from Altera. Any other +// use of such megafunction design, net list, support information, device +// programming or simulation file, or any other related documentation or +// information is prohibited for any other purpose, including, but not +// limited to modification, reverse engineering, de-compiling, or use with +// any other silicon devices, unless such use is explicitly licensed under +// a separate agreement with Altera or a megafunction partner. Title to +// the intellectual property, including patents, copyrights, trademarks, +// trade secrets, or maskworks, embodied in any such megafunction design, +// net list, support information, device programming or simulation file, or +// any other related documentation or information provided by Altera or a +// megafunction partner, remains with Altera, the megafunction partner, or +// their respective licensors. No other licenses, including any licenses +// needed under any third party's intellectual property, are provided herein. +//--> +// Retrieval info: <instance entity-name="altera_fp_functions" version="20.1" > +// Retrieval info: <generic name="FUNCTION_FAMILY" value="ARITH" /> +// Retrieval info: <generic name="ARITH_function" value="MUL" /> +// Retrieval info: <generic name="CONVERT_function" value="FXP_FP" /> +// Retrieval info: <generic name="ALL_function" value="ADD" /> +// Retrieval info: <generic name="EXP_LOG_function" value="EXPE" /> +// Retrieval info: <generic name="TRIG_function" value="SIN" /> +// Retrieval info: <generic name="COMPARE_function" value="MIN" /> +// Retrieval info: <generic name="ROOTS_function" value="SQRT" /> +// Retrieval info: <generic name="fp_format" value="single" /> +// Retrieval info: <generic name="fp_exp" value="8" /> +// Retrieval info: <generic name="fp_man" value="23" /> +// Retrieval info: <generic name="exponent_width" value="23" /> +// Retrieval info: <generic name="frequency_target" value="200" /> +// Retrieval info: <generic name="latency_target" value="2" /> +// Retrieval info: <generic name="performance_goal" value="frequency" /> +// Retrieval info: <generic name="rounding_mode" value="nearest with tie breaking away from zero" /> +// Retrieval info: <generic name="faithful_rounding" value="true" /> +// Retrieval info: <generic name="gen_enable" value="false" /> +// Retrieval info: <generic name="divide_type" value="0" /> +// Retrieval info: <generic name="select_signal_enable" value="false" /> +// Retrieval info: <generic name="scale_by_pi" value="false" /> +// Retrieval info: <generic name="number_of_inputs" value="2" /> +// Retrieval info: <generic name="trig_no_range_reduction" value="false" /> +// Retrieval info: <generic name="report_resources_to_xml" value="false" /> +// Retrieval info: <generic name="fxpt_width" value="32" /> +// Retrieval info: <generic name="fxpt_fraction" value="0" /> +// Retrieval info: <generic name="fxpt_sign" value="1" /> +// Retrieval info: <generic name="fp_out_format" value="single" /> +// Retrieval info: <generic name="fp_out_exp" value="8" /> +// Retrieval info: <generic name="fp_out_man" value="23" /> +// Retrieval info: <generic name="fp_in_format" value="single" /> +// Retrieval info: <generic name="fp_in_exp" value="8" /> +// Retrieval info: <generic name="fp_in_man" value="23" /> +// Retrieval info: <generic name="enable_hard_fp" value="true" /> +// Retrieval info: <generic name="manual_dsp_planning" value="true" /> +// Retrieval info: <generic name="forceRegisters" value="1111" /> +// Retrieval info: <generic name="selected_device_family" value="Cyclone V" /> +// Retrieval info: <generic name="selected_device_speedgrade" value="7" /> +// Retrieval info: </instance> +// IPFS_FILES : ip_fp_mul.vo +// RELATED_FILES: ip_fp_mul.v, dspba_library_package.vhd, dspba_library.vhd, ip_fp_mul_0002.vhd diff --git a/ip/ip_fp_mul/dspba_library.vhd b/ip/ip_fp_mul/dspba_library.vhd new file mode 100644 index 0000000..c38c661 --- /dev/null +++ b/ip/ip_fp_mul/dspba_library.vhd @@ -0,0 +1,377 @@ +-- Legal Notice: Copyright 2017 Intel Corporation. All rights reserved. +-- Your use of Intel Corporation's design tools, logic functions and other +-- software and tools, and its AMPP partner logic functions, and any output +-- files any of the foregoing device programming or simulation files), and +-- any associated documentation or information are expressly subject to the +-- terms and conditions of the Intel FPGA Software License Agreement, +-- Intel MegaCore Function License Agreement, or other applicable license +-- agreement, including, without limitation, that your use is for the sole +-- purpose of programming logic devices manufactured by Intel and sold by +-- Intel or its authorized distributors. Please refer to the applicable +-- agreement for further details. + + +library IEEE; +use IEEE.std_logic_1164.all; +use work.dspba_library_package.all; + +entity dspba_delay is + generic ( + width : natural := 8; + depth : natural := 1; + reset_high : std_logic := '1'; + reset_kind : string := "ASYNC" + ); + port ( + clk : in std_logic; + aclr : in std_logic; + ena : in std_logic := '1'; + xin : in std_logic_vector(width-1 downto 0); + xout : out std_logic_vector(width-1 downto 0) + ); +end dspba_delay; + +architecture delay of dspba_delay is + type delay_array is array (depth downto 0) of std_logic_vector(width-1 downto 0); + signal delay_signals : delay_array; +begin + delay_signals(depth) <= xin; + + delay_block: if 0 < depth generate + begin + delay_loop: for i in depth-1 downto 0 generate + begin + async_reset: if reset_kind = "ASYNC" generate + process(clk, aclr) + begin + if aclr=reset_high then + delay_signals(i) <= (others => '0'); + elsif clk'event and clk='1' then + if ena='1' then + delay_signals(i) <= delay_signals(i + 1); + end if; + end if; + end process; + end generate; + + sync_reset: if reset_kind = "SYNC" generate + process(clk) + begin + if clk'event and clk='1' then + if aclr=reset_high then + delay_signals(i) <= (others => '0'); + elsif ena='1' then + delay_signals(i) <= delay_signals(i + 1); + end if; + end if; + end process; + end generate; + + no_reset: if reset_kind = "NONE" generate + process(clk) + begin + if clk'event and clk='1' then + if ena='1' then + delay_signals(i) <= delay_signals(i + 1); + end if; + end if; + end process; + end generate; + end generate; + end generate; + + xout <= delay_signals(0); +end delay; + +-------------------------------------------------------------------------------- + +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.NUMERIC_STD.all; +use work.dspba_library_package.all; + +entity dspba_sync_reg is + generic ( + width1 : natural := 8; + init_value : std_logic_vector; + width2 : natural := 8; + depth : natural := 2; + pulse_multiplier : natural := 1; + counter_width : natural := 8; + reset1_high : std_logic := '1'; + reset2_high : std_logic := '1'; + reset_kind : string := "ASYNC" + ); + port ( + clk1 : in std_logic; + aclr1 : in std_logic; + ena : in std_logic_vector(0 downto 0); + xin : in std_logic_vector(width1-1 downto 0); + xout : out std_logic_vector(width1-1 downto 0); + clk2 : in std_logic; + aclr2 : in std_logic; + sxout : out std_logic_vector(width2-1 downto 0) + ); +end entity; + +architecture sync_reg of dspba_sync_reg is + type bit_array is array (depth-1 downto 0) of std_logic; + + signal iclk_enable : std_logic; + signal iclk_data : std_logic_vector(width1-1 downto 0); + signal oclk_data : std_logic_vector(width2-1 downto 0); + + -- For Synthesis this means: preserve this registers and do not merge any other flip-flops with synchronizer flip-flops + -- For TimeQuest this means: identify these flip-flops as synchronizer to enable automatic MTBF analysis + signal sync_regs : bit_array; + attribute altera_attribute : string; + attribute altera_attribute of sync_regs : signal is "-name ADV_NETLIST_OPT_ALLOWED NEVER_ALLOW; -name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON"; + + signal oclk_enable : std_logic; + + constant init_value_internal : std_logic_vector(width1-1 downto 0) := init_value; + + signal counter : UNSIGNED(counter_width-1 downto 0); + signal ena_internal : std_logic; +begin + oclk_enable <= sync_regs(depth-1); + + no_multiplication: if pulse_multiplier=1 generate + ena_internal <= ena(0); + end generate; + + async_reset: if reset_kind="ASYNC" generate + + multiply_ena: if pulse_multiplier>1 generate + ena_internal <= '1' when counter>0 else ena(0); + process (clk1, aclr1) + begin + if aclr1=reset1_high then + counter <= (others => '0'); + elsif clk1'event and clk1='1' then + if counter>0 then + if counter=pulse_multiplier-1 then + counter <= (others => '0'); + else + counter <= counter + TO_UNSIGNED(1, counter_width); + end if; + else + if ena(0)='1' then + counter <= TO_UNSIGNED(1, counter_width); + end if; + end if; + end if; + end process; + end generate; + + process (clk1, aclr1) + begin + if aclr1=reset1_high then + iclk_enable <= '0'; + iclk_data <= init_value_internal; + elsif clk1'event and clk1='1' then + iclk_enable <= ena_internal; + if ena(0)='1' then + iclk_data <= xin; + end if; + end if; + end process; + + sync_reg_loop: for i in 0 to depth-1 generate + process (clk2, aclr2) + begin + if aclr2=reset2_high then + sync_regs(i) <= '0'; + elsif clk2'event and clk2='1' then + if i>0 then + sync_regs(i) <= sync_regs(i-1); + else + sync_regs(i) <= iclk_enable; + end if; + end if; + end process; + end generate; + + process (clk2, aclr2) + begin + if aclr2=reset2_high then + oclk_data <= init_value_internal(width2-1 downto 0); + elsif clk2'event and clk2='1' then + if oclk_enable='1' then + oclk_data <= iclk_data(width2-1 downto 0); + end if; + end if; + end process; + end generate; + + sync_reset: if reset_kind="SYNC" generate + + multiply_ena: if pulse_multiplier>1 generate + ena_internal <= '1' when counter>0 else ena(0); + process (clk1) + begin + if clk1'event and clk1='1' then + if aclr1=reset1_high then + counter <= (others => '0'); + else + if counter>0 then + if counter=pulse_multiplier-1 then + counter <= (others => '0'); + else + counter <= counter + TO_UNSIGNED(1, counter_width); + end if; + else + if ena(0)='1' then + counter <= TO_UNSIGNED(1, counter_width); + end if; + end if; + end if; + end if; + end process; + end generate; + + process (clk1) + begin + if clk1'event and clk1='1' then + if aclr1=reset1_high then + iclk_enable <= '0'; + iclk_data <= init_value_internal; + else + iclk_enable <= ena_internal; + if ena(0)='1' then + iclk_data <= xin; + end if; + end if; + end if; + end process; + + sync_reg_loop: for i in 0 to depth-1 generate + process (clk2) + begin + if clk2'event and clk2='1' then + if aclr2=reset2_high then + sync_regs(i) <= '0'; + else + if i>0 then + sync_regs(i) <= sync_regs(i-1); + else + sync_regs(i) <= iclk_enable; + end if; + end if; + end if; + end process; + end generate; + + process (clk2) + begin + if clk2'event and clk2='1' then + if aclr2=reset2_high then + oclk_data <= init_value_internal(width2-1 downto 0); + elsif oclk_enable='1' then + oclk_data <= iclk_data(width2-1 downto 0); + end if; + end if; + end process; + end generate; + + none_reset: if reset_kind="NONE" generate + + multiply_ena: if pulse_multiplier>1 generate + ena_internal <= '1' when counter>0 else ena(0); + process (clk1, aclr1) + begin + if clk1'event and clk1='1' then + if counter>0 then + if counter=pulse_multiplier-1 then + counter <= (others => '0'); + else + counter <= counter + TO_UNSIGNED(1, counter_width); + end if; + else + if ena(0)='1' then + counter <= TO_UNSIGNED(1, counter_width); + end if; + end if; + end if; + end process; + end generate; + + process (clk1) + begin + if clk1'event and clk1='1' then + iclk_enable <= ena_internal; + if ena(0)='1' then + iclk_data <= xin; + end if; + end if; + end process; + + sync_reg_loop: for i in 0 to depth-1 generate + process (clk2) + begin + if clk2'event and clk2='1' then + if i>0 then + sync_regs(i) <= sync_regs(i-1); + else + sync_regs(i) <= iclk_enable; + end if; + end if; + end process; + end generate; + + process (clk2) + begin + if clk2'event and clk2='1' then + if oclk_enable='1' then + oclk_data <= iclk_data(width2-1 downto 0); + end if; + end if; + end process; + end generate; + + xout <= iclk_data; + sxout <= oclk_data; + +end sync_reg; + +-------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity dspba_pipe is + generic( + num_bits : positive := 8; + num_stages : natural := 0; + init_value : std_logic := 'X' + ); + port( + clk: in std_logic; + d : in std_logic_vector(num_bits-1 downto 0); + q : out std_logic_vector(num_bits-1 downto 0) + ); +end entity dspba_pipe; + +architecture rtl of dspba_pipe is + attribute altera_attribute : string; + attribute altera_attribute of rtl : architecture is "-name AUTO_SHIFT_REGISTER_RECOGNITION off"; + + type stage_array_type is array(0 to num_stages) of std_logic_vector(num_bits-1 downto 0); + signal stage_array : stage_array_type := (others => (others => init_value)); +begin + stage_array(0) <= d; + + g_pipe : for i in 1 to num_stages generate + p_stage : process (clk) is + begin + if rising_edge(clk) then + stage_array(i) <= stage_array(i-1); + end if; + end process p_stage; + end generate g_pipe; + + q <= stage_array(num_stages); + +end rtl; + diff --git a/ip/ip_fp_mul/dspba_library_package.vhd b/ip/ip_fp_mul/dspba_library_package.vhd new file mode 100644 index 0000000..d03bca8 --- /dev/null +++ b/ip/ip_fp_mul/dspba_library_package.vhd @@ -0,0 +1,72 @@ +-- Legal Notice: Copyright 2017 Intel Corporation. All rights reserved. +-- Your use of Intel Corporation's design tools, logic functions and other +-- software and tools, and its AMPP partner logic functions, and any output +-- files any of the foregoing device programming or simulation files), and +-- any associated documentation or information are expressly subject to the +-- terms and conditions of the Intel FPGA Software License Agreement, +-- Intel MegaCore Function License Agreement, or other applicable license +-- agreement, including, without limitation, that your use is for the sole +-- purpose of programming logic devices manufactured by Intel and sold by +-- Intel or its authorized distributors. Please refer to the applicable +-- agreement for further details. + + +library IEEE; +use IEEE.std_logic_1164.all; + +package dspba_library_package is + + component dspba_delay is + generic ( + width : natural := 8; + depth : natural := 1; + reset_high : std_logic := '1'; + reset_kind : string := "ASYNC" + ); + port ( + clk : in std_logic; + aclr : in std_logic; + ena : in std_logic := '1'; + xin : in std_logic_vector(width-1 downto 0); + xout : out std_logic_vector(width-1 downto 0) + ); + end component; + + component dspba_sync_reg is + generic ( + width1 : natural := 8; + width2 : natural := 8; + depth : natural := 2; + init_value : std_logic_vector; + pulse_multiplier : natural := 1; + counter_width : natural := 8; + reset1_high : std_logic := '1'; + reset2_high : std_logic := '1'; + reset_kind : string := "ASYNC" + ); + port ( + clk1 : in std_logic; + aclr1 : in std_logic; + ena : in std_logic_vector(0 downto 0); + xin : in std_logic_vector(width1-1 downto 0); + xout : out std_logic_vector(width1-1 downto 0); + clk2 : in std_logic; + aclr2 : in std_logic; + sxout : out std_logic_vector(width2-1 downto 0) + ); + end component; + + component dspba_pipe is + generic( + num_bits : positive; + num_stages : natural; + init_value : std_logic := 'X' + ); + port( + clk: in std_logic; + d : in std_logic_vector(num_bits-1 downto 0); + q : out std_logic_vector(num_bits-1 downto 0) + ); + end component dspba_pipe; + +end dspba_library_package; diff --git a/ip/ip_fp_mul/ip_fp_mul_0002.vhd b/ip/ip_fp_mul/ip_fp_mul_0002.vhd new file mode 100644 index 0000000..456a1b5 --- /dev/null +++ b/ip/ip_fp_mul/ip_fp_mul_0002.vhd @@ -0,0 +1,679 @@ +-- ------------------------------------------------------------------------- +-- High Level Design Compiler for Intel(R) FPGAs Version 20.1 (Release Build #720) +-- Quartus Prime development tool and MATLAB/Simulink Interface +-- +-- Legal Notice: Copyright 2020 Intel Corporation. All rights reserved. +-- Your use of Intel Corporation's design tools, logic functions and other +-- software and tools, and its AMPP partner logic functions, and any output +-- files any of the foregoing (including device programming or simulation +-- files), and any associated documentation or information are expressly +-- subject to the terms and conditions of the Intel FPGA Software License +-- Agreement, Intel MegaCore Function License Agreement, or other applicable +-- license agreement, including, without limitation, that your use is for +-- the sole purpose of programming logic devices manufactured by Intel +-- and sold by Intel or its authorized distributors. Please refer to the +-- applicable agreement for further details. +-- --------------------------------------------------------------------------- + +-- VHDL created from ip_fp_mul_0002 +-- VHDL created on Fri Oct 20 22:55:53 2023 + + +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.NUMERIC_STD.all; +use IEEE.MATH_REAL.all; +use std.TextIO.all; +use work.dspba_library_package.all; + +LIBRARY altera_mf; +USE altera_mf.altera_mf_components.all; +LIBRARY altera_lnsim; +USE altera_lnsim.altera_lnsim_components.altera_syncram; +LIBRARY lpm; +USE lpm.lpm_components.all; + +entity ip_fp_mul_0002 is + port ( + a : in std_logic_vector(31 downto 0); -- float32_m23 + b : in std_logic_vector(31 downto 0); -- float32_m23 + q : out std_logic_vector(31 downto 0); -- float32_m23 + clk : in std_logic; + areset : in std_logic + ); +end ip_fp_mul_0002; + +architecture normal of ip_fp_mul_0002 is + + attribute altera_attribute : string; + attribute altera_attribute of normal : architecture is "-name AUTO_SHIFT_REGISTER_RECOGNITION OFF; -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION ON; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 10037; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 15400; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 12020; -name MESSAGE_DISABLE 12030; -name MESSAGE_DISABLE 12010; -name MESSAGE_DISABLE 12110; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 13410; -name MESSAGE_DISABLE 113007"; + + signal GND_q : STD_LOGIC_VECTOR (0 downto 0); + signal VCC_q : STD_LOGIC_VECTOR (0 downto 0); + signal expX_uid6_fpMulTest_b : STD_LOGIC_VECTOR (7 downto 0); + signal expY_uid7_fpMulTest_b : STD_LOGIC_VECTOR (7 downto 0); + signal signX_uid8_fpMulTest_b : STD_LOGIC_VECTOR (0 downto 0); + signal signY_uid9_fpMulTest_b : STD_LOGIC_VECTOR (0 downto 0); + signal cstAllOWE_uid10_fpMulTest_q : STD_LOGIC_VECTOR (7 downto 0); + signal cstZeroWF_uid11_fpMulTest_q : STD_LOGIC_VECTOR (22 downto 0); + signal cstAllZWE_uid12_fpMulTest_q : STD_LOGIC_VECTOR (7 downto 0); + signal frac_x_uid14_fpMulTest_b : STD_LOGIC_VECTOR (22 downto 0); + signal excZ_x_uid15_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excZ_x_uid15_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal expXIsMax_uid16_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal expXIsMax_uid16_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsZero_uid17_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsZero_uid17_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsNotZero_uid18_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsNotZero_uid18_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excI_x_uid19_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excI_x_uid19_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excN_x_uid20_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal invExpXIsMax_uid21_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal InvExpXIsZero_uid22_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excR_x_uid23_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excR_x_uid23_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal frac_y_uid28_fpMulTest_b : STD_LOGIC_VECTOR (22 downto 0); + signal excZ_y_uid29_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excZ_y_uid29_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal expXIsMax_uid30_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal expXIsMax_uid30_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsZero_uid31_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsZero_uid31_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsNotZero_uid32_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal fracXIsNotZero_uid32_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excI_y_uid33_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excI_y_uid33_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excN_y_uid34_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal invExpXIsMax_uid35_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal InvExpXIsZero_uid36_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excR_y_uid37_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excR_y_uid37_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal ofracX_uid40_fpMulTest_q : STD_LOGIC_VECTOR (23 downto 0); + signal ofracY_uid43_fpMulTest_q : STD_LOGIC_VECTOR (23 downto 0); + signal expSum_uid44_fpMulTest_a : STD_LOGIC_VECTOR (8 downto 0); + signal expSum_uid44_fpMulTest_b : STD_LOGIC_VECTOR (8 downto 0); + signal expSum_uid44_fpMulTest_o : STD_LOGIC_VECTOR (8 downto 0); + signal expSum_uid44_fpMulTest_q : STD_LOGIC_VECTOR (8 downto 0); + signal biasInc_uid45_fpMulTest_q : STD_LOGIC_VECTOR (9 downto 0); + signal expSumMBias_uid46_fpMulTest_a : STD_LOGIC_VECTOR (11 downto 0); + signal expSumMBias_uid46_fpMulTest_b : STD_LOGIC_VECTOR (11 downto 0); + signal expSumMBias_uid46_fpMulTest_o : STD_LOGIC_VECTOR (11 downto 0); + signal expSumMBias_uid46_fpMulTest_q : STD_LOGIC_VECTOR (10 downto 0); + signal signR_uid48_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal signR_uid48_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal normalizeBit_uid49_fpMulTest_b : STD_LOGIC_VECTOR (0 downto 0); + signal fracRPostNormHigh_uid51_fpMulTest_in : STD_LOGIC_VECTOR (24 downto 0); + signal fracRPostNormHigh_uid51_fpMulTest_b : STD_LOGIC_VECTOR (23 downto 0); + signal fracRPostNormLow_uid52_fpMulTest_in : STD_LOGIC_VECTOR (23 downto 0); + signal fracRPostNormLow_uid52_fpMulTest_b : STD_LOGIC_VECTOR (23 downto 0); + signal fracRPostNorm_uid53_fpMulTest_s : STD_LOGIC_VECTOR (0 downto 0); + signal fracRPostNorm_uid53_fpMulTest_q : STD_LOGIC_VECTOR (23 downto 0); + signal expFracPreRound_uid55_fpMulTest_q : STD_LOGIC_VECTOR (34 downto 0); + signal roundBitAndNormalizationOp_uid57_fpMulTest_q : STD_LOGIC_VECTOR (25 downto 0); + signal expFracRPostRounding_uid58_fpMulTest_a : STD_LOGIC_VECTOR (36 downto 0); + signal expFracRPostRounding_uid58_fpMulTest_b : STD_LOGIC_VECTOR (36 downto 0); + signal expFracRPostRounding_uid58_fpMulTest_o : STD_LOGIC_VECTOR (36 downto 0); + signal expFracRPostRounding_uid58_fpMulTest_q : STD_LOGIC_VECTOR (35 downto 0); + signal fracRPreExc_uid59_fpMulTest_in : STD_LOGIC_VECTOR (23 downto 0); + signal fracRPreExc_uid59_fpMulTest_b : STD_LOGIC_VECTOR (22 downto 0); + signal expRPreExcExt_uid60_fpMulTest_b : STD_LOGIC_VECTOR (11 downto 0); + signal expRPreExc_uid61_fpMulTest_in : STD_LOGIC_VECTOR (7 downto 0); + signal expRPreExc_uid61_fpMulTest_b : STD_LOGIC_VECTOR (7 downto 0); + signal expUdf_uid62_fpMulTest_a : STD_LOGIC_VECTOR (13 downto 0); + signal expUdf_uid62_fpMulTest_b : STD_LOGIC_VECTOR (13 downto 0); + signal expUdf_uid62_fpMulTest_o : STD_LOGIC_VECTOR (13 downto 0); + signal expUdf_uid62_fpMulTest_n : STD_LOGIC_VECTOR (0 downto 0); + signal expOvf_uid64_fpMulTest_a : STD_LOGIC_VECTOR (13 downto 0); + signal expOvf_uid64_fpMulTest_b : STD_LOGIC_VECTOR (13 downto 0); + signal expOvf_uid64_fpMulTest_o : STD_LOGIC_VECTOR (13 downto 0); + signal expOvf_uid64_fpMulTest_n : STD_LOGIC_VECTOR (0 downto 0); + signal excXZAndExcYZ_uid65_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excXZAndExcYR_uid66_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excYZAndExcXR_uid67_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excZC3_uid68_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excRZero_uid69_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excXIAndExcYI_uid70_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excXRAndExcYI_uid71_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excYRAndExcXI_uid72_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal ExcROvfAndInReg_uid73_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excRInf_uid74_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excYZAndExcXI_uid75_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excXZAndExcYI_uid76_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal ZeroTimesInf_uid77_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal excRNaN_uid78_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal excRNaN_uid78_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal concExc_uid79_fpMulTest_q : STD_LOGIC_VECTOR (2 downto 0); + signal excREnc_uid80_fpMulTest_q : STD_LOGIC_VECTOR (1 downto 0); + signal oneFracRPostExc2_uid81_fpMulTest_q : STD_LOGIC_VECTOR (22 downto 0); + signal fracRPostExc_uid84_fpMulTest_s : STD_LOGIC_VECTOR (1 downto 0); + signal fracRPostExc_uid84_fpMulTest_q : STD_LOGIC_VECTOR (22 downto 0); + signal expRPostExc_uid89_fpMulTest_s : STD_LOGIC_VECTOR (1 downto 0); + signal expRPostExc_uid89_fpMulTest_q : STD_LOGIC_VECTOR (7 downto 0); + signal invExcRNaN_uid90_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal signRPostExc_uid91_fpMulTest_qi : STD_LOGIC_VECTOR (0 downto 0); + signal signRPostExc_uid91_fpMulTest_q : STD_LOGIC_VECTOR (0 downto 0); + signal R_uid92_fpMulTest_q : STD_LOGIC_VECTOR (31 downto 0); + signal osig_uid95_prod_uid47_fpMulTest_b : STD_LOGIC_VECTOR (25 downto 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_reset : std_logic; + type prodXY_uid94_prod_uid47_fpMulTest_cma_a0type is array(NATURAL range <>) of UNSIGNED(23 downto 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_a0 : prodXY_uid94_prod_uid47_fpMulTest_cma_a0type(0 to 0); + attribute preserve : boolean; + attribute preserve of prodXY_uid94_prod_uid47_fpMulTest_cma_a0 : signal is true; + signal prodXY_uid94_prod_uid47_fpMulTest_cma_c0 : prodXY_uid94_prod_uid47_fpMulTest_cma_a0type(0 to 0); + attribute preserve of prodXY_uid94_prod_uid47_fpMulTest_cma_c0 : signal is true; + type prodXY_uid94_prod_uid47_fpMulTest_cma_ptype is array(NATURAL range <>) of UNSIGNED(47 downto 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_p : prodXY_uid94_prod_uid47_fpMulTest_cma_ptype(0 to 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_u : prodXY_uid94_prod_uid47_fpMulTest_cma_ptype(0 to 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_w : prodXY_uid94_prod_uid47_fpMulTest_cma_ptype(0 to 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_x : prodXY_uid94_prod_uid47_fpMulTest_cma_ptype(0 to 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_y : prodXY_uid94_prod_uid47_fpMulTest_cma_ptype(0 to 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_s : prodXY_uid94_prod_uid47_fpMulTest_cma_ptype(0 to 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_qq : STD_LOGIC_VECTOR (47 downto 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_q : STD_LOGIC_VECTOR (47 downto 0); + signal prodXY_uid94_prod_uid47_fpMulTest_cma_ena0 : std_logic; + signal prodXY_uid94_prod_uid47_fpMulTest_cma_ena1 : std_logic; + signal redist0_expRPreExc_uid61_fpMulTest_b_2_q : STD_LOGIC_VECTOR (7 downto 0); + signal redist1_expRPreExcExt_uid60_fpMulTest_b_1_q : STD_LOGIC_VECTOR (11 downto 0); + signal redist2_fracRPreExc_uid59_fpMulTest_b_3_q : STD_LOGIC_VECTOR (22 downto 0); + signal redist3_normalizeBit_uid49_fpMulTest_b_1_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist4_signR_uid48_fpMulTest_q_5_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist5_expSum_uid44_fpMulTest_q_2_q : STD_LOGIC_VECTOR (8 downto 0); + signal redist6_excI_y_uid33_fpMulTest_q_2_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist7_fracXIsZero_uid31_fpMulTest_q_3_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist8_expXIsMax_uid30_fpMulTest_q_3_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist9_expXIsMax_uid30_fpMulTest_q_4_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist10_excZ_y_uid29_fpMulTest_q_4_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist11_excZ_y_uid29_fpMulTest_q_5_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist12_excI_x_uid19_fpMulTest_q_2_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist13_fracXIsZero_uid17_fpMulTest_q_3_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist14_expXIsMax_uid16_fpMulTest_q_3_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist15_expXIsMax_uid16_fpMulTest_q_4_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist16_excZ_x_uid15_fpMulTest_q_4_q : STD_LOGIC_VECTOR (0 downto 0); + signal redist17_excZ_x_uid15_fpMulTest_q_5_q : STD_LOGIC_VECTOR (0 downto 0); + +begin + + + -- frac_x_uid14_fpMulTest(BITSELECT,13)@0 + frac_x_uid14_fpMulTest_b <= a(22 downto 0); + + -- cstZeroWF_uid11_fpMulTest(CONSTANT,10) + cstZeroWF_uid11_fpMulTest_q <= "00000000000000000000000"; + + -- fracXIsZero_uid17_fpMulTest(LOGICAL,16)@0 + 1 + fracXIsZero_uid17_fpMulTest_qi <= "1" WHEN cstZeroWF_uid11_fpMulTest_q = frac_x_uid14_fpMulTest_b ELSE "0"; + fracXIsZero_uid17_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracXIsZero_uid17_fpMulTest_qi, xout => fracXIsZero_uid17_fpMulTest_q, clk => clk, aclr => areset ); + + -- redist13_fracXIsZero_uid17_fpMulTest_q_3(DELAY,110) + redist13_fracXIsZero_uid17_fpMulTest_q_3 : dspba_delay + GENERIC MAP ( width => 1, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracXIsZero_uid17_fpMulTest_q, xout => redist13_fracXIsZero_uid17_fpMulTest_q_3_q, clk => clk, aclr => areset ); + + -- cstAllOWE_uid10_fpMulTest(CONSTANT,9) + cstAllOWE_uid10_fpMulTest_q <= "11111111"; + + -- expX_uid6_fpMulTest(BITSELECT,5)@0 + expX_uid6_fpMulTest_b <= a(30 downto 23); + + -- expXIsMax_uid16_fpMulTest(LOGICAL,15)@0 + 1 + expXIsMax_uid16_fpMulTest_qi <= "1" WHEN expX_uid6_fpMulTest_b = cstAllOWE_uid10_fpMulTest_q ELSE "0"; + expXIsMax_uid16_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => expXIsMax_uid16_fpMulTest_qi, xout => expXIsMax_uid16_fpMulTest_q, clk => clk, aclr => areset ); + + -- redist14_expXIsMax_uid16_fpMulTest_q_3(DELAY,111) + redist14_expXIsMax_uid16_fpMulTest_q_3 : dspba_delay + GENERIC MAP ( width => 1, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => expXIsMax_uid16_fpMulTest_q, xout => redist14_expXIsMax_uid16_fpMulTest_q_3_q, clk => clk, aclr => areset ); + + -- excI_x_uid19_fpMulTest(LOGICAL,18)@3 + 1 + excI_x_uid19_fpMulTest_qi <= redist14_expXIsMax_uid16_fpMulTest_q_3_q and redist13_fracXIsZero_uid17_fpMulTest_q_3_q; + excI_x_uid19_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excI_x_uid19_fpMulTest_qi, xout => excI_x_uid19_fpMulTest_q, clk => clk, aclr => areset ); + + -- cstAllZWE_uid12_fpMulTest(CONSTANT,11) + cstAllZWE_uid12_fpMulTest_q <= "00000000"; + + -- expY_uid7_fpMulTest(BITSELECT,6)@0 + expY_uid7_fpMulTest_b <= b(30 downto 23); + + -- excZ_y_uid29_fpMulTest(LOGICAL,28)@0 + 1 + excZ_y_uid29_fpMulTest_qi <= "1" WHEN expY_uid7_fpMulTest_b = cstAllZWE_uid12_fpMulTest_q ELSE "0"; + excZ_y_uid29_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excZ_y_uid29_fpMulTest_qi, xout => excZ_y_uid29_fpMulTest_q, clk => clk, aclr => areset ); + + -- redist10_excZ_y_uid29_fpMulTest_q_4(DELAY,107) + redist10_excZ_y_uid29_fpMulTest_q_4 : dspba_delay + GENERIC MAP ( width => 1, depth => 3, reset_kind => "ASYNC" ) + PORT MAP ( xin => excZ_y_uid29_fpMulTest_q, xout => redist10_excZ_y_uid29_fpMulTest_q_4_q, clk => clk, aclr => areset ); + + -- excYZAndExcXI_uid75_fpMulTest(LOGICAL,74)@4 + excYZAndExcXI_uid75_fpMulTest_q <= redist10_excZ_y_uid29_fpMulTest_q_4_q and excI_x_uid19_fpMulTest_q; + + -- frac_y_uid28_fpMulTest(BITSELECT,27)@0 + frac_y_uid28_fpMulTest_b <= b(22 downto 0); + + -- fracXIsZero_uid31_fpMulTest(LOGICAL,30)@0 + 1 + fracXIsZero_uid31_fpMulTest_qi <= "1" WHEN cstZeroWF_uid11_fpMulTest_q = frac_y_uid28_fpMulTest_b ELSE "0"; + fracXIsZero_uid31_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracXIsZero_uid31_fpMulTest_qi, xout => fracXIsZero_uid31_fpMulTest_q, clk => clk, aclr => areset ); + + -- redist7_fracXIsZero_uid31_fpMulTest_q_3(DELAY,104) + redist7_fracXIsZero_uid31_fpMulTest_q_3 : dspba_delay + GENERIC MAP ( width => 1, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracXIsZero_uid31_fpMulTest_q, xout => redist7_fracXIsZero_uid31_fpMulTest_q_3_q, clk => clk, aclr => areset ); + + -- expXIsMax_uid30_fpMulTest(LOGICAL,29)@0 + 1 + expXIsMax_uid30_fpMulTest_qi <= "1" WHEN expY_uid7_fpMulTest_b = cstAllOWE_uid10_fpMulTest_q ELSE "0"; + expXIsMax_uid30_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => expXIsMax_uid30_fpMulTest_qi, xout => expXIsMax_uid30_fpMulTest_q, clk => clk, aclr => areset ); + + -- redist8_expXIsMax_uid30_fpMulTest_q_3(DELAY,105) + redist8_expXIsMax_uid30_fpMulTest_q_3 : dspba_delay + GENERIC MAP ( width => 1, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => expXIsMax_uid30_fpMulTest_q, xout => redist8_expXIsMax_uid30_fpMulTest_q_3_q, clk => clk, aclr => areset ); + + -- excI_y_uid33_fpMulTest(LOGICAL,32)@3 + 1 + excI_y_uid33_fpMulTest_qi <= redist8_expXIsMax_uid30_fpMulTest_q_3_q and redist7_fracXIsZero_uid31_fpMulTest_q_3_q; + excI_y_uid33_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excI_y_uid33_fpMulTest_qi, xout => excI_y_uid33_fpMulTest_q, clk => clk, aclr => areset ); + + -- excZ_x_uid15_fpMulTest(LOGICAL,14)@0 + 1 + excZ_x_uid15_fpMulTest_qi <= "1" WHEN expX_uid6_fpMulTest_b = cstAllZWE_uid12_fpMulTest_q ELSE "0"; + excZ_x_uid15_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excZ_x_uid15_fpMulTest_qi, xout => excZ_x_uid15_fpMulTest_q, clk => clk, aclr => areset ); + + -- redist16_excZ_x_uid15_fpMulTest_q_4(DELAY,113) + redist16_excZ_x_uid15_fpMulTest_q_4 : dspba_delay + GENERIC MAP ( width => 1, depth => 3, reset_kind => "ASYNC" ) + PORT MAP ( xin => excZ_x_uid15_fpMulTest_q, xout => redist16_excZ_x_uid15_fpMulTest_q_4_q, clk => clk, aclr => areset ); + + -- excXZAndExcYI_uid76_fpMulTest(LOGICAL,75)@4 + excXZAndExcYI_uid76_fpMulTest_q <= redist16_excZ_x_uid15_fpMulTest_q_4_q and excI_y_uid33_fpMulTest_q; + + -- ZeroTimesInf_uid77_fpMulTest(LOGICAL,76)@4 + ZeroTimesInf_uid77_fpMulTest_q <= excXZAndExcYI_uid76_fpMulTest_q or excYZAndExcXI_uid75_fpMulTest_q; + + -- fracXIsNotZero_uid32_fpMulTest(LOGICAL,31)@3 + 1 + fracXIsNotZero_uid32_fpMulTest_qi <= not (redist7_fracXIsZero_uid31_fpMulTest_q_3_q); + fracXIsNotZero_uid32_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracXIsNotZero_uid32_fpMulTest_qi, xout => fracXIsNotZero_uid32_fpMulTest_q, clk => clk, aclr => areset ); + + -- redist9_expXIsMax_uid30_fpMulTest_q_4(DELAY,106) + redist9_expXIsMax_uid30_fpMulTest_q_4 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => redist8_expXIsMax_uid30_fpMulTest_q_3_q, xout => redist9_expXIsMax_uid30_fpMulTest_q_4_q, clk => clk, aclr => areset ); + + -- excN_y_uid34_fpMulTest(LOGICAL,33)@4 + excN_y_uid34_fpMulTest_q <= redist9_expXIsMax_uid30_fpMulTest_q_4_q and fracXIsNotZero_uid32_fpMulTest_q; + + -- fracXIsNotZero_uid18_fpMulTest(LOGICAL,17)@3 + 1 + fracXIsNotZero_uid18_fpMulTest_qi <= not (redist13_fracXIsZero_uid17_fpMulTest_q_3_q); + fracXIsNotZero_uid18_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracXIsNotZero_uid18_fpMulTest_qi, xout => fracXIsNotZero_uid18_fpMulTest_q, clk => clk, aclr => areset ); + + -- redist15_expXIsMax_uid16_fpMulTest_q_4(DELAY,112) + redist15_expXIsMax_uid16_fpMulTest_q_4 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => redist14_expXIsMax_uid16_fpMulTest_q_3_q, xout => redist15_expXIsMax_uid16_fpMulTest_q_4_q, clk => clk, aclr => areset ); + + -- excN_x_uid20_fpMulTest(LOGICAL,19)@4 + excN_x_uid20_fpMulTest_q <= redist15_expXIsMax_uid16_fpMulTest_q_4_q and fracXIsNotZero_uid18_fpMulTest_q; + + -- excRNaN_uid78_fpMulTest(LOGICAL,77)@4 + 1 + excRNaN_uid78_fpMulTest_qi <= excN_x_uid20_fpMulTest_q or excN_y_uid34_fpMulTest_q or ZeroTimesInf_uid77_fpMulTest_q; + excRNaN_uid78_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excRNaN_uid78_fpMulTest_qi, xout => excRNaN_uid78_fpMulTest_q, clk => clk, aclr => areset ); + + -- invExcRNaN_uid90_fpMulTest(LOGICAL,89)@5 + invExcRNaN_uid90_fpMulTest_q <= not (excRNaN_uid78_fpMulTest_q); + + -- signY_uid9_fpMulTest(BITSELECT,8)@0 + signY_uid9_fpMulTest_b <= STD_LOGIC_VECTOR(b(31 downto 31)); + + -- signX_uid8_fpMulTest(BITSELECT,7)@0 + signX_uid8_fpMulTest_b <= STD_LOGIC_VECTOR(a(31 downto 31)); + + -- signR_uid48_fpMulTest(LOGICAL,47)@0 + 1 + signR_uid48_fpMulTest_qi <= signX_uid8_fpMulTest_b xor signY_uid9_fpMulTest_b; + signR_uid48_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => signR_uid48_fpMulTest_qi, xout => signR_uid48_fpMulTest_q, clk => clk, aclr => areset ); + + -- redist4_signR_uid48_fpMulTest_q_5(DELAY,101) + redist4_signR_uid48_fpMulTest_q_5 : dspba_delay + GENERIC MAP ( width => 1, depth => 4, reset_kind => "ASYNC" ) + PORT MAP ( xin => signR_uid48_fpMulTest_q, xout => redist4_signR_uid48_fpMulTest_q_5_q, clk => clk, aclr => areset ); + + -- VCC(CONSTANT,1) + VCC_q <= "1"; + + -- signRPostExc_uid91_fpMulTest(LOGICAL,90)@5 + 1 + signRPostExc_uid91_fpMulTest_qi <= redist4_signR_uid48_fpMulTest_q_5_q and invExcRNaN_uid90_fpMulTest_q; + signRPostExc_uid91_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => signRPostExc_uid91_fpMulTest_qi, xout => signRPostExc_uid91_fpMulTest_q, clk => clk, aclr => areset ); + + -- GND(CONSTANT,0) + GND_q <= "0"; + + -- ofracY_uid43_fpMulTest(BITJOIN,42)@0 + ofracY_uid43_fpMulTest_q <= VCC_q & frac_y_uid28_fpMulTest_b; + + -- ofracX_uid40_fpMulTest(BITJOIN,39)@0 + ofracX_uid40_fpMulTest_q <= VCC_q & frac_x_uid14_fpMulTest_b; + + -- prodXY_uid94_prod_uid47_fpMulTest_cma(CHAINMULTADD,96)@0 + 2 + prodXY_uid94_prod_uid47_fpMulTest_cma_reset <= areset; + prodXY_uid94_prod_uid47_fpMulTest_cma_ena0 <= '1'; + prodXY_uid94_prod_uid47_fpMulTest_cma_ena1 <= prodXY_uid94_prod_uid47_fpMulTest_cma_ena0; + prodXY_uid94_prod_uid47_fpMulTest_cma_p(0) <= prodXY_uid94_prod_uid47_fpMulTest_cma_a0(0) * prodXY_uid94_prod_uid47_fpMulTest_cma_c0(0); + prodXY_uid94_prod_uid47_fpMulTest_cma_u(0) <= RESIZE(prodXY_uid94_prod_uid47_fpMulTest_cma_p(0),48); + prodXY_uid94_prod_uid47_fpMulTest_cma_w(0) <= prodXY_uid94_prod_uid47_fpMulTest_cma_u(0); + prodXY_uid94_prod_uid47_fpMulTest_cma_x(0) <= prodXY_uid94_prod_uid47_fpMulTest_cma_w(0); + prodXY_uid94_prod_uid47_fpMulTest_cma_y(0) <= prodXY_uid94_prod_uid47_fpMulTest_cma_x(0); + prodXY_uid94_prod_uid47_fpMulTest_cma_chainmultadd_input: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + prodXY_uid94_prod_uid47_fpMulTest_cma_a0 <= (others => (others => '0')); + prodXY_uid94_prod_uid47_fpMulTest_cma_c0 <= (others => (others => '0')); + ELSIF (clk'EVENT AND clk = '1') THEN + IF (prodXY_uid94_prod_uid47_fpMulTest_cma_ena0 = '1') THEN + prodXY_uid94_prod_uid47_fpMulTest_cma_a0(0) <= RESIZE(UNSIGNED(ofracX_uid40_fpMulTest_q),24); + prodXY_uid94_prod_uid47_fpMulTest_cma_c0(0) <= RESIZE(UNSIGNED(ofracY_uid43_fpMulTest_q),24); + END IF; + END IF; + END PROCESS; + prodXY_uid94_prod_uid47_fpMulTest_cma_chainmultadd_output: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + prodXY_uid94_prod_uid47_fpMulTest_cma_s <= (others => (others => '0')); + ELSIF (clk'EVENT AND clk = '1') THEN + IF (prodXY_uid94_prod_uid47_fpMulTest_cma_ena1 = '1') THEN + prodXY_uid94_prod_uid47_fpMulTest_cma_s(0) <= prodXY_uid94_prod_uid47_fpMulTest_cma_y(0); + END IF; + END IF; + END PROCESS; + prodXY_uid94_prod_uid47_fpMulTest_cma_delay : dspba_delay + GENERIC MAP ( width => 48, depth => 0, reset_kind => "ASYNC" ) + PORT MAP ( xin => STD_LOGIC_VECTOR(prodXY_uid94_prod_uid47_fpMulTest_cma_s(0)(47 downto 0)), xout => prodXY_uid94_prod_uid47_fpMulTest_cma_qq, clk => clk, aclr => areset ); + prodXY_uid94_prod_uid47_fpMulTest_cma_q <= STD_LOGIC_VECTOR(prodXY_uid94_prod_uid47_fpMulTest_cma_qq(47 downto 0)); + + -- osig_uid95_prod_uid47_fpMulTest(BITSELECT,94)@2 + osig_uid95_prod_uid47_fpMulTest_b <= prodXY_uid94_prod_uid47_fpMulTest_cma_q(47 downto 22); + + -- normalizeBit_uid49_fpMulTest(BITSELECT,48)@2 + normalizeBit_uid49_fpMulTest_b <= STD_LOGIC_VECTOR(osig_uid95_prod_uid47_fpMulTest_b(25 downto 25)); + + -- redist3_normalizeBit_uid49_fpMulTest_b_1(DELAY,100) + redist3_normalizeBit_uid49_fpMulTest_b_1 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => normalizeBit_uid49_fpMulTest_b, xout => redist3_normalizeBit_uid49_fpMulTest_b_1_q, clk => clk, aclr => areset ); + + -- roundBitAndNormalizationOp_uid57_fpMulTest(BITJOIN,56)@3 + roundBitAndNormalizationOp_uid57_fpMulTest_q <= GND_q & redist3_normalizeBit_uid49_fpMulTest_b_1_q & cstZeroWF_uid11_fpMulTest_q & VCC_q; + + -- biasInc_uid45_fpMulTest(CONSTANT,44) + biasInc_uid45_fpMulTest_q <= "0001111111"; + + -- expSum_uid44_fpMulTest(ADD,43)@0 + 1 + expSum_uid44_fpMulTest_a <= STD_LOGIC_VECTOR("0" & expX_uid6_fpMulTest_b); + expSum_uid44_fpMulTest_b <= STD_LOGIC_VECTOR("0" & expY_uid7_fpMulTest_b); + expSum_uid44_fpMulTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + expSum_uid44_fpMulTest_o <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + expSum_uid44_fpMulTest_o <= STD_LOGIC_VECTOR(UNSIGNED(expSum_uid44_fpMulTest_a) + UNSIGNED(expSum_uid44_fpMulTest_b)); + END IF; + END PROCESS; + expSum_uid44_fpMulTest_q <= expSum_uid44_fpMulTest_o(8 downto 0); + + -- redist5_expSum_uid44_fpMulTest_q_2(DELAY,102) + redist5_expSum_uid44_fpMulTest_q_2 : dspba_delay + GENERIC MAP ( width => 9, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => expSum_uid44_fpMulTest_q, xout => redist5_expSum_uid44_fpMulTest_q_2_q, clk => clk, aclr => areset ); + + -- expSumMBias_uid46_fpMulTest(SUB,45)@2 + 1 + expSumMBias_uid46_fpMulTest_a <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR("000" & redist5_expSum_uid44_fpMulTest_q_2_q)); + expSumMBias_uid46_fpMulTest_b <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((11 downto 10 => biasInc_uid45_fpMulTest_q(9)) & biasInc_uid45_fpMulTest_q)); + expSumMBias_uid46_fpMulTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + expSumMBias_uid46_fpMulTest_o <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + expSumMBias_uid46_fpMulTest_o <= STD_LOGIC_VECTOR(SIGNED(expSumMBias_uid46_fpMulTest_a) - SIGNED(expSumMBias_uid46_fpMulTest_b)); + END IF; + END PROCESS; + expSumMBias_uid46_fpMulTest_q <= expSumMBias_uid46_fpMulTest_o(10 downto 0); + + -- fracRPostNormHigh_uid51_fpMulTest(BITSELECT,50)@2 + fracRPostNormHigh_uid51_fpMulTest_in <= osig_uid95_prod_uid47_fpMulTest_b(24 downto 0); + fracRPostNormHigh_uid51_fpMulTest_b <= fracRPostNormHigh_uid51_fpMulTest_in(24 downto 1); + + -- fracRPostNormLow_uid52_fpMulTest(BITSELECT,51)@2 + fracRPostNormLow_uid52_fpMulTest_in <= osig_uid95_prod_uid47_fpMulTest_b(23 downto 0); + fracRPostNormLow_uid52_fpMulTest_b <= fracRPostNormLow_uid52_fpMulTest_in(23 downto 0); + + -- fracRPostNorm_uid53_fpMulTest(MUX,52)@2 + 1 + fracRPostNorm_uid53_fpMulTest_s <= normalizeBit_uid49_fpMulTest_b; + fracRPostNorm_uid53_fpMulTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + fracRPostNorm_uid53_fpMulTest_q <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + CASE (fracRPostNorm_uid53_fpMulTest_s) IS + WHEN "0" => fracRPostNorm_uid53_fpMulTest_q <= fracRPostNormLow_uid52_fpMulTest_b; + WHEN "1" => fracRPostNorm_uid53_fpMulTest_q <= fracRPostNormHigh_uid51_fpMulTest_b; + WHEN OTHERS => fracRPostNorm_uid53_fpMulTest_q <= (others => '0'); + END CASE; + END IF; + END PROCESS; + + -- expFracPreRound_uid55_fpMulTest(BITJOIN,54)@3 + expFracPreRound_uid55_fpMulTest_q <= expSumMBias_uid46_fpMulTest_q & fracRPostNorm_uid53_fpMulTest_q; + + -- expFracRPostRounding_uid58_fpMulTest(ADD,57)@3 + expFracRPostRounding_uid58_fpMulTest_a <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((36 downto 35 => expFracPreRound_uid55_fpMulTest_q(34)) & expFracPreRound_uid55_fpMulTest_q)); + expFracRPostRounding_uid58_fpMulTest_b <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR("00000000000" & roundBitAndNormalizationOp_uid57_fpMulTest_q)); + expFracRPostRounding_uid58_fpMulTest_o <= STD_LOGIC_VECTOR(SIGNED(expFracRPostRounding_uid58_fpMulTest_a) + SIGNED(expFracRPostRounding_uid58_fpMulTest_b)); + expFracRPostRounding_uid58_fpMulTest_q <= expFracRPostRounding_uid58_fpMulTest_o(35 downto 0); + + -- expRPreExcExt_uid60_fpMulTest(BITSELECT,59)@3 + expRPreExcExt_uid60_fpMulTest_b <= STD_LOGIC_VECTOR(expFracRPostRounding_uid58_fpMulTest_q(35 downto 24)); + + -- redist1_expRPreExcExt_uid60_fpMulTest_b_1(DELAY,98) + redist1_expRPreExcExt_uid60_fpMulTest_b_1 : dspba_delay + GENERIC MAP ( width => 12, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => expRPreExcExt_uid60_fpMulTest_b, xout => redist1_expRPreExcExt_uid60_fpMulTest_b_1_q, clk => clk, aclr => areset ); + + -- expRPreExc_uid61_fpMulTest(BITSELECT,60)@4 + expRPreExc_uid61_fpMulTest_in <= redist1_expRPreExcExt_uid60_fpMulTest_b_1_q(7 downto 0); + expRPreExc_uid61_fpMulTest_b <= expRPreExc_uid61_fpMulTest_in(7 downto 0); + + -- redist0_expRPreExc_uid61_fpMulTest_b_2(DELAY,97) + redist0_expRPreExc_uid61_fpMulTest_b_2 : dspba_delay + GENERIC MAP ( width => 8, depth => 2, reset_kind => "ASYNC" ) + PORT MAP ( xin => expRPreExc_uid61_fpMulTest_b, xout => redist0_expRPreExc_uid61_fpMulTest_b_2_q, clk => clk, aclr => areset ); + + -- expOvf_uid64_fpMulTest(COMPARE,63)@4 + 1 + expOvf_uid64_fpMulTest_a <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((13 downto 12 => redist1_expRPreExcExt_uid60_fpMulTest_b_1_q(11)) & redist1_expRPreExcExt_uid60_fpMulTest_b_1_q)); + expOvf_uid64_fpMulTest_b <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR("000000" & cstAllOWE_uid10_fpMulTest_q)); + expOvf_uid64_fpMulTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + expOvf_uid64_fpMulTest_o <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + expOvf_uid64_fpMulTest_o <= STD_LOGIC_VECTOR(SIGNED(expOvf_uid64_fpMulTest_a) - SIGNED(expOvf_uid64_fpMulTest_b)); + END IF; + END PROCESS; + expOvf_uid64_fpMulTest_n(0) <= not (expOvf_uid64_fpMulTest_o(13)); + + -- invExpXIsMax_uid35_fpMulTest(LOGICAL,34)@4 + invExpXIsMax_uid35_fpMulTest_q <= not (redist9_expXIsMax_uid30_fpMulTest_q_4_q); + + -- InvExpXIsZero_uid36_fpMulTest(LOGICAL,35)@4 + InvExpXIsZero_uid36_fpMulTest_q <= not (redist10_excZ_y_uid29_fpMulTest_q_4_q); + + -- excR_y_uid37_fpMulTest(LOGICAL,36)@4 + 1 + excR_y_uid37_fpMulTest_qi <= InvExpXIsZero_uid36_fpMulTest_q and invExpXIsMax_uid35_fpMulTest_q; + excR_y_uid37_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excR_y_uid37_fpMulTest_qi, xout => excR_y_uid37_fpMulTest_q, clk => clk, aclr => areset ); + + -- invExpXIsMax_uid21_fpMulTest(LOGICAL,20)@4 + invExpXIsMax_uid21_fpMulTest_q <= not (redist15_expXIsMax_uid16_fpMulTest_q_4_q); + + -- InvExpXIsZero_uid22_fpMulTest(LOGICAL,21)@4 + InvExpXIsZero_uid22_fpMulTest_q <= not (redist16_excZ_x_uid15_fpMulTest_q_4_q); + + -- excR_x_uid23_fpMulTest(LOGICAL,22)@4 + 1 + excR_x_uid23_fpMulTest_qi <= InvExpXIsZero_uid22_fpMulTest_q and invExpXIsMax_uid21_fpMulTest_q; + excR_x_uid23_fpMulTest_delay : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excR_x_uid23_fpMulTest_qi, xout => excR_x_uid23_fpMulTest_q, clk => clk, aclr => areset ); + + -- ExcROvfAndInReg_uid73_fpMulTest(LOGICAL,72)@5 + ExcROvfAndInReg_uid73_fpMulTest_q <= excR_x_uid23_fpMulTest_q and excR_y_uid37_fpMulTest_q and expOvf_uid64_fpMulTest_n; + + -- redist12_excI_x_uid19_fpMulTest_q_2(DELAY,109) + redist12_excI_x_uid19_fpMulTest_q_2 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excI_x_uid19_fpMulTest_q, xout => redist12_excI_x_uid19_fpMulTest_q_2_q, clk => clk, aclr => areset ); + + -- excYRAndExcXI_uid72_fpMulTest(LOGICAL,71)@5 + excYRAndExcXI_uid72_fpMulTest_q <= excR_y_uid37_fpMulTest_q and redist12_excI_x_uid19_fpMulTest_q_2_q; + + -- redist6_excI_y_uid33_fpMulTest_q_2(DELAY,103) + redist6_excI_y_uid33_fpMulTest_q_2 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => excI_y_uid33_fpMulTest_q, xout => redist6_excI_y_uid33_fpMulTest_q_2_q, clk => clk, aclr => areset ); + + -- excXRAndExcYI_uid71_fpMulTest(LOGICAL,70)@5 + excXRAndExcYI_uid71_fpMulTest_q <= excR_x_uid23_fpMulTest_q and redist6_excI_y_uid33_fpMulTest_q_2_q; + + -- excXIAndExcYI_uid70_fpMulTest(LOGICAL,69)@5 + excXIAndExcYI_uid70_fpMulTest_q <= redist12_excI_x_uid19_fpMulTest_q_2_q and redist6_excI_y_uid33_fpMulTest_q_2_q; + + -- excRInf_uid74_fpMulTest(LOGICAL,73)@5 + excRInf_uid74_fpMulTest_q <= excXIAndExcYI_uid70_fpMulTest_q or excXRAndExcYI_uid71_fpMulTest_q or excYRAndExcXI_uid72_fpMulTest_q or ExcROvfAndInReg_uid73_fpMulTest_q; + + -- expUdf_uid62_fpMulTest(COMPARE,61)@4 + 1 + expUdf_uid62_fpMulTest_a <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR("0000000000000" & GND_q)); + expUdf_uid62_fpMulTest_b <= STD_LOGIC_VECTOR(STD_LOGIC_VECTOR((13 downto 12 => redist1_expRPreExcExt_uid60_fpMulTest_b_1_q(11)) & redist1_expRPreExcExt_uid60_fpMulTest_b_1_q)); + expUdf_uid62_fpMulTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + expUdf_uid62_fpMulTest_o <= (others => '0'); + ELSIF (clk'EVENT AND clk = '1') THEN + expUdf_uid62_fpMulTest_o <= STD_LOGIC_VECTOR(SIGNED(expUdf_uid62_fpMulTest_a) - SIGNED(expUdf_uid62_fpMulTest_b)); + END IF; + END PROCESS; + expUdf_uid62_fpMulTest_n(0) <= not (expUdf_uid62_fpMulTest_o(13)); + + -- excZC3_uid68_fpMulTest(LOGICAL,67)@5 + excZC3_uid68_fpMulTest_q <= excR_x_uid23_fpMulTest_q and excR_y_uid37_fpMulTest_q and expUdf_uid62_fpMulTest_n; + + -- redist11_excZ_y_uid29_fpMulTest_q_5(DELAY,108) + redist11_excZ_y_uid29_fpMulTest_q_5 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => redist10_excZ_y_uid29_fpMulTest_q_4_q, xout => redist11_excZ_y_uid29_fpMulTest_q_5_q, clk => clk, aclr => areset ); + + -- excYZAndExcXR_uid67_fpMulTest(LOGICAL,66)@5 + excYZAndExcXR_uid67_fpMulTest_q <= redist11_excZ_y_uid29_fpMulTest_q_5_q and excR_x_uid23_fpMulTest_q; + + -- redist17_excZ_x_uid15_fpMulTest_q_5(DELAY,114) + redist17_excZ_x_uid15_fpMulTest_q_5 : dspba_delay + GENERIC MAP ( width => 1, depth => 1, reset_kind => "ASYNC" ) + PORT MAP ( xin => redist16_excZ_x_uid15_fpMulTest_q_4_q, xout => redist17_excZ_x_uid15_fpMulTest_q_5_q, clk => clk, aclr => areset ); + + -- excXZAndExcYR_uid66_fpMulTest(LOGICAL,65)@5 + excXZAndExcYR_uid66_fpMulTest_q <= redist17_excZ_x_uid15_fpMulTest_q_5_q and excR_y_uid37_fpMulTest_q; + + -- excXZAndExcYZ_uid65_fpMulTest(LOGICAL,64)@5 + excXZAndExcYZ_uid65_fpMulTest_q <= redist17_excZ_x_uid15_fpMulTest_q_5_q and redist11_excZ_y_uid29_fpMulTest_q_5_q; + + -- excRZero_uid69_fpMulTest(LOGICAL,68)@5 + excRZero_uid69_fpMulTest_q <= excXZAndExcYZ_uid65_fpMulTest_q or excXZAndExcYR_uid66_fpMulTest_q or excYZAndExcXR_uid67_fpMulTest_q or excZC3_uid68_fpMulTest_q; + + -- concExc_uid79_fpMulTest(BITJOIN,78)@5 + concExc_uid79_fpMulTest_q <= excRNaN_uid78_fpMulTest_q & excRInf_uid74_fpMulTest_q & excRZero_uid69_fpMulTest_q; + + -- excREnc_uid80_fpMulTest(LOOKUP,79)@5 + 1 + excREnc_uid80_fpMulTest_clkproc: PROCESS (clk, areset) + BEGIN + IF (areset = '1') THEN + excREnc_uid80_fpMulTest_q <= "01"; + ELSIF (clk'EVENT AND clk = '1') THEN + CASE (concExc_uid79_fpMulTest_q) IS + WHEN "000" => excREnc_uid80_fpMulTest_q <= "01"; + WHEN "001" => excREnc_uid80_fpMulTest_q <= "00"; + WHEN "010" => excREnc_uid80_fpMulTest_q <= "10"; + WHEN "011" => excREnc_uid80_fpMulTest_q <= "00"; + WHEN "100" => excREnc_uid80_fpMulTest_q <= "11"; + WHEN "101" => excREnc_uid80_fpMulTest_q <= "00"; + WHEN "110" => excREnc_uid80_fpMulTest_q <= "00"; + WHEN "111" => excREnc_uid80_fpMulTest_q <= "00"; + WHEN OTHERS => -- unreachable + excREnc_uid80_fpMulTest_q <= (others => '-'); + END CASE; + END IF; + END PROCESS; + + -- expRPostExc_uid89_fpMulTest(MUX,88)@6 + expRPostExc_uid89_fpMulTest_s <= excREnc_uid80_fpMulTest_q; + expRPostExc_uid89_fpMulTest_combproc: PROCESS (expRPostExc_uid89_fpMulTest_s, cstAllZWE_uid12_fpMulTest_q, redist0_expRPreExc_uid61_fpMulTest_b_2_q, cstAllOWE_uid10_fpMulTest_q) + BEGIN + CASE (expRPostExc_uid89_fpMulTest_s) IS + WHEN "00" => expRPostExc_uid89_fpMulTest_q <= cstAllZWE_uid12_fpMulTest_q; + WHEN "01" => expRPostExc_uid89_fpMulTest_q <= redist0_expRPreExc_uid61_fpMulTest_b_2_q; + WHEN "10" => expRPostExc_uid89_fpMulTest_q <= cstAllOWE_uid10_fpMulTest_q; + WHEN "11" => expRPostExc_uid89_fpMulTest_q <= cstAllOWE_uid10_fpMulTest_q; + WHEN OTHERS => expRPostExc_uid89_fpMulTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- oneFracRPostExc2_uid81_fpMulTest(CONSTANT,80) + oneFracRPostExc2_uid81_fpMulTest_q <= "00000000000000000000001"; + + -- fracRPreExc_uid59_fpMulTest(BITSELECT,58)@3 + fracRPreExc_uid59_fpMulTest_in <= expFracRPostRounding_uid58_fpMulTest_q(23 downto 0); + fracRPreExc_uid59_fpMulTest_b <= fracRPreExc_uid59_fpMulTest_in(23 downto 1); + + -- redist2_fracRPreExc_uid59_fpMulTest_b_3(DELAY,99) + redist2_fracRPreExc_uid59_fpMulTest_b_3 : dspba_delay + GENERIC MAP ( width => 23, depth => 3, reset_kind => "ASYNC" ) + PORT MAP ( xin => fracRPreExc_uid59_fpMulTest_b, xout => redist2_fracRPreExc_uid59_fpMulTest_b_3_q, clk => clk, aclr => areset ); + + -- fracRPostExc_uid84_fpMulTest(MUX,83)@6 + fracRPostExc_uid84_fpMulTest_s <= excREnc_uid80_fpMulTest_q; + fracRPostExc_uid84_fpMulTest_combproc: PROCESS (fracRPostExc_uid84_fpMulTest_s, cstZeroWF_uid11_fpMulTest_q, redist2_fracRPreExc_uid59_fpMulTest_b_3_q, oneFracRPostExc2_uid81_fpMulTest_q) + BEGIN + CASE (fracRPostExc_uid84_fpMulTest_s) IS + WHEN "00" => fracRPostExc_uid84_fpMulTest_q <= cstZeroWF_uid11_fpMulTest_q; + WHEN "01" => fracRPostExc_uid84_fpMulTest_q <= redist2_fracRPreExc_uid59_fpMulTest_b_3_q; + WHEN "10" => fracRPostExc_uid84_fpMulTest_q <= cstZeroWF_uid11_fpMulTest_q; + WHEN "11" => fracRPostExc_uid84_fpMulTest_q <= oneFracRPostExc2_uid81_fpMulTest_q; + WHEN OTHERS => fracRPostExc_uid84_fpMulTest_q <= (others => '0'); + END CASE; + END PROCESS; + + -- R_uid92_fpMulTest(BITJOIN,91)@6 + R_uid92_fpMulTest_q <= signRPostExc_uid91_fpMulTest_q & expRPostExc_uid89_fpMulTest_q & fracRPostExc_uid84_fpMulTest_q; + + -- xOut(GPOUT,4)@6 + q <= R_uid92_fpMulTest_q; + +END normal; diff --git a/ip/ip_fp_mul_sim.f b/ip/ip_fp_mul_sim.f new file mode 100644 index 0000000..a5445ba --- /dev/null +++ b/ip/ip_fp_mul_sim.f @@ -0,0 +1 @@ +ip_fp_mul_sim/ip_fp_mul.vo diff --git a/ip/ip_fp_mul_sim/aldec/rivierapro_setup.tcl b/ip/ip_fp_mul_sim/aldec/rivierapro_setup.tcl new file mode 100644 index 0000000..14027e6 --- /dev/null +++ b/ip/ip_fp_mul_sim/aldec/rivierapro_setup.tcl @@ -0,0 +1,278 @@ + +# (C) 2001-2023 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and +# other software and tools, and its AMPP partner logic functions, and +# any output files any of the foregoing (including device programming +# or simulation files), and any associated documentation or information +# are expressly subject to the terms and conditions of the Altera +# Program License Subscription Agreement, Altera MegaCore Function +# License Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +# ACDS 20.1 720 linux 2023.10.21.04:56:13 +# ---------------------------------------- +# Auto-generated simulation script rivierapro_setup.tcl +# ---------------------------------------- +# This script provides commands to simulate the following IP detected in +# your Quartus project: +# ip_fp_mul +# +# Altera recommends that you source this Quartus-generated IP simulation +# script from your own customized top-level script, and avoid editing this +# generated script. +# +# To write a top-level script that compiles Altera simulation libraries and +# the Quartus-generated IP in your project, along with your design and +# testbench files, copy the text from the TOP-LEVEL TEMPLATE section below +# into a new file, e.g. named "aldec.do", and modify the text as directed. +# +# ---------------------------------------- +# # TOP-LEVEL TEMPLATE - BEGIN +# # +# # QSYS_SIMDIR is used in the Quartus-generated IP simulation script to +# # construct paths to the files required to simulate the IP in your Quartus +# # project. By default, the IP script assumes that you are launching the +# # simulator from the IP script location. If launching from another +# # location, set QSYS_SIMDIR to the output directory you specified when you +# # generated the IP script, relative to the directory from which you launch +# # the simulator. +# # +# set QSYS_SIMDIR <script generation output directory> +# # +# # Source the generated IP simulation script. +# source $QSYS_SIMDIR/aldec/rivierapro_setup.tcl +# # +# # Set any compilation options you require (this is unusual). +# set USER_DEFINED_COMPILE_OPTIONS <compilation options> +# set USER_DEFINED_VHDL_COMPILE_OPTIONS <compilation options for VHDL> +# set USER_DEFINED_VERILOG_COMPILE_OPTIONS <compilation options for Verilog> +# # +# # Call command to compile the Quartus EDA simulation library. +# dev_com +# # +# # Call command to compile the Quartus-generated IP simulation files. +# com +# # +# # Add commands to compile all design files and testbench files, including +# # the top level. (These are all the files required for simulation other +# # than the files compiled by the Quartus-generated IP simulation script) +# # +# vlog -sv2k5 <your compilation options> <design and testbench files> +# # +# # Set the top-level simulation or testbench module/entity name, which is +# # used by the elab command to elaborate the top level. +# # +# set TOP_LEVEL_NAME <simulation top> +# # +# # Set any elaboration options you require. +# set USER_DEFINED_ELAB_OPTIONS <elaboration options> +# # +# # Call command to elaborate your design and testbench. +# elab +# # +# # Run the simulation. +# run +# # +# # Report success to the shell. +# exit -code 0 +# # +# # TOP-LEVEL TEMPLATE - END +# ---------------------------------------- +# +# IP SIMULATION SCRIPT +# ---------------------------------------- +# If ip_fp_mul is one of several IP cores in your +# Quartus project, you can generate a simulation script +# suitable for inclusion in your top-level simulation +# script by running the following command line: +# +# ip-setup-simulation --quartus-project=<quartus project> +# +# ip-setup-simulation will discover the Altera IP +# within the Quartus project, and generate a unified +# script which supports all the Altera IP within the design. +# ---------------------------------------- + +# ---------------------------------------- +# Initialize variables +if ![info exists SYSTEM_INSTANCE_NAME] { + set SYSTEM_INSTANCE_NAME "" +} elseif { ![ string match "" $SYSTEM_INSTANCE_NAME ] } { + set SYSTEM_INSTANCE_NAME "/$SYSTEM_INSTANCE_NAME" +} + +if ![info exists TOP_LEVEL_NAME] { + set TOP_LEVEL_NAME "ip_fp_mul" +} + +if ![info exists QSYS_SIMDIR] { + set QSYS_SIMDIR "./../" +} + +if ![info exists QUARTUS_INSTALL_DIR] { + set QUARTUS_INSTALL_DIR "/nix/store/q54w47mfmcj9ag8kxwqvyi0snainbhjw-quartus-prime-lite-unwrapped-20.1.1.720/quartus/" +} + +if ![info exists USER_DEFINED_COMPILE_OPTIONS] { + set USER_DEFINED_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_VHDL_COMPILE_OPTIONS] { + set USER_DEFINED_VHDL_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_VERILOG_COMPILE_OPTIONS] { + set USER_DEFINED_VERILOG_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_ELAB_OPTIONS] { + set USER_DEFINED_ELAB_OPTIONS "" +} + +# ---------------------------------------- +# Initialize simulation properties - DO NOT MODIFY! +set ELAB_OPTIONS "" +set SIM_OPTIONS "" +if ![ string match "*-64 vsim*" [ vsim -version ] ] { +} else { +} + +set Aldec "Riviera" +if { [ string match "*Active-HDL*" [ vsim -version ] ] } { + set Aldec "Active" +} + +if { [ string match "Active" $Aldec ] } { + scripterconf -tcl + createdesign "$TOP_LEVEL_NAME" "." + opendesign "$TOP_LEVEL_NAME" +} + +# ---------------------------------------- +# Copy ROM/RAM files to simulation directory +alias file_copy { + echo "\[exec\] file_copy" +} + +# ---------------------------------------- +# Create compilation libraries +proc ensure_lib { lib } { if ![file isdirectory $lib] { vlib $lib } } +ensure_lib ./libraries +ensure_lib ./libraries/work +vmap work ./libraries/work +ensure_lib ./libraries/altera_ver +vmap altera_ver ./libraries/altera_ver +ensure_lib ./libraries/lpm_ver +vmap lpm_ver ./libraries/lpm_ver +ensure_lib ./libraries/sgate_ver +vmap sgate_ver ./libraries/sgate_ver +ensure_lib ./libraries/altera_mf_ver +vmap altera_mf_ver ./libraries/altera_mf_ver +ensure_lib ./libraries/altera_lnsim_ver +vmap altera_lnsim_ver ./libraries/altera_lnsim_ver +ensure_lib ./libraries/cyclonev_ver +vmap cyclonev_ver ./libraries/cyclonev_ver +ensure_lib ./libraries/cyclonev_hssi_ver +vmap cyclonev_hssi_ver ./libraries/cyclonev_hssi_ver +ensure_lib ./libraries/cyclonev_pcie_hip_ver +vmap cyclonev_pcie_hip_ver ./libraries/cyclonev_pcie_hip_ver + + +# ---------------------------------------- +# Compile device library files +alias dev_com { + echo "\[exec\] dev_com" + eval vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v" -work altera_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v" -work lpm_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v" -work sgate_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v" -work altera_mf_ver + vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim.sv" -work altera_lnsim_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/aldec/cyclonev_atoms_ncrypt.v" -work cyclonev_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/aldec/cyclonev_hmi_atoms_ncrypt.v" -work cyclonev_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v" -work cyclonev_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/aldec/cyclonev_hssi_atoms_ncrypt.v" -work cyclonev_hssi_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_hssi_atoms.v" -work cyclonev_hssi_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/aldec/cyclonev_pcie_hip_atoms_ncrypt.v" -work cyclonev_pcie_hip_ver + vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_pcie_hip_atoms.v" -work cyclonev_pcie_hip_ver +} + +# ---------------------------------------- +# Compile the design files in correct order +alias com { + echo "\[exec\] com" + eval vlog -v2k5 $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QSYS_SIMDIR/ip_fp_mul.vo" +} + +# ---------------------------------------- +# Elaborate top level design +alias elab { + echo "\[exec\] elab" + eval vsim +access +r -t ps $ELAB_OPTIONS -L work -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclonev_ver -L cyclonev_hssi_ver -L cyclonev_pcie_hip_ver $TOP_LEVEL_NAME +} + +# ---------------------------------------- +# Elaborate the top level design with -dbg -O2 option +alias elab_debug { + echo "\[exec\] elab_debug" + eval vsim -dbg -O2 +access +r -t ps $ELAB_OPTIONS -L work -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclonev_ver -L cyclonev_hssi_ver -L cyclonev_pcie_hip_ver $TOP_LEVEL_NAME +} + +# ---------------------------------------- +# Compile all the design files and elaborate the top level design +alias ld " + dev_com + com + elab +" + +# ---------------------------------------- +# Compile all the design files and elaborate the top level design with -dbg -O2 +alias ld_debug " + dev_com + com + elab_debug +" + +# ---------------------------------------- +# Print out user commmand line aliases +alias h { + echo "List Of Command Line Aliases" + echo + echo "file_copy -- Copy ROM/RAM files to simulation directory" + echo + echo "dev_com -- Compile device library files" + echo + echo "com -- Compile the design files in correct order" + echo + echo "elab -- Elaborate top level design" + echo + echo "elab_debug -- Elaborate the top level design with -dbg -O2 option" + echo + echo "ld -- Compile all the design files and elaborate the top level design" + echo + echo "ld_debug -- Compile all the design files and elaborate the top level design with -dbg -O2" + echo + echo + echo + echo "List Of Variables" + echo + echo "TOP_LEVEL_NAME -- Top level module name." + echo " For most designs, this should be overridden" + echo " to enable the elab/elab_debug aliases." + echo + echo "SYSTEM_INSTANCE_NAME -- Instantiated system module name inside top level module." + echo + echo "QSYS_SIMDIR -- Platform Designer base simulation directory." + echo + echo "QUARTUS_INSTALL_DIR -- Quartus installation directory." + echo + echo "USER_DEFINED_COMPILE_OPTIONS -- User-defined compile options, added to com/dev_com aliases." + echo + echo "USER_DEFINED_ELAB_OPTIONS -- User-defined elaboration options, added to elab/elab_debug aliases." + echo + echo "USER_DEFINED_VHDL_COMPILE_OPTIONS -- User-defined vhdl compile options, added to com/dev_com aliases." + echo + echo "USER_DEFINED_VERILOG_COMPILE_OPTIONS -- User-defined verilog compile options, added to com/dev_com aliases." +} +file_copy +h diff --git a/ip/ip_fp_mul_sim/cadence/cds.lib b/ip/ip_fp_mul_sim/cadence/cds.lib new file mode 100644 index 0000000..b2eae0a --- /dev/null +++ b/ip/ip_fp_mul_sim/cadence/cds.lib @@ -0,0 +1,19 @@ + +DEFINE std $CDS_ROOT/tools/inca/files/STD/ +DEFINE synopsys $CDS_ROOT/tools/inca/files/SYNOPSYS/ +DEFINE ieee $CDS_ROOT/tools/inca/files/IEEE/ +DEFINE ambit $CDS_ROOT/tools/inca/files/AMBIT/ +DEFINE vital_memory $CDS_ROOT/tools/inca/files/VITAL_MEMORY/ +DEFINE ncutils $CDS_ROOT/tools/inca/files/NCUTILS/ +DEFINE ncinternal $CDS_ROOT/tools/inca/files/NCINTERNAL/ +DEFINE ncmodels $CDS_ROOT/tools/inca/files/NCMODELS/ +DEFINE cds_assertions $CDS_ROOT/tools/inca/files/CDS_ASSERTIONS/ +DEFINE work ./libraries/work/ +DEFINE altera_ver ./libraries/altera_ver/ +DEFINE lpm_ver ./libraries/lpm_ver/ +DEFINE sgate_ver ./libraries/sgate_ver/ +DEFINE altera_mf_ver ./libraries/altera_mf_ver/ +DEFINE altera_lnsim_ver ./libraries/altera_lnsim_ver/ +DEFINE cyclonev_ver ./libraries/cyclonev_ver/ +DEFINE cyclonev_hssi_ver ./libraries/cyclonev_hssi_ver/ +DEFINE cyclonev_pcie_hip_ver ./libraries/cyclonev_pcie_hip_ver/ diff --git a/ip/ip_fp_mul_sim/cadence/hdl.var b/ip/ip_fp_mul_sim/cadence/hdl.var new file mode 100644 index 0000000..c1b7814 --- /dev/null +++ b/ip/ip_fp_mul_sim/cadence/hdl.var @@ -0,0 +1,2 @@ + +DEFINE WORK work diff --git a/ip/ip_fp_mul_sim/cadence/ncsim_setup.sh b/ip/ip_fp_mul_sim/cadence/ncsim_setup.sh new file mode 100755 index 0000000..11435a9 --- /dev/null +++ b/ip/ip_fp_mul_sim/cadence/ncsim_setup.sh @@ -0,0 +1,195 @@ + +# (C) 2001-2023 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and +# other software and tools, and its AMPP partner logic functions, and +# any output files any of the foregoing (including device programming +# or simulation files), and any associated documentation or information +# are expressly subject to the terms and conditions of the Altera +# Program License Subscription Agreement, Altera MegaCore Function +# License Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +# ACDS 20.1 720 linux 2023.10.21.04:56:13 + +# ---------------------------------------- +# ncsim - auto-generated simulation script + +# ---------------------------------------- +# This script provides commands to simulate the following IP detected in +# your Quartus project: +# ip_fp_mul +# +# Altera recommends that you source this Quartus-generated IP simulation +# script from your own customized top-level script, and avoid editing this +# generated script. +# +# To write a top-level shell script that compiles Altera simulation libraries +# and the Quartus-generated IP in your project, along with your design and +# testbench files, copy the text from the TOP-LEVEL TEMPLATE section below +# into a new file, e.g. named "ncsim.sh", and modify text as directed. +# +# You can also modify the simulation flow to suit your needs. Set the +# following variables to 1 to disable their corresponding processes: +# - SKIP_FILE_COPY: skip copying ROM/RAM initialization files +# - SKIP_DEV_COM: skip compiling the Quartus EDA simulation library +# - SKIP_COM: skip compiling Quartus-generated IP simulation files +# - SKIP_ELAB and SKIP_SIM: skip elaboration and simulation +# +# ---------------------------------------- +# # TOP-LEVEL TEMPLATE - BEGIN +# # +# # QSYS_SIMDIR is used in the Quartus-generated IP simulation script to +# # construct paths to the files required to simulate the IP in your Quartus +# # project. By default, the IP script assumes that you are launching the +# # simulator from the IP script location. If launching from another +# # location, set QSYS_SIMDIR to the output directory you specified when you +# # generated the IP script, relative to the directory from which you launch +# # the simulator. In this case, you must also copy the generated files +# # "cds.lib" and "hdl.var" - plus the directory "cds_libs" if generated - +# # into the location from which you launch the simulator, or incorporate +# # into any existing library setup. +# # +# # Run Quartus-generated IP simulation script once to compile Quartus EDA +# # simulation libraries and Quartus-generated IP simulation files, and copy +# # any ROM/RAM initialization files to the simulation directory. +# # - If necessary, specify any compilation options: +# # USER_DEFINED_COMPILE_OPTIONS +# # USER_DEFINED_VHDL_COMPILE_OPTIONS applied to vhdl compiler +# # USER_DEFINED_VERILOG_COMPILE_OPTIONS applied to verilog compiler +# # +# source <script generation output directory>/cadence/ncsim_setup.sh \ +# SKIP_ELAB=1 \ +# SKIP_SIM=1 \ +# USER_DEFINED_COMPILE_OPTIONS=<compilation options for your design> \ +# USER_DEFINED_VHDL_COMPILE_OPTIONS=<VHDL compilation options for your design> \ +# USER_DEFINED_VERILOG_COMPILE_OPTIONS=<Verilog compilation options for your design> \ +# QSYS_SIMDIR=<script generation output directory> +# # +# # Compile all design files and testbench files, including the top level. +# # (These are all the files required for simulation other than the files +# # compiled by the IP script) +# # +# ncvlog <compilation options> <design and testbench files> +# # +# # TOP_LEVEL_NAME is used in this script to set the top-level simulation or +# # testbench module/entity name. +# # +# # Run the IP script again to elaborate and simulate the top level: +# # - Specify TOP_LEVEL_NAME and USER_DEFINED_ELAB_OPTIONS. +# # - Override the default USER_DEFINED_SIM_OPTIONS. For example, to run +# # until $finish(), set to an empty string: USER_DEFINED_SIM_OPTIONS="". +# # +# source <script generation output directory>/cadence/ncsim_setup.sh \ +# SKIP_FILE_COPY=1 \ +# SKIP_DEV_COM=1 \ +# SKIP_COM=1 \ +# TOP_LEVEL_NAME=<simulation top> \ +# USER_DEFINED_ELAB_OPTIONS=<elaboration options for your design> \ +# USER_DEFINED_SIM_OPTIONS=<simulation options for your design> +# # +# # TOP-LEVEL TEMPLATE - END +# ---------------------------------------- +# +# IP SIMULATION SCRIPT +# ---------------------------------------- +# If ip_fp_mul is one of several IP cores in your +# Quartus project, you can generate a simulation script +# suitable for inclusion in your top-level simulation +# script by running the following command line: +# +# ip-setup-simulation --quartus-project=<quartus project> +# +# ip-setup-simulation will discover the Altera IP +# within the Quartus project, and generate a unified +# script which supports all the Altera IP within the design. +# ---------------------------------------- +# ACDS 20.1 720 linux 2023.10.21.04:56:13 +# ---------------------------------------- +# initialize variables +TOP_LEVEL_NAME="ip_fp_mul" +QSYS_SIMDIR="./../" +QUARTUS_INSTALL_DIR="/nix/store/q54w47mfmcj9ag8kxwqvyi0snainbhjw-quartus-prime-lite-unwrapped-20.1.1.720/quartus/" +SKIP_FILE_COPY=0 +SKIP_DEV_COM=0 +SKIP_COM=0 +SKIP_ELAB=0 +SKIP_SIM=0 +USER_DEFINED_ELAB_OPTIONS="" +USER_DEFINED_SIM_OPTIONS="-input \"@run 100; exit\"" + +# ---------------------------------------- +# overwrite variables - DO NOT MODIFY! +# This block evaluates each command line argument, typically used for +# overwriting variables. An example usage: +# sh <simulator>_setup.sh SKIP_SIM=1 +for expression in "$@"; do + eval $expression + if [ $? -ne 0 ]; then + echo "Error: This command line argument, \"$expression\", is/has an invalid expression." >&2 + exit $? + fi +done + +# ---------------------------------------- +# initialize simulation properties - DO NOT MODIFY! +ELAB_OPTIONS="" +SIM_OPTIONS="" +if [[ `ncsim -version` != *"ncsim(64)"* ]]; then + : +else + : +fi + +# ---------------------------------------- +# create compilation libraries +mkdir -p ./libraries/work/ +mkdir -p ./libraries/altera_ver/ +mkdir -p ./libraries/lpm_ver/ +mkdir -p ./libraries/sgate_ver/ +mkdir -p ./libraries/altera_mf_ver/ +mkdir -p ./libraries/altera_lnsim_ver/ +mkdir -p ./libraries/cyclonev_ver/ +mkdir -p ./libraries/cyclonev_hssi_ver/ +mkdir -p ./libraries/cyclonev_pcie_hip_ver/ + +# ---------------------------------------- +# copy RAM/ROM files to simulation directory + +# ---------------------------------------- +# compile device library files +if [ $SKIP_DEV_COM -eq 0 ]; then + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v" -work altera_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v" -work lpm_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v" -work sgate_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v" -work altera_mf_ver + ncvlog -sv $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim.sv" -work altera_lnsim_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cadence/cyclonev_atoms_ncrypt.v" -work cyclonev_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cadence/cyclonev_hmi_atoms_ncrypt.v" -work cyclonev_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v" -work cyclonev_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cadence/cyclonev_hssi_atoms_ncrypt.v" -work cyclonev_hssi_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_hssi_atoms.v" -work cyclonev_hssi_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cadence/cyclonev_pcie_hip_atoms_ncrypt.v" -work cyclonev_pcie_hip_ver + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_pcie_hip_atoms.v" -work cyclonev_pcie_hip_ver +fi + +# ---------------------------------------- +# compile design files in correct order +if [ $SKIP_COM -eq 0 ]; then + ncvlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QSYS_SIMDIR/ip_fp_mul.vo" +fi + +# ---------------------------------------- +# elaborate top level design +if [ $SKIP_ELAB -eq 0 ]; then + export GENERIC_PARAM_COMPAT_CHECK=1 + ncelab -access +w+r+c -namemap_mixgen -relax $ELAB_OPTIONS $USER_DEFINED_ELAB_OPTIONS $TOP_LEVEL_NAME +fi + +# ---------------------------------------- +# simulate +if [ $SKIP_SIM -eq 0 ]; then + eval ncsim -licqueue $SIM_OPTIONS $USER_DEFINED_SIM_OPTIONS $TOP_LEVEL_NAME +fi diff --git a/ip/ip_fp_mul_sim/ip_fp_mul.vo b/ip/ip_fp_mul_sim/ip_fp_mul.vo new file mode 100644 index 0000000..bc00f70 --- /dev/null +++ b/ip/ip_fp_mul_sim/ip_fp_mul.vo @@ -0,0 +1,1592 @@ +//IP Functional Simulation Model +//VERSION_BEGIN 20.1 cbx_mgl 2020:11:11:17:50:46:SJ cbx_simgen 2020:11:11:17:03:37:SJ VERSION_END +// synthesis VERILOG_INPUT_VERSION VERILOG_2001 +// altera message_off 10463 + + + +// Copyright (C) 2020 Intel Corporation. All rights reserved. +// Your use of Intel Corporation's design tools, logic functions +// and other software and tools, and any partner logic +// functions, and any output files from any of the foregoing +// (including device programming or simulation files), and any +// associated documentation or information are expressly subject +// to the terms and conditions of the Intel Program License +// Subscription Agreement, the Intel Quartus Prime License Agreement, +// the Intel FPGA IP License Agreement, or other applicable license +// agreement, including, without limitation, that your use is for +// the sole purpose of programming logic devices manufactured by +// Intel and sold by Intel or its authorized distributors. Please +// refer to the applicable agreement for further details, at +// https://fpgasoftware.intel.com/eula. + +// You may only use these simulation model output files for simulation +// purposes and expressly not for synthesis or any other purposes (in which +// event Intel disclaims all warranties of any kind). + + +//synopsys translate_off + +//synthesis_resources = lut 268 mux21 24 oper_add 5 oper_mult 1 oper_mux 33 +`timescale 1 ps / 1 ps +module ip_fp_mul + ( + a, + areset, + b, + clk, + q) /* synthesis synthesis_clearbox=1 */; + input [31:0] a; + input areset; + input [31:0] b; + input clk; + output [31:0] q; + + reg n00i; + reg n00l; + reg n00O; + reg n01i; + reg n01l; + reg n01O; + reg n0ii; + reg n0il; + reg n0iO; + reg n0li; + reg n0ll; + reg n0lO; + reg n0Oi; + reg n0Ol; + reg n0OO; + reg n100i; + reg n100l; + reg n100O; + reg n101i; + reg n101l; + reg n101O; + reg n10i; + reg n10ii; + reg n10il; + reg n10iO; + reg n10l; + reg n10li; + reg n10ll; + reg n10lO; + reg n10O; + reg n10Oi; + reg n10Ol; + reg n10OO; + reg n110i; + reg n110l; + reg n110O; + reg n111i; + reg n111l; + reg n111O; + reg n11i; + reg n11ii; + reg n11il; + reg n11iO; + reg n11l; + reg n11li; + reg n11ll; + reg n11lO; + reg n11O; + reg n11Oi; + reg n11Ol; + reg n11OO; + reg n1i; + reg n1i0i; + reg n1i0l; + reg n1i0O; + reg n1i1i; + reg n1i1l; + reg n1i1O; + reg n1ii; + reg n1iii; + reg n1iil; + reg n1iiO; + reg n1il; + reg n1ili; + reg n1ill; + reg n1ilO; + reg n1iO; + reg n1iOi; + reg n1iOl; + reg n1iOO; + reg n1l0i; + reg n1l0l; + reg n1l0O; + reg n1l1i; + reg n1l1l; + reg n1l1O; + reg n1li; + reg n1lii; + reg n1lil; + reg n1liO; + reg n1ll; + reg n1lli; + reg n1lll; + reg n1lO; + reg n1O; + reg n1Oi; + reg n1Ol; + reg n1OO; + reg ni0i; + reg ni0l; + reg ni0O; + reg ni1i; + reg ni1l; + reg ni1O; + reg niii; + reg niil; + reg niilO; + reg niiO; + reg niiOi; + reg nili; + reg nill; + reg nilli; + reg nilO; + reg niOi; + reg niOii; + reg niOl; + reg niOli; + reg niOll; + reg niOlO; + reg niOO; + reg niOOi; + reg niOOl; + reg niOOO; + reg nl01i; + reg nl01l; + reg nl01O; + reg nl0i; + reg nl0l; + reg nl0O; + reg nl10i; + reg nl10l; + reg nl10O; + reg nl11i; + reg nl11l; + reg nl11O; + reg nl1i; + reg nl1ii; + reg nl1il; + reg nl1iO; + reg nl1l; + reg nl1li; + reg nl1ll; + reg nl1lO; + reg nl1O; + reg nl1Oi; + reg nl1Ol; + reg nl1OO; + reg nlii; + reg nlil; + reg nliO; + reg nliOi; + reg nliOl; + reg nliOO; + reg nll0i; + reg nll0l; + reg nll0O; + reg nll1i; + reg nll1l; + reg nll1O; + reg nlli; + reg nllii; + reg nllil; + reg nlll; + reg nllli; + reg nllll; + reg nlllO; + reg nllO; + reg nllO0i; + reg nllO0l; + reg nllO0O; + reg nllO1i; + reg nllO1l; + reg nllO1O; + reg nllOi; + reg nllOii; + reg nllOil; + reg nllOiO; + reg nllOl; + reg nllOli; + reg nllOll; + reg nllOlO; + reg nllOO; + reg nllOOi; + reg nllOOl; + reg nllOOO; + reg nlO00i; + reg nlO00l; + reg nlO00O; + reg nlO01i; + reg nlO01l; + reg nlO01O; + reg nlO0i; + reg nlO0ii; + reg nlO0il; + reg nlO0iO; + reg nlO0l; + reg nlO0li; + reg nlO0ll; + reg nlO0lO; + reg nlO0O; + reg nlO0Oi; + reg nlO0Ol; + reg nlO0OO; + reg nlO10i; + reg nlO10l; + reg nlO10O; + reg nlO11i; + reg nlO11l; + reg nlO11O; + reg nlO1i; + reg nlO1ii; + reg nlO1il; + reg nlO1iO; + reg nlO1l; + reg nlO1li; + reg nlO1ll; + reg nlO1lO; + reg nlO1Oi; + reg nlO1Ol; + reg nlO1OO; + reg nlOi; + reg nlOi0i; + reg nlOi0l; + reg nlOi0O; + reg nlOi1i; + reg nlOi1l; + reg nlOi1O; + reg nlOii; + reg nlOiii; + reg nlOiil; + reg nlOiiO; + reg nlOil; + reg nlOili; + reg nlOill; + reg nlOilO; + reg nlOiO; + reg nlOiOi; + reg nlOiOl; + reg nlOiOO; + reg nlOl; + reg nlOl0i; + reg nlOl0l; + reg nlOl0O; + reg nlOl1i; + reg nlOl1l; + reg nlOl1O; + reg nlOli; + reg nlOlii; + reg nlOlil; + reg nlOliO; + reg nlOll; + reg nlOlli; + reg nlOlll; + reg nlOllO; + reg nlOlO; + reg nlOlOi; + reg nlOlOl; + reg nlOlOO; + reg nlOO; + reg nlOO0i; + reg nlOO0l; + reg nlOO0O; + reg nlOO1i; + reg nlOO1l; + reg nlOO1O; + reg nlOOi; + reg nlOOii; + reg nlOOil; + reg nlOOiO; + reg nlOOl; + reg nlOOli; + reg nlOOll; + reg nlOOlO; + reg nlOOO; + reg nlOOOi; + reg nlOOOl; + reg nlOOOO; + reg niliO; + wire wire_nl00i_dataout; + wire wire_nl00l_dataout; + wire wire_nl00O_dataout; + wire wire_nl0ii_dataout; + wire wire_nl0il_dataout; + wire wire_nl0iO_dataout; + wire wire_nl0li_dataout; + wire wire_nl0ll_dataout; + wire wire_nl0lO_dataout; + wire wire_nl0Oi_dataout; + wire wire_nl0Ol_dataout; + wire wire_nl0OO_dataout; + wire wire_nli0i_dataout; + wire wire_nli0l_dataout; + wire wire_nli0O_dataout; + wire wire_nli1i_dataout; + wire wire_nli1l_dataout; + wire wire_nli1O_dataout; + wire wire_nliii_dataout; + wire wire_nliil_dataout; + wire wire_nliiO_dataout; + wire wire_nlili_dataout; + wire wire_nlill_dataout; + wire wire_nlilO_dataout; + wire [14:0] wire_nilll_o; + wire [14:0] wire_niOil_o; + wire [36:0] wire_niOiO_o; + wire [12:0] wire_nlliO_o; + wire [8:0] wire_nlO1O_o; + wire [47:0] wire_n0i_o; + wire wire_ni00i_o; + wire wire_ni00l_o; + wire wire_ni00O_o; + wire wire_ni01i_o; + wire wire_ni01l_o; + wire wire_ni01O_o; + wire wire_ni0ii_o; + wire wire_ni0il_o; + wire wire_ni0iO_o; + wire wire_ni0li_o; + wire wire_ni0ll_o; + wire wire_ni0lO_o; + wire wire_ni0Oi_o; + wire wire_ni0Ol_o; + wire wire_ni0OO_o; + wire wire_ni1ll_o; + wire wire_ni1lO_o; + wire wire_ni1Oi_o; + wire wire_ni1Ol_o; + wire wire_ni1OO_o; + wire wire_nii0i_o; + wire wire_nii0l_o; + wire wire_nii0O_o; + wire wire_nii1i_o; + wire wire_nii1l_o; + wire wire_nii1O_o; + wire wire_niiii_o; + wire wire_niiil_o; + wire wire_niiiO_o; + wire wire_niili_o; + wire wire_niill_o; + wire wire_niiOl_o; + wire wire_niiOO_o; + wire nlll0i; + wire nlll0l; + wire nlll0O; + wire nlllii; + wire nlllil; + wire nllliO; + wire nlllli; + wire nlllll; + wire nllllO; + wire nlllOl; + + initial + begin + n00i = 0; + n00l = 0; + n00O = 0; + n01i = 0; + n01l = 0; + n01O = 0; + n0ii = 0; + n0il = 0; + n0iO = 0; + n0li = 0; + n0ll = 0; + n0lO = 0; + n0Oi = 0; + n0Ol = 0; + n0OO = 0; + n100i = 0; + n100l = 0; + n100O = 0; + n101i = 0; + n101l = 0; + n101O = 0; + n10i = 0; + n10ii = 0; + n10il = 0; + n10iO = 0; + n10l = 0; + n10li = 0; + n10ll = 0; + n10lO = 0; + n10O = 0; + n10Oi = 0; + n10Ol = 0; + n10OO = 0; + n110i = 0; + n110l = 0; + n110O = 0; + n111i = 0; + n111l = 0; + n111O = 0; + n11i = 0; + n11ii = 0; + n11il = 0; + n11iO = 0; + n11l = 0; + n11li = 0; + n11ll = 0; + n11lO = 0; + n11O = 0; + n11Oi = 0; + n11Ol = 0; + n11OO = 0; + n1i = 0; + n1i0i = 0; + n1i0l = 0; + n1i0O = 0; + n1i1i = 0; + n1i1l = 0; + n1i1O = 0; + n1ii = 0; + n1iii = 0; + n1iil = 0; + n1iiO = 0; + n1il = 0; + n1ili = 0; + n1ill = 0; + n1ilO = 0; + n1iO = 0; + n1iOi = 0; + n1iOl = 0; + n1iOO = 0; + n1l0i = 0; + n1l0l = 0; + n1l0O = 0; + n1l1i = 0; + n1l1l = 0; + n1l1O = 0; + n1li = 0; + n1lii = 0; + n1lil = 0; + n1liO = 0; + n1ll = 0; + n1lli = 0; + n1lll = 0; + n1lO = 0; + n1O = 0; + n1Oi = 0; + n1Ol = 0; + n1OO = 0; + ni0i = 0; + ni0l = 0; + ni0O = 0; + ni1i = 0; + ni1l = 0; + ni1O = 0; + niii = 0; + niil = 0; + niilO = 0; + niiO = 0; + niiOi = 0; + nili = 0; + nill = 0; + nilli = 0; + nilO = 0; + niOi = 0; + niOii = 0; + niOl = 0; + niOli = 0; + niOll = 0; + niOlO = 0; + niOO = 0; + niOOi = 0; + niOOl = 0; + niOOO = 0; + nl01i = 0; + nl01l = 0; + nl01O = 0; + nl0i = 0; + nl0l = 0; + nl0O = 0; + nl10i = 0; + nl10l = 0; + nl10O = 0; + nl11i = 0; + nl11l = 0; + nl11O = 0; + nl1i = 0; + nl1ii = 0; + nl1il = 0; + nl1iO = 0; + nl1l = 0; + nl1li = 0; + nl1ll = 0; + nl1lO = 0; + nl1O = 0; + nl1Oi = 0; + nl1Ol = 0; + nl1OO = 0; + nlii = 0; + nlil = 0; + nliO = 0; + nliOi = 0; + nliOl = 0; + nliOO = 0; + nll0i = 0; + nll0l = 0; + nll0O = 0; + nll1i = 0; + nll1l = 0; + nll1O = 0; + nlli = 0; + nllii = 0; + nllil = 0; + nlll = 0; + nllli = 0; + nllll = 0; + nlllO = 0; + nllO = 0; + nllO0i = 0; + nllO0l = 0; + nllO0O = 0; + nllO1i = 0; + nllO1l = 0; + nllO1O = 0; + nllOi = 0; + nllOii = 0; + nllOil = 0; + nllOiO = 0; + nllOl = 0; + nllOli = 0; + nllOll = 0; + nllOlO = 0; + nllOO = 0; + nllOOi = 0; + nllOOl = 0; + nllOOO = 0; + nlO00i = 0; + nlO00l = 0; + nlO00O = 0; + nlO01i = 0; + nlO01l = 0; + nlO01O = 0; + nlO0i = 0; + nlO0ii = 0; + nlO0il = 0; + nlO0iO = 0; + nlO0l = 0; + nlO0li = 0; + nlO0ll = 0; + nlO0lO = 0; + nlO0O = 0; + nlO0Oi = 0; + nlO0Ol = 0; + nlO0OO = 0; + nlO10i = 0; + nlO10l = 0; + nlO10O = 0; + nlO11i = 0; + nlO11l = 0; + nlO11O = 0; + nlO1i = 0; + nlO1ii = 0; + nlO1il = 0; + nlO1iO = 0; + nlO1l = 0; + nlO1li = 0; + nlO1ll = 0; + nlO1lO = 0; + nlO1Oi = 0; + nlO1Ol = 0; + nlO1OO = 0; + nlOi = 0; + nlOi0i = 0; + nlOi0l = 0; + nlOi0O = 0; + nlOi1i = 0; + nlOi1l = 0; + nlOi1O = 0; + nlOii = 0; + nlOiii = 0; + nlOiil = 0; + nlOiiO = 0; + nlOil = 0; + nlOili = 0; + nlOill = 0; + nlOilO = 0; + nlOiO = 0; + nlOiOi = 0; + nlOiOl = 0; + nlOiOO = 0; + nlOl = 0; + nlOl0i = 0; + nlOl0l = 0; + nlOl0O = 0; + nlOl1i = 0; + nlOl1l = 0; + nlOl1O = 0; + nlOli = 0; + nlOlii = 0; + nlOlil = 0; + nlOliO = 0; + nlOll = 0; + nlOlli = 0; + nlOlll = 0; + nlOllO = 0; + nlOlO = 0; + nlOlOi = 0; + nlOlOl = 0; + nlOlOO = 0; + nlOO = 0; + nlOO0i = 0; + nlOO0l = 0; + nlOO0O = 0; + nlOO1i = 0; + nlOO1l = 0; + nlOO1O = 0; + nlOOi = 0; + nlOOii = 0; + nlOOil = 0; + nlOOiO = 0; + nlOOl = 0; + nlOOli = 0; + nlOOll = 0; + nlOOlO = 0; + nlOOO = 0; + nlOOOi = 0; + nlOOOl = 0; + nlOOOO = 0; + end + always @ ( posedge clk or posedge areset) + begin + if (areset == 1'b1) + begin + n00i <= 0; + n00l <= 0; + n00O <= 0; + n01i <= 0; + n01l <= 0; + n01O <= 0; + n0ii <= 0; + n0il <= 0; + n0iO <= 0; + n0li <= 0; + n0ll <= 0; + n0lO <= 0; + n0Oi <= 0; + n0Ol <= 0; + n0OO <= 0; + n100i <= 0; + n100l <= 0; + n100O <= 0; + n101i <= 0; + n101l <= 0; + n101O <= 0; + n10i <= 0; + n10ii <= 0; + n10il <= 0; + n10iO <= 0; + n10l <= 0; + n10li <= 0; + n10ll <= 0; + n10lO <= 0; + n10O <= 0; + n10Oi <= 0; + n10Ol <= 0; + n10OO <= 0; + n110i <= 0; + n110l <= 0; + n110O <= 0; + n111i <= 0; + n111l <= 0; + n111O <= 0; + n11i <= 0; + n11ii <= 0; + n11il <= 0; + n11iO <= 0; + n11l <= 0; + n11li <= 0; + n11ll <= 0; + n11lO <= 0; + n11O <= 0; + n11Oi <= 0; + n11Ol <= 0; + n11OO <= 0; + n1i <= 0; + n1i0i <= 0; + n1i0l <= 0; + n1i0O <= 0; + n1i1i <= 0; + n1i1l <= 0; + n1i1O <= 0; + n1ii <= 0; + n1iii <= 0; + n1iil <= 0; + n1iiO <= 0; + n1il <= 0; + n1ili <= 0; + n1ill <= 0; + n1ilO <= 0; + n1iO <= 0; + n1iOi <= 0; + n1iOl <= 0; + n1iOO <= 0; + n1l0i <= 0; + n1l0l <= 0; + n1l0O <= 0; + n1l1i <= 0; + n1l1l <= 0; + n1l1O <= 0; + n1li <= 0; + n1lii <= 0; + n1lil <= 0; + n1liO <= 0; + n1ll <= 0; + n1lli <= 0; + n1lll <= 0; + n1lO <= 0; + n1O <= 0; + n1Oi <= 0; + n1Ol <= 0; + n1OO <= 0; + ni0i <= 0; + ni0l <= 0; + ni0O <= 0; + ni1i <= 0; + ni1l <= 0; + ni1O <= 0; + niii <= 0; + niil <= 0; + niilO <= 0; + niiO <= 0; + niiOi <= 0; + nili <= 0; + nill <= 0; + nilli <= 0; + nilO <= 0; + niOi <= 0; + niOii <= 0; + niOl <= 0; + niOli <= 0; + niOll <= 0; + niOlO <= 0; + niOO <= 0; + niOOi <= 0; + niOOl <= 0; + niOOO <= 0; + nl01i <= 0; + nl01l <= 0; + nl01O <= 0; + nl0i <= 0; + nl0l <= 0; + nl0O <= 0; + nl10i <= 0; + nl10l <= 0; + nl10O <= 0; + nl11i <= 0; + nl11l <= 0; + nl11O <= 0; + nl1i <= 0; + nl1ii <= 0; + nl1il <= 0; + nl1iO <= 0; + nl1l <= 0; + nl1li <= 0; + nl1ll <= 0; + nl1lO <= 0; + nl1O <= 0; + nl1Oi <= 0; + nl1Ol <= 0; + nl1OO <= 0; + nlii <= 0; + nlil <= 0; + nliO <= 0; + nliOi <= 0; + nliOl <= 0; + nliOO <= 0; + nll0i <= 0; + nll0l <= 0; + nll0O <= 0; + nll1i <= 0; + nll1l <= 0; + nll1O <= 0; + nlli <= 0; + nllii <= 0; + nllil <= 0; + nlll <= 0; + nllli <= 0; + nllll <= 0; + nlllO <= 0; + nllO <= 0; + nllO0i <= 0; + nllO0l <= 0; + nllO0O <= 0; + nllO1i <= 0; + nllO1l <= 0; + nllO1O <= 0; + nllOi <= 0; + nllOii <= 0; + nllOil <= 0; + nllOiO <= 0; + nllOl <= 0; + nllOli <= 0; + nllOll <= 0; + nllOlO <= 0; + nllOO <= 0; + nllOOi <= 0; + nllOOl <= 0; + nllOOO <= 0; + nlO00i <= 0; + nlO00l <= 0; + nlO00O <= 0; + nlO01i <= 0; + nlO01l <= 0; + nlO01O <= 0; + nlO0i <= 0; + nlO0ii <= 0; + nlO0il <= 0; + nlO0iO <= 0; + nlO0l <= 0; + nlO0li <= 0; + nlO0ll <= 0; + nlO0lO <= 0; + nlO0O <= 0; + nlO0Oi <= 0; + nlO0Ol <= 0; + nlO0OO <= 0; + nlO10i <= 0; + nlO10l <= 0; + nlO10O <= 0; + nlO11i <= 0; + nlO11l <= 0; + nlO11O <= 0; + nlO1i <= 0; + nlO1ii <= 0; + nlO1il <= 0; + nlO1iO <= 0; + nlO1l <= 0; + nlO1li <= 0; + nlO1ll <= 0; + nlO1lO <= 0; + nlO1Oi <= 0; + nlO1Ol <= 0; + nlO1OO <= 0; + nlOi <= 0; + nlOi0i <= 0; + nlOi0l <= 0; + nlOi0O <= 0; + nlOi1i <= 0; + nlOi1l <= 0; + nlOi1O <= 0; + nlOii <= 0; + nlOiii <= 0; + nlOiil <= 0; + nlOiiO <= 0; + nlOil <= 0; + nlOili <= 0; + nlOill <= 0; + nlOilO <= 0; + nlOiO <= 0; + nlOiOi <= 0; + nlOiOl <= 0; + nlOiOO <= 0; + nlOl <= 0; + nlOl0i <= 0; + nlOl0l <= 0; + nlOl0O <= 0; + nlOl1i <= 0; + nlOl1l <= 0; + nlOl1O <= 0; + nlOli <= 0; + nlOlii <= 0; + nlOlil <= 0; + nlOliO <= 0; + nlOll <= 0; + nlOlli <= 0; + nlOlll <= 0; + nlOllO <= 0; + nlOlO <= 0; + nlOlOi <= 0; + nlOlOl <= 0; + nlOlOO <= 0; + nlOO <= 0; + nlOO0i <= 0; + nlOO0l <= 0; + nlOO0O <= 0; + nlOO1i <= 0; + nlOO1l <= 0; + nlOO1O <= 0; + nlOOi <= 0; + nlOOii <= 0; + nlOOil <= 0; + nlOOiO <= 0; + nlOOl <= 0; + nlOOli <= 0; + nlOOll <= 0; + nlOOlO <= 0; + nlOOO <= 0; + nlOOOi <= 0; + nlOOOl <= 0; + nlOOOO <= 0; + end + else + begin + n00i <= b[4]; + n00l <= b[5]; + n00O <= b[6]; + n01i <= b[1]; + n01l <= b[2]; + n01O <= b[3]; + n0ii <= b[7]; + n0il <= b[8]; + n0iO <= b[9]; + n0li <= b[10]; + n0ll <= b[11]; + n0lO <= b[12]; + n0Oi <= b[13]; + n0Ol <= b[14]; + n0OO <= b[15]; + n100i <= n1ilO; + n100l <= n1iOi; + n100O <= n1iOl; + n101i <= n1iiO; + n101l <= n1ili; + n101O <= n1ill; + n10i <= wire_n0i_o[37]; + n10ii <= n1iOO; + n10il <= n1l1i; + n10iO <= n1l1l; + n10l <= wire_n0i_o[38]; + n10li <= n1l1O; + n10ll <= n1l0i; + n10lO <= n1l0l; + n10O <= wire_n0i_o[39]; + n10Oi <= n1l0O; + n10Ol <= n1lii; + n10OO <= n1lil; + n110i <= n10lO; + n110l <= n10Oi; + n110O <= n10Ol; + n111i <= n10iO; + n111l <= n10li; + n111O <= n10ll; + n11i <= wire_n0i_o[34]; + n11ii <= n10OO; + n11il <= n1i1i; + n11iO <= n1i1l; + n11l <= wire_n0i_o[35]; + n11li <= n1i1O; + n11ll <= n1i0i; + n11lO <= n1i0l; + n11O <= wire_n0i_o[36]; + n11Oi <= n1i0O; + n11Ol <= n1iii; + n11OO <= n1iil; + n1i <= a[22]; + n1i0i <= wire_niOiO_o[1]; + n1i0l <= wire_niOiO_o[2]; + n1i0O <= wire_niOiO_o[3]; + n1i1i <= n1liO; + n1i1l <= n1lli; + n1i1O <= n1lll; + n1ii <= wire_n0i_o[40]; + n1iii <= wire_niOiO_o[4]; + n1iil <= wire_niOiO_o[5]; + n1iiO <= wire_niOiO_o[6]; + n1il <= wire_n0i_o[41]; + n1ili <= wire_niOiO_o[7]; + n1ill <= wire_niOiO_o[8]; + n1ilO <= wire_niOiO_o[9]; + n1iO <= wire_n0i_o[42]; + n1iOi <= wire_niOiO_o[10]; + n1iOl <= wire_niOiO_o[11]; + n1iOO <= wire_niOiO_o[12]; + n1l0i <= wire_niOiO_o[16]; + n1l0l <= wire_niOiO_o[17]; + n1l0O <= wire_niOiO_o[18]; + n1l1i <= wire_niOiO_o[13]; + n1l1l <= wire_niOiO_o[14]; + n1l1O <= wire_niOiO_o[15]; + n1li <= wire_n0i_o[43]; + n1lii <= wire_niOiO_o[19]; + n1lil <= wire_niOiO_o[20]; + n1liO <= wire_niOiO_o[21]; + n1ll <= wire_n0i_o[44]; + n1lli <= wire_niOiO_o[22]; + n1lll <= wire_niOiO_o[23]; + n1lO <= wire_n0i_o[45]; + n1O <= nlllOl; + n1Oi <= wire_n0i_o[46]; + n1Ol <= wire_n0i_o[47]; + n1OO <= b[0]; + ni0i <= b[19]; + ni0l <= b[20]; + ni0O <= b[21]; + ni1i <= b[16]; + ni1l <= b[17]; + ni1O <= b[18]; + niii <= b[22]; + niil <= nlllOl; + niilO <= wire_niiOO_o; + niiO <= a[0]; + niiOi <= wire_nilll_o[14]; + nili <= a[1]; + nill <= a[2]; + nilli <= wire_niOil_o[14]; + nilO <= a[3]; + niOi <= a[4]; + niOii <= wire_nl00i_dataout; + niOl <= a[5]; + niOli <= wire_nl00l_dataout; + niOll <= wire_nl00O_dataout; + niOlO <= wire_nl0ii_dataout; + niOO <= a[6]; + niOOi <= wire_nl0il_dataout; + niOOl <= wire_nl0iO_dataout; + niOOO <= wire_nl0li_dataout; + nl01i <= wire_nlill_dataout; + nl01l <= wire_nlilO_dataout; + nl01O <= wire_nlliO_o[1]; + nl0i <= a[10]; + nl0l <= a[11]; + nl0O <= a[12]; + nl10i <= wire_nl0Ol_dataout; + nl10l <= wire_nl0OO_dataout; + nl10O <= wire_nli1i_dataout; + nl11i <= wire_nl0ll_dataout; + nl11l <= wire_nl0lO_dataout; + nl11O <= wire_nl0Oi_dataout; + nl1i <= a[7]; + nl1ii <= wire_nli1l_dataout; + nl1il <= wire_nli1O_dataout; + nl1iO <= wire_nli0i_dataout; + nl1l <= a[8]; + nl1li <= wire_nli0l_dataout; + nl1ll <= wire_nli0O_dataout; + nl1lO <= wire_nliii_dataout; + nl1O <= a[9]; + nl1Oi <= wire_nliil_dataout; + nl1Ol <= wire_nliiO_dataout; + nl1OO <= wire_nlili_dataout; + nlii <= a[13]; + nlil <= a[14]; + nliO <= a[15]; + nliOi <= wire_nlliO_o[2]; + nliOl <= wire_nlliO_o[3]; + nliOO <= wire_nlliO_o[4]; + nll0i <= wire_nlliO_o[8]; + nll0l <= wire_nlliO_o[9]; + nll0O <= wire_nlliO_o[10]; + nll1i <= wire_nlliO_o[5]; + nll1l <= wire_nlliO_o[6]; + nll1O <= wire_nlliO_o[7]; + nlli <= a[16]; + nllii <= wire_nlliO_o[11]; + nllil <= wire_nlO1O_o[0]; + nlll <= a[17]; + nllli <= wire_nlO1O_o[1]; + nllll <= wire_nlO1O_o[2]; + nlllO <= wire_nlO1O_o[3]; + nllO <= a[18]; + nllO0i <= nlllil; + nllO0l <= nllO0O; + nllO0O <= nllO0i; + nllO1i <= nllliO; + nllO1l <= nllO1O; + nllO1O <= nllO1i; + nllOi <= wire_nlO1O_o[4]; + nllOii <= (nllO1l & nllO0l); + nllOil <= nlllii; + nllOiO <= nllOli; + nllOl <= wire_nlO1O_o[5]; + nllOli <= nllOll; + nllOll <= nllOil; + nllOlO <= nlll0O; + nllOO <= wire_nlO1O_o[6]; + nllOOi <= nllOOl; + nllOOl <= nllOlO; + nllOOO <= nlll0l; + nlO00i <= n1Ol; + nlO00l <= nllil; + nlO00O <= nllli; + nlO01i <= nlO01l; + nlO01l <= nlO1Oi; + nlO01O <= ((~ nlO1lO) & nlO1Ol); + nlO0i <= wire_n0i_o[22]; + nlO0ii <= nllll; + nlO0il <= nlllO; + nlO0iO <= nllOi; + nlO0l <= wire_n0i_o[23]; + nlO0li <= nllOl; + nlO0ll <= nllOO; + nlO0lO <= nlO1i; + nlO0O <= wire_n0i_o[24]; + nlO0Oi <= nlO1l; + nlO0Ol <= wire_niOiO_o[24]; + nlO0OO <= wire_niOiO_o[25]; + nlO10i <= nlll0i; + nlO10l <= nlO10O; + nlO10O <= nlO1ii; + nlO11i <= nlO11l; + nlO11l <= nllOOO; + nlO11O <= (nllOOi & nlO11i); + nlO1i <= wire_nlO1O_o[7]; + nlO1ii <= nlO10i; + nlO1il <= (~ nllOOi); + nlO1iO <= nlO11i; + nlO1l <= wire_nlO1O_o[8]; + nlO1li <= (~ nllO1l); + nlO1ll <= nllO0l; + nlO1lO <= (((nllOii & nllOiO) | (nlO11O & nlO10l)) | ((nlO1il & nlO1iO) | (nlO1li & nlO1ll))); + nlO1Oi <= (a[31] ^ b[31]); + nlO1Ol <= nlO1OO; + nlO1OO <= nlO01i; + nlOi <= a[19]; + nlOi0i <= wire_niOiO_o[29]; + nlOi0l <= wire_niOiO_o[30]; + nlOi0O <= wire_niOiO_o[31]; + nlOi1i <= wire_niOiO_o[26]; + nlOi1l <= wire_niOiO_o[27]; + nlOi1O <= wire_niOiO_o[28]; + nlOii <= wire_n0i_o[25]; + nlOiii <= wire_niOiO_o[32]; + nlOiil <= wire_niOiO_o[33]; + nlOiiO <= wire_niOiO_o[34]; + nlOil <= wire_n0i_o[26]; + nlOili <= wire_niOiO_o[35]; + nlOill <= nlOl0i; + nlOilO <= nlOl0l; + nlOiO <= wire_n0i_o[27]; + nlOiOi <= nlOl0O; + nlOiOl <= nlOlii; + nlOiOO <= nlOlil; + nlOl <= a[20]; + nlOl0i <= nlO0Ol; + nlOl0l <= nlO0OO; + nlOl0O <= nlOi1i; + nlOl1i <= nlOliO; + nlOl1l <= nlOlli; + nlOl1O <= nlOlll; + nlOli <= wire_n0i_o[28]; + nlOlii <= nlOi1l; + nlOlil <= nlOi1O; + nlOliO <= nlOi0i; + nlOll <= wire_n0i_o[29]; + nlOlli <= nlOi0l; + nlOlll <= nlOi0O; + nlOllO <= ((~ nllOiO) & (~ nlO1iO)); + nlOlO <= wire_n0i_o[30]; + nlOlOi <= ((~ nlO10l) & (~ nlO1ll)); + nlOlOl <= nllOii; + nlOlOO <= nlO11O; + nlOO <= a[21]; + nlOO0i <= n11lO; + nlOO0l <= n11Oi; + nlOO0O <= n11Ol; + nlOO1i <= nllOiO; + nlOO1l <= nlO10l; + nlOO1O <= n11ll; + nlOOi <= wire_n0i_o[31]; + nlOOii <= n11OO; + nlOOil <= n101i; + nlOOiO <= n101l; + nlOOl <= wire_n0i_o[32]; + nlOOli <= n101O; + nlOOll <= n100i; + nlOOlO <= n100l; + nlOOO <= wire_n0i_o[33]; + nlOOOi <= n100O; + nlOOOl <= n10ii; + nlOOOO <= n10il; + end + end + initial + begin + niliO = 0; + end + always @ ( posedge clk or posedge areset) + begin + if (areset == 1'b1) + begin + niliO <= 1; + end + else + begin + niliO <= wire_niiOl_o; + end + end + event niliO_event; + initial + #1 ->niliO_event; + always @(niliO_event) + niliO <= 1; + assign wire_nl00i_dataout = ((~ n1Ol) === 1'b1) ? nlO0i : nlO0l; + assign wire_nl00l_dataout = ((~ n1Ol) === 1'b1) ? nlO0l : nlO0O; + assign wire_nl00O_dataout = ((~ n1Ol) === 1'b1) ? nlO0O : nlOii; + assign wire_nl0ii_dataout = ((~ n1Ol) === 1'b1) ? nlOii : nlOil; + assign wire_nl0il_dataout = ((~ n1Ol) === 1'b1) ? nlOil : nlOiO; + assign wire_nl0iO_dataout = ((~ n1Ol) === 1'b1) ? nlOiO : nlOli; + assign wire_nl0li_dataout = ((~ n1Ol) === 1'b1) ? nlOli : nlOll; + assign wire_nl0ll_dataout = ((~ n1Ol) === 1'b1) ? nlOll : nlOlO; + assign wire_nl0lO_dataout = ((~ n1Ol) === 1'b1) ? nlOlO : nlOOi; + assign wire_nl0Oi_dataout = ((~ n1Ol) === 1'b1) ? nlOOi : nlOOl; + assign wire_nl0Ol_dataout = ((~ n1Ol) === 1'b1) ? nlOOl : nlOOO; + assign wire_nl0OO_dataout = ((~ n1Ol) === 1'b1) ? nlOOO : n11i; + assign wire_nli0i_dataout = ((~ n1Ol) === 1'b1) ? n10i : n10l; + assign wire_nli0l_dataout = ((~ n1Ol) === 1'b1) ? n10l : n10O; + assign wire_nli0O_dataout = ((~ n1Ol) === 1'b1) ? n10O : n1ii; + assign wire_nli1i_dataout = ((~ n1Ol) === 1'b1) ? n11i : n11l; + assign wire_nli1l_dataout = ((~ n1Ol) === 1'b1) ? n11l : n11O; + assign wire_nli1O_dataout = ((~ n1Ol) === 1'b1) ? n11O : n10i; + assign wire_nliii_dataout = ((~ n1Ol) === 1'b1) ? n1ii : n1il; + assign wire_nliil_dataout = ((~ n1Ol) === 1'b1) ? n1il : n1iO; + assign wire_nliiO_dataout = ((~ n1Ol) === 1'b1) ? n1iO : n1li; + assign wire_nlili_dataout = ((~ n1Ol) === 1'b1) ? n1li : n1ll; + assign wire_nlill_dataout = ((~ n1Ol) === 1'b1) ? n1ll : n1lO; + assign wire_nlilO_dataout = ((~ n1Ol) === 1'b1) ? n1lO : n1Oi; + oper_add nilll + ( + .a({{3{(~ nlOili)}}, (~ nlOiiO), (~ nlOiil), (~ nlOiii), (~ nlOi0O), (~ nlOi0l), (~ nlOi0i), (~ nlOi1O), (~ nlOi1l), (~ nlOi1i), (~ nlO0OO), (~ nlO0Ol), 1'b1}), + .b({{14{1'b0}}, 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_nilll_o)); + defparam + nilll.sgate_representation = 0, + nilll.width_a = 15, + nilll.width_b = 15, + nilll.width_o = 15; + oper_add niOil + ( + .a({{3{nlOili}}, nlOiiO, nlOiil, nlOiii, nlOi0O, nlOi0l, nlOi0i, nlOi1O, nlOi1l, nlOi1i, nlO0OO, nlO0Ol, 1'b1}), + .b({{6{1'b1}}, {8{1'b0}}, 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_niOil_o)); + defparam + niOil.sgate_representation = 0, + niOil.width_a = 15, + niOil.width_b = 15, + niOil.width_o = 15; + oper_add niOiO + ( + .a({{3{nllii}}, nll0O, nll0l, nll0i, nll1O, nll1l, nll1i, nliOO, nliOl, nliOi, nl01O, nl01l, nl01i, nl1OO, nl1Ol, nl1Oi, nl1lO, nl1ll, nl1li, nl1iO, nl1il, nl1ii, nl10O, nl10l, nl10i, nl11O, nl11l, nl11i, niOOO, niOOl, niOOi, niOlO, niOll, niOli, niOii}), + .b({{12{1'b0}}, nlO00i, {23{1'b0}}, 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_niOiO_o)); + defparam + niOiO.sgate_representation = 0, + niOiO.width_a = 37, + niOiO.width_b = 37, + niOiO.width_o = 37; + oper_add nlliO + ( + .a({{3{1'b0}}, nlO0Oi, nlO0lO, nlO0ll, nlO0li, nlO0iO, nlO0il, nlO0ii, nlO00O, nlO00l, 1'b1}), + .b({{5{1'b1}}, {7{1'b0}}, 1'b1}), + .cin(1'b0), + .cout(), + .o(wire_nlliO_o)); + defparam + nlliO.sgate_representation = 0, + nlliO.width_a = 13, + nlliO.width_b = 13, + nlliO.width_o = 13; + oper_add nlO1O + ( + .a({1'b0, a[30:23]}), + .b({1'b0, b[30:23]}), + .cin(1'b0), + .cout(), + .o(wire_nlO1O_o)); + defparam + nlO1O.sgate_representation = 0, + nlO1O.width_a = 9, + nlO1O.width_b = 9, + nlO1O.width_o = 9; + oper_mult n0i + ( + .a({n1O, n1i, nlOO, nlOl, nlOi, nllO, nlll, nlli, nliO, nlil, nlii, nl0O, nl0l, nl0i, nl1O, nl1l, nl1i, niOO, niOl, niOi, nilO, nill, nili, niiO}), + .b({niil, niii, ni0O, ni0l, ni0i, ni1O, ni1l, ni1i, n0OO, n0Ol, n0Oi, n0lO, n0ll, n0li, n0iO, n0il, n0ii, n00O, n00l, n00i, n01O, n01l, n01i, n1OO}), + .o(wire_n0i_o)); + defparam + n0i.sgate_representation = 0, + n0i.width_a = 24, + n0i.width_b = 24, + n0i.width_o = 48; + oper_mux ni00i + ( + .data({{2{1'b0}}, nlOOll, 1'b0}), + .o(wire_ni00i_o), + .sel({niilO, niliO})); + defparam + ni00i.width_data = 4, + ni00i.width_sel = 2; + oper_mux ni00l + ( + .data({{2{1'b0}}, nlOOlO, 1'b0}), + .o(wire_ni00l_o), + .sel({niilO, niliO})); + defparam + ni00l.width_data = 4, + ni00l.width_sel = 2; + oper_mux ni00O + ( + .data({{2{1'b0}}, nlOOOi, 1'b0}), + .o(wire_ni00O_o), + .sel({niilO, niliO})); + defparam + ni00O.width_data = 4, + ni00O.width_sel = 2; + oper_mux ni01i + ( + .data({{2{1'b0}}, nlOOil, 1'b0}), + .o(wire_ni01i_o), + .sel({niilO, niliO})); + defparam + ni01i.width_data = 4, + ni01i.width_sel = 2; + oper_mux ni01l + ( + .data({{2{1'b0}}, nlOOiO, 1'b0}), + .o(wire_ni01l_o), + .sel({niilO, niliO})); + defparam + ni01l.width_data = 4, + ni01l.width_sel = 2; + oper_mux ni01O + ( + .data({{2{1'b0}}, nlOOli, 1'b0}), + .o(wire_ni01O_o), + .sel({niilO, niliO})); + defparam + ni01O.width_data = 4, + ni01O.width_sel = 2; + oper_mux ni0ii + ( + .data({{2{1'b0}}, nlOOOl, 1'b0}), + .o(wire_ni0ii_o), + .sel({niilO, niliO})); + defparam + ni0ii.width_data = 4, + ni0ii.width_sel = 2; + oper_mux ni0il + ( + .data({{2{1'b0}}, nlOOOO, 1'b0}), + .o(wire_ni0il_o), + .sel({niilO, niliO})); + defparam + ni0il.width_data = 4, + ni0il.width_sel = 2; + oper_mux ni0iO + ( + .data({{2{1'b0}}, n111i, 1'b0}), + .o(wire_ni0iO_o), + .sel({niilO, niliO})); + defparam + ni0iO.width_data = 4, + ni0iO.width_sel = 2; + oper_mux ni0li + ( + .data({{2{1'b0}}, n111l, 1'b0}), + .o(wire_ni0li_o), + .sel({niilO, niliO})); + defparam + ni0li.width_data = 4, + ni0li.width_sel = 2; + oper_mux ni0ll + ( + .data({{2{1'b0}}, n111O, 1'b0}), + .o(wire_ni0ll_o), + .sel({niilO, niliO})); + defparam + ni0ll.width_data = 4, + ni0ll.width_sel = 2; + oper_mux ni0lO + ( + .data({{2{1'b0}}, n110i, 1'b0}), + .o(wire_ni0lO_o), + .sel({niilO, niliO})); + defparam + ni0lO.width_data = 4, + ni0lO.width_sel = 2; + oper_mux ni0Oi + ( + .data({{2{1'b0}}, n110l, 1'b0}), + .o(wire_ni0Oi_o), + .sel({niilO, niliO})); + defparam + ni0Oi.width_data = 4, + ni0Oi.width_sel = 2; + oper_mux ni0Ol + ( + .data({{2{1'b0}}, n110O, 1'b0}), + .o(wire_ni0Ol_o), + .sel({niilO, niliO})); + defparam + ni0Ol.width_data = 4, + ni0Ol.width_sel = 2; + oper_mux ni0OO + ( + .data({{2{1'b0}}, n11ii, 1'b0}), + .o(wire_ni0OO_o), + .sel({niilO, niliO})); + defparam + ni0OO.width_data = 4, + ni0OO.width_sel = 2; + oper_mux ni1ll + ( + .data({1'b1, 1'b0, nlOO1O, 1'b0}), + .o(wire_ni1ll_o), + .sel({niilO, niliO})); + defparam + ni1ll.width_data = 4, + ni1ll.width_sel = 2; + oper_mux ni1lO + ( + .data({{2{1'b0}}, nlOO0i, 1'b0}), + .o(wire_ni1lO_o), + .sel({niilO, niliO})); + defparam + ni1lO.width_data = 4, + ni1lO.width_sel = 2; + oper_mux ni1Oi + ( + .data({{2{1'b0}}, nlOO0l, 1'b0}), + .o(wire_ni1Oi_o), + .sel({niilO, niliO})); + defparam + ni1Oi.width_data = 4, + ni1Oi.width_sel = 2; + oper_mux ni1Ol + ( + .data({{2{1'b0}}, nlOO0O, 1'b0}), + .o(wire_ni1Ol_o), + .sel({niilO, niliO})); + defparam + ni1Ol.width_data = 4, + ni1Ol.width_sel = 2; + oper_mux ni1OO + ( + .data({{2{1'b0}}, nlOOii, 1'b0}), + .o(wire_ni1OO_o), + .sel({niilO, niliO})); + defparam + ni1OO.width_data = 4, + ni1OO.width_sel = 2; + oper_mux nii0i + ( + .data({{2{1'b1}}, nlOill, 1'b0}), + .o(wire_nii0i_o), + .sel({niilO, niliO})); + defparam + nii0i.width_data = 4, + nii0i.width_sel = 2; + oper_mux nii0l + ( + .data({{2{1'b1}}, nlOilO, 1'b0}), + .o(wire_nii0l_o), + .sel({niilO, niliO})); + defparam + nii0l.width_data = 4, + nii0l.width_sel = 2; + oper_mux nii0O + ( + .data({{2{1'b1}}, nlOiOi, 1'b0}), + .o(wire_nii0O_o), + .sel({niilO, niliO})); + defparam + nii0O.width_data = 4, + nii0O.width_sel = 2; + oper_mux nii1i + ( + .data({{2{1'b0}}, n11il, 1'b0}), + .o(wire_nii1i_o), + .sel({niilO, niliO})); + defparam + nii1i.width_data = 4, + nii1i.width_sel = 2; + oper_mux nii1l + ( + .data({{2{1'b0}}, n11iO, 1'b0}), + .o(wire_nii1l_o), + .sel({niilO, niliO})); + defparam + nii1l.width_data = 4, + nii1l.width_sel = 2; + oper_mux nii1O + ( + .data({{2{1'b0}}, n11li, 1'b0}), + .o(wire_nii1O_o), + .sel({niilO, niliO})); + defparam + nii1O.width_data = 4, + nii1O.width_sel = 2; + oper_mux niiii + ( + .data({{2{1'b1}}, nlOiOl, 1'b0}), + .o(wire_niiii_o), + .sel({niilO, niliO})); + defparam + niiii.width_data = 4, + niiii.width_sel = 2; + oper_mux niiil + ( + .data({{2{1'b1}}, nlOiOO, 1'b0}), + .o(wire_niiil_o), + .sel({niilO, niliO})); + defparam + niiil.width_data = 4, + niiil.width_sel = 2; + oper_mux niiiO + ( + .data({{2{1'b1}}, nlOl1i, 1'b0}), + .o(wire_niiiO_o), + .sel({niilO, niliO})); + defparam + niiiO.width_data = 4, + niiiO.width_sel = 2; + oper_mux niili + ( + .data({{2{1'b1}}, nlOl1l, 1'b0}), + .o(wire_niili_o), + .sel({niilO, niliO})); + defparam + niili.width_data = 4, + niili.width_sel = 2; + oper_mux niill + ( + .data({{2{1'b1}}, nlOl1O, 1'b0}), + .o(wire_niill_o), + .sel({niilO, niliO})); + defparam + niill.width_data = 4, + niill.width_sel = 2; + oper_mux niiOl + ( + .data({{3{1'b0}}, 1'b1}), + .o(wire_niiOl_o), + .sel({nlllll, nlllli})); + defparam + niiOl.width_data = 4, + niiOl.width_sel = 2; + oper_mux niiOO + ( + .data({{3{1'b0}}, 1'b1, 1'b0, 1'b1, {2{1'b0}}}), + .o(wire_niiOO_o), + .sel({nlO1lO, nlllll, nlllli})); + defparam + niiOO.width_data = 8, + niiOO.width_sel = 3; + assign + nlll0i = ((((((((~ a[23]) & (~ a[24])) & (~ a[25])) & (~ a[26])) & (~ a[27])) & (~ a[28])) & (~ a[29])) & (~ a[30])), + nlll0l = (((((((b[23] & b[24]) & b[25]) & b[26]) & b[27]) & b[28]) & b[29]) & b[30]), + nlll0O = (((((((((((((((((((((((~ b[0]) & (~ b[1])) & (~ b[2])) & (~ b[3])) & (~ b[4])) & (~ b[5])) & (~ b[6])) & (~ b[7])) & (~ b[8])) & (~ b[9])) & (~ b[10])) & (~ b[11])) & (~ b[12])) & (~ b[13])) & (~ b[14])) & (~ b[15])) & (~ b[16])) & (~ b[17])) & (~ b[18])) & (~ b[19])) & (~ b[20])) & (~ b[21])) & (~ b[22])), + nlllii = ((((((((~ b[23]) & (~ b[24])) & (~ b[25])) & (~ b[26])) & (~ b[27])) & (~ b[28])) & (~ b[29])) & (~ b[30])), + nlllil = (((((((a[23] & a[24]) & a[25]) & a[26]) & a[27]) & a[28]) & a[29]) & a[30]), + nllliO = (((((((((((((((((((((((~ a[0]) & (~ a[1])) & (~ a[2])) & (~ a[3])) & (~ a[4])) & (~ a[5])) & (~ a[6])) & (~ a[7])) & (~ a[8])) & (~ a[9])) & (~ a[10])) & (~ a[11])) & (~ a[12])) & (~ a[13])) & (~ a[14])) & (~ a[15])) & (~ a[16])) & (~ a[17])) & (~ a[18])) & (~ a[19])) & (~ a[20])) & (~ a[21])) & (~ a[22])), + nlllli = ((nllllO & (~ niiOi)) | ((nlOlOi & nlOO1i) | ((nlOllO & nlOO1l) | (nlOO1i & nlOO1l)))), + nlllll = ((nllllO & (~ nilli)) | ((nlOllO & nlOlOl) | ((nlOlOi & nlOlOO) | (nlOlOl & nlOlOO)))), + nllllO = (nlOllO & nlOlOi), + nlllOl = 1'b1, + q = {nlO01O, wire_niill_o, wire_niili_o, wire_niiiO_o, wire_niiil_o, wire_niiii_o, wire_nii0O_o, wire_nii0l_o, wire_nii0i_o, wire_nii1O_o, wire_nii1l_o, wire_nii1i_o, wire_ni0OO_o, wire_ni0Ol_o, wire_ni0Oi_o, wire_ni0lO_o, wire_ni0ll_o, wire_ni0li_o, wire_ni0iO_o, wire_ni0il_o, wire_ni0ii_o, wire_ni00O_o, wire_ni00l_o, wire_ni00i_o, wire_ni01O_o, wire_ni01l_o, wire_ni01i_o, wire_ni1OO_o, wire_ni1Ol_o, wire_ni1Oi_o, wire_ni1lO_o, wire_ni1ll_o}; +endmodule //ip_fp_mul +//synopsys translate_on +//VALID FILE diff --git a/ip/ip_fp_mul_sim/mentor/msim_setup.tcl b/ip/ip_fp_mul_sim/mentor/msim_setup.tcl new file mode 100644 index 0000000..490a369 --- /dev/null +++ b/ip/ip_fp_mul_sim/mentor/msim_setup.tcl @@ -0,0 +1,272 @@ + +# (C) 2001-2023 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and +# other software and tools, and its AMPP partner logic functions, and +# any output files any of the foregoing (including device programming +# or simulation files), and any associated documentation or information +# are expressly subject to the terms and conditions of the Altera +# Program License Subscription Agreement, Altera MegaCore Function +# License Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +# ---------------------------------------- +# Auto-generated simulation script msim_setup.tcl +# ---------------------------------------- +# This script provides commands to simulate the following IP detected in +# your Quartus project: +# ip_fp_mul +# +# Altera recommends that you source this Quartus-generated IP simulation +# script from your own customized top-level script, and avoid editing this +# generated script. +# +# To write a top-level script that compiles Altera simulation libraries and +# the Quartus-generated IP in your project, along with your design and +# testbench files, copy the text from the TOP-LEVEL TEMPLATE section below +# into a new file, e.g. named "mentor.do", and modify the text as directed. +# +# ---------------------------------------- +# # TOP-LEVEL TEMPLATE - BEGIN +# # +# # QSYS_SIMDIR is used in the Quartus-generated IP simulation script to +# # construct paths to the files required to simulate the IP in your Quartus +# # project. By default, the IP script assumes that you are launching the +# # simulator from the IP script location. If launching from another +# # location, set QSYS_SIMDIR to the output directory you specified when you +# # generated the IP script, relative to the directory from which you launch +# # the simulator. +# # +# set QSYS_SIMDIR <script generation output directory> +# # +# # Source the generated IP simulation script. +# source $QSYS_SIMDIR/mentor/msim_setup.tcl +# # +# # Set any compilation options you require (this is unusual). +# set USER_DEFINED_COMPILE_OPTIONS <compilation options> +# set USER_DEFINED_VHDL_COMPILE_OPTIONS <compilation options for VHDL> +# set USER_DEFINED_VERILOG_COMPILE_OPTIONS <compilation options for Verilog> +# # +# # Call command to compile the Quartus EDA simulation library. +# dev_com +# # +# # Call command to compile the Quartus-generated IP simulation files. +# com +# # +# # Add commands to compile all design files and testbench files, including +# # the top level. (These are all the files required for simulation other +# # than the files compiled by the Quartus-generated IP simulation script) +# # +# vlog <compilation options> <design and testbench files> +# # +# # Set the top-level simulation or testbench module/entity name, which is +# # used by the elab command to elaborate the top level. +# # +# set TOP_LEVEL_NAME <simulation top> +# # +# # Set any elaboration options you require. +# set USER_DEFINED_ELAB_OPTIONS <elaboration options> +# # +# # Call command to elaborate your design and testbench. +# elab +# # +# # Run the simulation. +# run -a +# # +# # Report success to the shell. +# exit -code 0 +# # +# # TOP-LEVEL TEMPLATE - END +# ---------------------------------------- +# +# IP SIMULATION SCRIPT +# ---------------------------------------- +# If ip_fp_mul is one of several IP cores in your +# Quartus project, you can generate a simulation script +# suitable for inclusion in your top-level simulation +# script by running the following command line: +# +# ip-setup-simulation --quartus-project=<quartus project> +# +# ip-setup-simulation will discover the Altera IP +# within the Quartus project, and generate a unified +# script which supports all the Altera IP within the design. +# ---------------------------------------- +# ACDS 20.1 720 linux 2023.10.21.04:56:13 + +# ---------------------------------------- +# Initialize variables +if ![info exists SYSTEM_INSTANCE_NAME] { + set SYSTEM_INSTANCE_NAME "" +} elseif { ![ string match "" $SYSTEM_INSTANCE_NAME ] } { + set SYSTEM_INSTANCE_NAME "/$SYSTEM_INSTANCE_NAME" +} + +if ![info exists TOP_LEVEL_NAME] { + set TOP_LEVEL_NAME "ip_fp_mul" +} + +if ![info exists QSYS_SIMDIR] { + set QSYS_SIMDIR "./../" +} + +if ![info exists QUARTUS_INSTALL_DIR] { + set QUARTUS_INSTALL_DIR "/nix/store/q54w47mfmcj9ag8kxwqvyi0snainbhjw-quartus-prime-lite-unwrapped-20.1.1.720/quartus/" +} + +if ![info exists USER_DEFINED_COMPILE_OPTIONS] { + set USER_DEFINED_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_VHDL_COMPILE_OPTIONS] { + set USER_DEFINED_VHDL_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_VERILOG_COMPILE_OPTIONS] { + set USER_DEFINED_VERILOG_COMPILE_OPTIONS "" +} +if ![info exists USER_DEFINED_ELAB_OPTIONS] { + set USER_DEFINED_ELAB_OPTIONS "" +} + +# ---------------------------------------- +# Initialize simulation properties - DO NOT MODIFY! +set ELAB_OPTIONS "" +set SIM_OPTIONS "" +if ![ string match "*-64 vsim*" [ vsim -version ] ] { +} else { +} + +# ---------------------------------------- +# Copy ROM/RAM files to simulation directory +alias file_copy { + echo "\[exec\] file_copy" +} + +# ---------------------------------------- +# Create compilation libraries +proc ensure_lib { lib } { if ![file isdirectory $lib] { vlib $lib } } +ensure_lib ./libraries/ +ensure_lib ./libraries/work/ +vmap work ./libraries/work/ +vmap work_lib ./libraries/work/ +if ![ string match "*ModelSim ALTERA*" [ vsim -version ] ] { + ensure_lib ./libraries/altera_ver/ + vmap altera_ver ./libraries/altera_ver/ + ensure_lib ./libraries/lpm_ver/ + vmap lpm_ver ./libraries/lpm_ver/ + ensure_lib ./libraries/sgate_ver/ + vmap sgate_ver ./libraries/sgate_ver/ + ensure_lib ./libraries/altera_mf_ver/ + vmap altera_mf_ver ./libraries/altera_mf_ver/ + ensure_lib ./libraries/altera_lnsim_ver/ + vmap altera_lnsim_ver ./libraries/altera_lnsim_ver/ + ensure_lib ./libraries/cyclonev_ver/ + vmap cyclonev_ver ./libraries/cyclonev_ver/ + ensure_lib ./libraries/cyclonev_hssi_ver/ + vmap cyclonev_hssi_ver ./libraries/cyclonev_hssi_ver/ + ensure_lib ./libraries/cyclonev_pcie_hip_ver/ + vmap cyclonev_pcie_hip_ver ./libraries/cyclonev_pcie_hip_ver/ +} + + +# ---------------------------------------- +# Compile device library files +alias dev_com { + echo "\[exec\] dev_com" + if ![ string match "*ModelSim ALTERA*" [ vsim -version ] ] { + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v" -work altera_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v" -work lpm_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v" -work sgate_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v" -work altera_mf_ver + eval vlog -sv $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim.sv" -work altera_lnsim_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/cyclonev_atoms_ncrypt.v" -work cyclonev_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/cyclonev_hmi_atoms_ncrypt.v" -work cyclonev_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v" -work cyclonev_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/cyclonev_hssi_atoms_ncrypt.v" -work cyclonev_hssi_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_hssi_atoms.v" -work cyclonev_hssi_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/cyclonev_pcie_hip_atoms_ncrypt.v" -work cyclonev_pcie_hip_ver + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_pcie_hip_atoms.v" -work cyclonev_pcie_hip_ver + } +} + +# ---------------------------------------- +# Compile the design files in correct order +alias com { + echo "\[exec\] com" + eval vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QSYS_SIMDIR/ip_fp_mul.vo" +} + +# ---------------------------------------- +# Elaborate top level design +alias elab { + echo "\[exec\] elab" + eval vsim -t ps $ELAB_OPTIONS $USER_DEFINED_ELAB_OPTIONS -L work -L work_lib -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclonev_ver -L cyclonev_hssi_ver -L cyclonev_pcie_hip_ver $TOP_LEVEL_NAME +} + +# ---------------------------------------- +# Elaborate the top level design with -voptargs=+acc option +alias elab_debug { + echo "\[exec\] elab_debug" + eval vsim -voptargs=+acc -t ps $ELAB_OPTIONS $USER_DEFINED_ELAB_OPTIONS -L work -L work_lib -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclonev_ver -L cyclonev_hssi_ver -L cyclonev_pcie_hip_ver $TOP_LEVEL_NAME +} + +# ---------------------------------------- +# Compile all the design files and elaborate the top level design +alias ld " + dev_com + com + elab +" + +# ---------------------------------------- +# Compile all the design files and elaborate the top level design with -voptargs=+acc +alias ld_debug " + dev_com + com + elab_debug +" + +# ---------------------------------------- +# Print out user commmand line aliases +alias h { + echo "List Of Command Line Aliases" + echo + echo "file_copy -- Copy ROM/RAM files to simulation directory" + echo + echo "dev_com -- Compile device library files" + echo + echo "com -- Compile the design files in correct order" + echo + echo "elab -- Elaborate top level design" + echo + echo "elab_debug -- Elaborate the top level design with -voptargs=+acc option" + echo + echo "ld -- Compile all the design files and elaborate the top level design" + echo + echo "ld_debug -- Compile all the design files and elaborate the top level design with -voptargs=+acc" + echo + echo + echo + echo "List Of Variables" + echo + echo "TOP_LEVEL_NAME -- Top level module name." + echo " For most designs, this should be overridden" + echo " to enable the elab/elab_debug aliases." + echo + echo "SYSTEM_INSTANCE_NAME -- Instantiated system module name inside top level module." + echo + echo "QSYS_SIMDIR -- Platform Designer base simulation directory." + echo + echo "QUARTUS_INSTALL_DIR -- Quartus installation directory." + echo + echo "USER_DEFINED_COMPILE_OPTIONS -- User-defined compile options, added to com/dev_com aliases." + echo + echo "USER_DEFINED_ELAB_OPTIONS -- User-defined elaboration options, added to elab/elab_debug aliases." + echo + echo "USER_DEFINED_VHDL_COMPILE_OPTIONS -- User-defined vhdl compile options, added to com/dev_com aliases." + echo + echo "USER_DEFINED_VERILOG_COMPILE_OPTIONS -- User-defined verilog compile options, added to com/dev_com aliases." +} +file_copy +h diff --git a/ip/ip_fp_mul_sim/synopsys/vcs/vcs_setup.sh b/ip/ip_fp_mul_sim/synopsys/vcs/vcs_setup.sh new file mode 100755 index 0000000..05b6a3c --- /dev/null +++ b/ip/ip_fp_mul_sim/synopsys/vcs/vcs_setup.sh @@ -0,0 +1,152 @@ + +# (C) 2001-2023 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and +# other software and tools, and its AMPP partner logic functions, and +# any output files any of the foregoing (including device programming +# or simulation files), and any associated documentation or information +# are expressly subject to the terms and conditions of the Altera +# Program License Subscription Agreement, Altera MegaCore Function +# License Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +# ACDS 20.1 720 linux 2023.10.21.04:56:13 + +# ---------------------------------------- +# vcs - auto-generated simulation script + +# ---------------------------------------- +# This script provides commands to simulate the following IP detected in +# your Quartus project: +# ip_fp_mul +# +# Altera recommends that you source this Quartus-generated IP simulation +# script from your own customized top-level script, and avoid editing this +# generated script. +# +# To write a top-level shell script that compiles Altera simulation libraries +# and the Quartus-generated IP in your project, along with your design and +# testbench files, follow the guidelines below. +# +# 1) Copy the shell script text from the TOP-LEVEL TEMPLATE section +# below into a new file, e.g. named "vcs_sim.sh". +# +# 2) Copy the text from the DESIGN FILE LIST & OPTIONS TEMPLATE section into +# a separate file, e.g. named "filelist.f". +# +# ---------------------------------------- +# # TOP-LEVEL TEMPLATE - BEGIN +# # +# # TOP_LEVEL_NAME is used in the Quartus-generated IP simulation script to +# # set the top-level simulation or testbench module/entity name. +# # +# # QSYS_SIMDIR is used in the Quartus-generated IP simulation script to +# # construct paths to the files required to simulate the IP in your Quartus +# # project. By default, the IP script assumes that you are launching the +# # simulator from the IP script location. If launching from another +# # location, set QSYS_SIMDIR to the output directory you specified when you +# # generated the IP script, relative to the directory from which you launch +# # the simulator. +# # +# # Source the Quartus-generated IP simulation script and do the following: +# # - Compile the Quartus EDA simulation library and IP simulation files. +# # - Specify TOP_LEVEL_NAME and QSYS_SIMDIR. +# # - Compile the design and top-level simulation module/entity using +# # information specified in "filelist.f". +# # - Override the default USER_DEFINED_SIM_OPTIONS. For example, to run +# # until $finish(), set to an empty string: USER_DEFINED_SIM_OPTIONS="". +# # - Run the simulation. +# # +# source <script generation output directory>/synopsys/vcs/vcs_setup.sh \ +# TOP_LEVEL_NAME=<simulation top> \ +# QSYS_SIMDIR=<script generation output directory> \ +# USER_DEFINED_ELAB_OPTIONS="\"-f filelist.f\"" \ +# USER_DEFINED_SIM_OPTIONS=<simulation options for your design> +# # +# # TOP-LEVEL TEMPLATE - END +# ---------------------------------------- +# +# ---------------------------------------- +# # DESIGN FILE LIST & OPTIONS TEMPLATE - BEGIN +# # +# # Compile all design files and testbench files, including the top level. +# # (These are all the files required for simulation other than the files +# # compiled by the Quartus-generated IP simulation script) +# # +# +systemverilogext+.sv +# <design and testbench files, compile-time options, elaboration options> +# # +# # DESIGN FILE LIST & OPTIONS TEMPLATE - END +# ---------------------------------------- +# +# IP SIMULATION SCRIPT +# ---------------------------------------- +# If ip_fp_mul is one of several IP cores in your +# Quartus project, you can generate a simulation script +# suitable for inclusion in your top-level simulation +# script by running the following command line: +# +# ip-setup-simulation --quartus-project=<quartus project> +# +# ip-setup-simulation will discover the Altera IP +# within the Quartus project, and generate a unified +# script which supports all the Altera IP within the design. +# ---------------------------------------- +# ACDS 20.1 720 linux 2023.10.21.04:56:13 +# ---------------------------------------- +# initialize variables +TOP_LEVEL_NAME="ip_fp_mul" +QSYS_SIMDIR="./../../" +QUARTUS_INSTALL_DIR="/nix/store/q54w47mfmcj9ag8kxwqvyi0snainbhjw-quartus-prime-lite-unwrapped-20.1.1.720/quartus/" +SKIP_FILE_COPY=0 +SKIP_SIM=0 +USER_DEFINED_ELAB_OPTIONS="" +USER_DEFINED_SIM_OPTIONS="+vcs+finish+100" +# ---------------------------------------- +# overwrite variables - DO NOT MODIFY! +# This block evaluates each command line argument, typically used for +# overwriting variables. An example usage: +# sh <simulator>_setup.sh SKIP_SIM=1 +for expression in "$@"; do + eval $expression + if [ $? -ne 0 ]; then + echo "Error: This command line argument, \"$expression\", is/has an invalid expression." >&2 + exit $? + fi +done + +# ---------------------------------------- +# initialize simulation properties - DO NOT MODIFY! +ELAB_OPTIONS="" +SIM_OPTIONS="" +if [[ `vcs -platform` != *"amd64"* ]]; then + : +else + : +fi + +# ---------------------------------------- +# copy RAM/ROM files to simulation directory + +vcs -lca -timescale=1ps/1ps -sverilog +verilog2001ext+.v -ntb_opts dtm $ELAB_OPTIONS $USER_DEFINED_ELAB_OPTIONS \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v \ + $QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim.sv \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_atoms_ncrypt.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_hmi_atoms_ncrypt.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_hssi_atoms_ncrypt.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_hssi_atoms.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_pcie_hip_atoms_ncrypt.v \ + -v $QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_pcie_hip_atoms.v \ + $QSYS_SIMDIR/ip_fp_mul.vo \ + -top $TOP_LEVEL_NAME +# ---------------------------------------- +# simulate +if [ $SKIP_SIM -eq 0 ]; then + ./simv $SIM_OPTIONS $USER_DEFINED_SIM_OPTIONS +fi diff --git a/ip/ip_fp_mul_sim/synopsys/vcsmx/synopsys_sim.setup b/ip/ip_fp_mul_sim/synopsys/vcsmx/synopsys_sim.setup new file mode 100644 index 0000000..5ae9b46 --- /dev/null +++ b/ip/ip_fp_mul_sim/synopsys/vcsmx/synopsys_sim.setup @@ -0,0 +1,13 @@ + +WORK > DEFAULT +DEFAULT: ./libraries/work/ +work: ./libraries/work/ +altera_ver: ./libraries/altera_ver/ +lpm_ver: ./libraries/lpm_ver/ +sgate_ver: ./libraries/sgate_ver/ +altera_mf_ver: ./libraries/altera_mf_ver/ +altera_lnsim_ver: ./libraries/altera_lnsim_ver/ +cyclonev_ver: ./libraries/cyclonev_ver/ +cyclonev_hssi_ver: ./libraries/cyclonev_hssi_ver/ +cyclonev_pcie_hip_ver: ./libraries/cyclonev_pcie_hip_ver/ +LIBRARY_SCAN = TRUE diff --git a/ip/ip_fp_mul_sim/synopsys/vcsmx/vcsmx_setup.sh b/ip/ip_fp_mul_sim/synopsys/vcsmx/vcsmx_setup.sh new file mode 100755 index 0000000..6dbe5b1 --- /dev/null +++ b/ip/ip_fp_mul_sim/synopsys/vcsmx/vcsmx_setup.sh @@ -0,0 +1,195 @@ + +# (C) 2001-2023 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and +# other software and tools, and its AMPP partner logic functions, and +# any output files any of the foregoing (including device programming +# or simulation files), and any associated documentation or information +# are expressly subject to the terms and conditions of the Altera +# Program License Subscription Agreement, Altera MegaCore Function +# License Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +# ACDS 20.1 720 linux 2023.10.21.04:56:13 + +# ---------------------------------------- +# vcsmx - auto-generated simulation script + +# ---------------------------------------- +# This script provides commands to simulate the following IP detected in +# your Quartus project: +# ip_fp_mul +# +# Altera recommends that you source this Quartus-generated IP simulation +# script from your own customized top-level script, and avoid editing this +# generated script. +# +# To write a top-level shell script that compiles Altera simulation libraries +# and the Quartus-generated IP in your project, along with your design and +# testbench files, copy the text from the TOP-LEVEL TEMPLATE section below +# into a new file, e.g. named "vcsmx_sim.sh", and modify text as directed. +# +# You can also modify the simulation flow to suit your needs. Set the +# following variables to 1 to disable their corresponding processes: +# - SKIP_FILE_COPY: skip copying ROM/RAM initialization files +# - SKIP_DEV_COM: skip compiling the Quartus EDA simulation library +# - SKIP_COM: skip compiling Quartus-generated IP simulation files +# - SKIP_ELAB and SKIP_SIM: skip elaboration and simulation +# +# ---------------------------------------- +# # TOP-LEVEL TEMPLATE - BEGIN +# # +# # QSYS_SIMDIR is used in the Quartus-generated IP simulation script to +# # construct paths to the files required to simulate the IP in your Quartus +# # project. By default, the IP script assumes that you are launching the +# # simulator from the IP script location. If launching from another +# # location, set QSYS_SIMDIR to the output directory you specified when you +# # generated the IP script, relative to the directory from which you launch +# # the simulator. In this case, you must also copy the generated library +# # setup "synopsys_sim.setup" into the location from which you launch the +# # simulator, or incorporate into any existing library setup. +# # +# # Run Quartus-generated IP simulation script once to compile Quartus EDA +# # simulation libraries and Quartus-generated IP simulation files, and copy +# # any ROM/RAM initialization files to the simulation directory. +# # +# # - If necessary, specify any compilation options: +# # USER_DEFINED_COMPILE_OPTIONS +# # USER_DEFINED_VHDL_COMPILE_OPTIONS applied to vhdl compiler +# # USER_DEFINED_VERILOG_COMPILE_OPTIONS applied to verilog compiler +# # +# source <script generation output directory>/synopsys/vcsmx/vcsmx_setup.sh \ +# SKIP_ELAB=1 \ +# SKIP_SIM=1 \ +# USER_DEFINED_COMPILE_OPTIONS=<compilation options for your design> \ +# USER_DEFINED_VHDL_COMPILE_OPTIONS=<VHDL compilation options for your design> \ +# USER_DEFINED_VERILOG_COMPILE_OPTIONS=<Verilog compilation options for your design> \ +# QSYS_SIMDIR=<script generation output directory> +# # +# # Compile all design files and testbench files, including the top level. +# # (These are all the files required for simulation other than the files +# # compiled by the IP script) +# # +# vlogan <compilation options> <design and testbench files> +# # +# # TOP_LEVEL_NAME is used in this script to set the top-level simulation or +# # testbench module/entity name. +# # +# # Run the IP script again to elaborate and simulate the top level: +# # - Specify TOP_LEVEL_NAME and USER_DEFINED_ELAB_OPTIONS. +# # - Override the default USER_DEFINED_SIM_OPTIONS. For example, to run +# # until $finish(), set to an empty string: USER_DEFINED_SIM_OPTIONS="". +# # +# source <script generation output directory>/synopsys/vcsmx/vcsmx_setup.sh \ +# SKIP_FILE_COPY=1 \ +# SKIP_DEV_COM=1 \ +# SKIP_COM=1 \ +# TOP_LEVEL_NAME="'-top <simulation top>'" \ +# QSYS_SIMDIR=<script generation output directory> \ +# USER_DEFINED_ELAB_OPTIONS=<elaboration options for your design> \ +# USER_DEFINED_SIM_OPTIONS=<simulation options for your design> +# # +# # TOP-LEVEL TEMPLATE - END +# ---------------------------------------- +# +# IP SIMULATION SCRIPT +# ---------------------------------------- +# If ip_fp_mul is one of several IP cores in your +# Quartus project, you can generate a simulation script +# suitable for inclusion in your top-level simulation +# script by running the following command line: +# +# ip-setup-simulation --quartus-project=<quartus project> +# +# ip-setup-simulation will discover the Altera IP +# within the Quartus project, and generate a unified +# script which supports all the Altera IP within the design. +# ---------------------------------------- +# ACDS 20.1 720 linux 2023.10.21.04:56:13 +# ---------------------------------------- +# initialize variables +TOP_LEVEL_NAME="ip_fp_mul" +QSYS_SIMDIR="./../../" +QUARTUS_INSTALL_DIR="/nix/store/q54w47mfmcj9ag8kxwqvyi0snainbhjw-quartus-prime-lite-unwrapped-20.1.1.720/quartus/" +SKIP_FILE_COPY=0 +SKIP_DEV_COM=0 +SKIP_COM=0 +SKIP_ELAB=0 +SKIP_SIM=0 +USER_DEFINED_ELAB_OPTIONS="" +USER_DEFINED_SIM_OPTIONS="+vcs+finish+100" + +# ---------------------------------------- +# overwrite variables - DO NOT MODIFY! +# This block evaluates each command line argument, typically used for +# overwriting variables. An example usage: +# sh <simulator>_setup.sh SKIP_SIM=1 +for expression in "$@"; do + eval $expression + if [ $? -ne 0 ]; then + echo "Error: This command line argument, \"$expression\", is/has an invalid expression." >&2 + exit $? + fi +done + +# ---------------------------------------- +# initialize simulation properties - DO NOT MODIFY! +ELAB_OPTIONS="" +SIM_OPTIONS="" +if [[ `vcs -platform` != *"amd64"* ]]; then + : +else + : +fi + +# ---------------------------------------- +# create compilation libraries +mkdir -p ./libraries/work/ +mkdir -p ./libraries/altera_ver/ +mkdir -p ./libraries/lpm_ver/ +mkdir -p ./libraries/sgate_ver/ +mkdir -p ./libraries/altera_mf_ver/ +mkdir -p ./libraries/altera_lnsim_ver/ +mkdir -p ./libraries/cyclonev_ver/ +mkdir -p ./libraries/cyclonev_hssi_ver/ +mkdir -p ./libraries/cyclonev_pcie_hip_ver/ + +# ---------------------------------------- +# copy RAM/ROM files to simulation directory + +# ---------------------------------------- +# compile device library files +if [ $SKIP_DEV_COM -eq 0 ]; then + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v" -work altera_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v" -work lpm_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v" -work sgate_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v" -work altera_mf_ver + vlogan +v2k -sverilog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim.sv" -work altera_lnsim_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_atoms_ncrypt.v" -work cyclonev_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_hmi_atoms_ncrypt.v" -work cyclonev_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v" -work cyclonev_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_hssi_atoms_ncrypt.v" -work cyclonev_hssi_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_hssi_atoms.v" -work cyclonev_hssi_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/synopsys/cyclonev_pcie_hip_atoms_ncrypt.v" -work cyclonev_pcie_hip_ver + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_pcie_hip_atoms.v" -work cyclonev_pcie_hip_ver +fi + +# ---------------------------------------- +# compile design files in correct order +if [ $SKIP_COM -eq 0 ]; then + vlogan +v2k $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS "$QSYS_SIMDIR/ip_fp_mul.vo" +fi + +# ---------------------------------------- +# elaborate top level design +if [ $SKIP_ELAB -eq 0 ]; then + vcs -lca -t ps $ELAB_OPTIONS $USER_DEFINED_ELAB_OPTIONS $TOP_LEVEL_NAME +fi + +# ---------------------------------------- +# simulate +if [ $SKIP_SIM -eq 0 ]; then + ./simv $SIM_OPTIONS $USER_DEFINED_SIM_OPTIONS +fi |
