Add local HLS dev setup: clangd, pragma highlighting + linting, local C-sim

This commit is contained in:
2026-10-24 17:13:18 +01:00
parent e036c194ed
commit 04b7425598
180 changed files with 745644 additions and 0 deletions

3
Practicals/README.md Normal file
View File

@@ -0,0 +1,3 @@
These files live within the directory /home/userfs/b/brs544/Courses/EMBS/.
They must be created in that directory on the remote machine and can then be copied over to this local directory.
The file names must not be changed, not the directory name more importantly because if the files are then copied back, Vitis + Vivado won't realise the change as they hardcode paths in projects.

178
Practicals/hlsdev/README.md Normal file
View File

@@ -0,0 +1,178 @@
# Local HLS development (`hlsdev`)
Vitis is slow over X11, so this folder lets you **edit, check and test** the
practical code on your Mac, and only go to the server when you want a real
synthesis run.
It gives you four things:
| | What | Why |
| --- | --- | --- |
| 1 | **clangd diagnostics** for the C++ itself | Real errors and warnings as you type, with no Xilinx install |
| 2 | **`#pragma HLS` highlighting** | Stock syntax files treat pragmas as anonymous preprocessor text |
| 3 | **`#pragma HLS` linting** | Compilers silently ignore misspelled pragmas - this catches them |
| 4 | **A local C-simulation** (`./sim.sh`) | Runs the real testbench in about a second instead of minutes |
---
## The one thing worth understanding first
`#pragma HLS ...` is **not C++**. clang and gcc have never heard of it and just
ignore it:
```c
#pragma HLS PIPELINE II=2
#pragma HLS TOTALLY_MADE_UP nonsense=1 // compiles identically fine
```
That has two consequences, and they are the reason this folder exists:
* **Good news:** you get correct C++ diagnostics with any normal compiler. The
pragmas never produce false errors.
* **Bad news:** nothing but the HLS compiler can tell a valid pragma from a
typo, and even Vitis HLS is often happy to ignore one silently. So a mistyped
`PIPLINE` can quietly cost you the optimisation you asked for.
Hence items 1-2 are for editing comfort, and item 3 is the one that actually
catches bugs.
---
## Setup
### 1. Point Neovim at the highlighting and linter (one line)
Add this to your `init.lua`:
```lua
vim.opt.runtimepath:append(vim.fn.expand('~/Projects/EMBS/Practicals/hlsdev/nvim'))
vim.opt.runtimepath:append(vim.fn.expand('~/Projects/EMBS/Practicals/hlsdev/nvim/after'))
```
Both lines are needed: the first picks up `plugin/`, the second picks up
`after/syntax/`. Nothing else to install - no plugin manager involved.
### 2. Get the real HLS headers (optional but recommended)
```bash
cd ~/Projects/EMBS/Practicals/hlsdev
./fetch-headers.sh --dry-run # see what is there and how big it is
./fetch-headers.sh # copy them (asks for your gateway password)
```
This copies just the header files (a few MB) from
`/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis` - not the 60 GB
toolchain. `clangd` and `./sim.sh` then use the genuine `ap_int.h`.
If you skip this, everything still works using the stand-in header in
`include-stub/`. That stub is **not** the real header - it only implements the
handful of `ap_uint` operations the practicals use, and `./sim.sh` prints a
warning when it falls back to it.
---
## Daily use
```bash
cd ~/Projects/EMBS/Practicals/hlsdev
./sim.sh # compile + run the C simulation locally (fast)
./lint.sh # check every #pragma HLS line
./sim.sh practical-4 # any other practical folder
./lint.sh ../practical-3b/game_of_life_practical3b/gameoflife.cpp # one file
```
In Neovim:
* Diagnostics from the pragma linter appear alongside clangd's, automatically
on open and on save.
* `:HlsPragmaLint` re-runs it on the current buffer.
---
## What the linter catches
```
$ ./lint.sh
gameoflife.cpp:2:9: error: unknown HLS pragma 'PIPLINE' - did you mean 'PIPELINE'?
gameoflife.cpp:3:9: error: UNROLL: factor must be an integer, got 'two'
gameoflife.cpp:4:9: warning: ARRAY_PARTITION: variable='missing_array' is not declared anywhere in this file
gameoflife.cpp:5:9: error: ARRAY_PARTITION: type='complet' is invalid (expected one of: block, complete, cyclic)
gameoflife.cpp:6:9: error: INTERFACE: 's_axillite' is not a valid mode (expected one of: ... s_axilite ...)
gameoflife.cpp:8:9: error: unknown HLS pragma 'TOTALLY_MADE_UP'
gameoflife.cpp:9:9: error: LOOP_TRIPCOUNT: missing required option 'min='
```
It checks pragma names, option names, option values, required options, and
whether the `variable=` / `port=` you named actually exists in the file -
with "did you mean" suggestions throughout.
---
## How clangd is wired up
Vitis writes a `compile_commands.json` next to the sources, but its paths point
at `/home/userfs/b/...` on the server and its flags (`-fhls`, `-hls-syn-headers-dir=`,
`--gcc-toolchain=`) are Xilinx-only, so clangd cannot use it.
Rather than overwrite it (Vitis regenerates and hard-codes paths), the file
`game_of_life_practical3b/.clangd` redirects clangd to a local flag set:
```yaml
CompileFlags:
CompilationDatabase: ../../hlsdev/clangd
```
and `hlsdev/clangd/compile_flags.txt` holds the actual flags:
```
-xc++
-std=c++14
-Wno-unknown-pragmas
-I../include
-I../include-stub
```
Relative paths are resolved from the `compile_flags.txt` directory, so this
stays portable - no absolute paths are committed.
---
## Files
| File | Purpose |
| --- | --- |
| `sim.sh` | Compile + run the C simulation locally |
| `lint.sh` | Run the pragma linter over the practicals |
| `hls_pragma_lint.py` | The linter itself (also usable in CI) |
| `fetch-headers.sh` | Copy the real HLS headers down from csteach0 |
| `clangd/compile_flags.txt` | Flags clangd uses for these files |
| `include-stub/ap_int.h` | Editor-only stand-in for the real `ap_int.h` |
| `include/` | Where `fetch-headers.sh` puts the real headers (gitignored) |
| `nvim/after/syntax/cpp.vim` | `#pragma HLS` highlighting |
| `nvim/plugin/hls_pragma_lint.lua` | Neovim diagnostics integration |
---
## Two caveats
**Treesitter will override the highlighting if the `cpp` parser is installed.**
Your config runs `vim.treesitter.start()` on every filetype, and Neovim has no
`cpp` parser installed, so it currently falls back to Vim syntax (where our
rules live). If you ever run `:TSInstall cpp`, the pragma highlighting will
stop working. Fix it by not starting treesitter for cpp, e.g.:
```lua
vim.api.nvim_create_autocmd('FileType', {
callback = function()
if vim.bo.filetype == 'cpp' then return end -- keep Vim syntax for cpp
pcall(vim.treesitter.start)
end,
})
```
**The local simulation is not synthesis.** It checks your logic against the
testbench, which is the bulk of the work - but it does not tell you about
timing, `II`, resource usage or whether the pragmas did what you wanted. For
that you still need a real HLS run on the server. `./lint.sh` covers the pragma
typos that the compiler would otherwise swallow.

View File

@@ -0,0 +1,5 @@
-xc++
-std=c++14
-Wno-unknown-pragmas
-I../include
-I../include-stub

View File

@@ -0,0 +1,53 @@
#!/usr/bin/env bash
#
# Copy the real Vitis HLS headers down from the CS server.
#
# Only header files are copied - a few MB, not the 60 GB toolchain - so clangd
# and ./sim.sh work against the genuine ap_int.h / hls_stream.h instead of the
# stand-in in hlsdev/include-stub.
#
# You will be asked for your gateway password / Duo approval, because the
# server is behind the IT Services SSH gateway.
#
# Usage:
# ./fetch-headers.sh # copy
# ./fetch-headers.sh --dry-run # just report what is there and how big it is
#
set -euo pipefail
here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
inc="$here/include"
host="${EMBS_HOST:-csteach0.york.ac.uk}"
vitis="${VITIS_ROOT:-/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis}"
sim_inc="$vitis/include"
syn_inc="$vitis/common/technology/autopilot"
echo "host : $host"
echo "sim inc : $sim_inc"
echo "syn inc : $syn_inc"
echo
echo "Asking the server what is there ..."
ssh "$host" "
du -sh '$sim_inc' '$syn_inc' 2>/dev/null || true
echo
echo 'ap_int.h / hls_stream.h found at:'
find '$sim_inc' '$syn_inc' -maxdepth 2 \\( -name ap_int.h -o -name hls_stream.h -o -name ap_fixed.h \\) 2>/dev/null
" || { echo "error: could not reach $host" >&2; exit 1; }
if [ "${1:-}" = "--dry-run" ]; then
echo
echo "--dry-run: nothing copied."
exit 0
fi
mkdir -p "$inc"
echo
echo "Copying headers (watch for the password prompt) ..."
rsync -a --info=progress2 "$host:$sim_inc/" "$inc/"
rsync -a --info=progress2 "$host:$syn_inc/" "$inc/"
echo
echo "Done. $(find "$inc" -name '*.h' | wc -l | tr -d ' ') headers now in $inc"
echo "clangd and ./sim.sh will use these in preference to the stub."

View File

@@ -0,0 +1,322 @@
#!/usr/bin/env python3
"""
hls_pragma_lint.py - check Xilinx Vitis HLS pragmas.
Why this exists
---------------
`#pragma HLS ...` is not C++. Stock clang and gcc do not know these pragmas
and simply ignore them, so a typo like
#pragma HLS PIPLINE II=2
compiles perfectly happily. Vitis HLS may also accept it silently, meaning the
optimisation you asked for just never happens - which is a genuinely nasty way
to lose an afternoon.
This linter knows the pragma names, the options each one takes, and the values
those options allow. It reports problems in the standard
file:line:col: error: message
form, so it works with nvim's errorformat, nvim-lint, efm-langserver, `:make`,
or any CI.
Usage
-----
./hls_pragma_lint.py file.cpp [more.cpp ...]
./hls_pragma_lint.py ../practical-3b/game_of_life_practical3b/gameoflife.cpp
Exit status is 0 when nothing is wrong, 1 when there is at least one error.
"""
import difflib
import re
import sys
# ---------------------------------------------------------------------------
# The pragma reference
# ---------------------------------------------------------------------------
# "FLAG" -> a bare keyword with no value, e.g. `rewind`
# "NUM" -> an integer
# set -> a value that must be one of these
# "ANY" -> anything (identifier, number, ...)
# ---------------------------------------------------------------------------
FLAG, NUM, ANY = "FLAG", "NUM", "ANY"
INTERFACE_MODES = {
"ap_none", "ap_vld", "ap_ack", "ap_hs", "ap_ovld", "ap_fifo",
"ap_memory", "ap_bram", "bram", "ap_ctrl_none", "ap_ctrl_hs",
"ap_ctrl_chain", "m_axi", "s_axilite", "axis", "s_axis", "m_axis",
"ap_stable", "ap_bus", "ap_array", "ap_array_rtl",
}
PRAGMAS = {
"PIPELINE": {
"options": {
"II": NUM, "rewind": FLAG, "off": FLAG, "enable_flush": FLAG,
"style": {"stp", "frp", "flp"},
},
},
"UNROLL": {
"options": {
"factor": NUM, "region": FLAG, "skip_exit_check": FLAG, "off": FLAG,
},
},
"ARRAY_PARTITION": {
"options": {
"variable": ANY, "type": {"block", "cyclic", "complete"},
"factor": NUM, "dim": NUM, "recursive": FLAG, "off": FLAG,
},
"required": ["variable"],
},
"ARRAY_RESHAPE": {
"options": {
"variable": ANY, "type": {"block", "cyclic", "complete"},
"factor": NUM, "dim": NUM, "off": FLAG,
},
"required": ["variable"],
},
"ARRAY_MAP": {
"options": {
"variable": ANY, "instance": ANY,
"mode": {"horizontal", "vertical"}, "offset": NUM, "off": FLAG,
},
"required": ["variable"],
},
"DATA_PACK": {
"options": {
"variable": ANY, "instance": ANY, "offset": NUM, "off": FLAG,
},
},
"AGGREGATE": {
"options": {
"variable": ANY, "compact": {"bit", "byte", "none", "auto"},
"dim": NUM, "off": FLAG,
},
"required": ["variable"],
},
"STREAM": {
"options": {
"variable": ANY, "depth": NUM, "dim": NUM, "off": FLAG,
},
"required": ["variable"],
},
"INTERFACE": {
"positional": INTERFACE_MODES,
"options": {
"mode": INTERFACE_MODES, "port": ANY, "bundle": ANY,
"register": FLAG, "depth": NUM, "offset": ANY, "clock": ANY,
"name": ANY, "num_read_outstanding": NUM,
"num_write_outstanding": NUM, "max_read_burst_length": NUM,
"max_write_burst_length": NUM, "latency": NUM,
"m_axi_offset": ANY, "storage_type": ANY, "storage_impl": ANY,
"sync": FLAG, "max_widen_bitwidth": NUM,
},
"required": ["port"],
},
"DATAFLOW": {
"options": {"off": FLAG, "disable_start_propagation": FLAG},
},
"INLINE": {
"options": {"off": FLAG, "recursive": FLAG, "region": FLAG},
},
"LATENCY": {
"options": {"min": NUM, "max": NUM, "off": FLAG},
},
"DEPENDENCE": {
"options": {
"variable": ANY, "type": {"inter", "intra"},
"direction": {"RAW", "WAR", "WAW"}, "distance": NUM, "off": FLAG,
},
"required": ["variable"],
},
"ALLOCATION": {
"options": {
"limit": NUM, "instances": ANY, "operation": ANY, "off": FLAG,
},
},
"OCCURRENCE": {
"options": {"cycle": NUM, "operation": ANY, "off": FLAG},
},
"LOOP_FLATTEN": {"options": {"off": FLAG}},
"LOOP_MERGE": {"options": {"force": FLAG, "off": FLAG}},
"LOOP_TRIPCOUNT": {
"options": {"min": NUM, "max": NUM, "avg": NUM},
"required": ["min"],
},
"FUNCTION_INSTANTIATE": {
"options": {"variable": ANY}, "required": ["variable"],
},
"RESET": {"options": {"off": FLAG}},
"PROTOCOL": {"positional": {"fixed", "float"}},
"EXPRESSION_BALANCE": {"options": {"off": FLAG}},
"REQUIREMENTS": {"options": {"min": NUM, "max": NUM}},
"DISAGGREGATE": {
"options": {"variable": ANY, "dim": NUM, "type": ANY},
"required": ["variable"],
},
"BIND_OP": {
"options": {
"op": ANY, "impl": ANY, "variable": ANY, "latency": NUM,
},
"required": ["op", "impl"],
},
"BIND_STORAGE": {
"options": {
"type": ANY, "impl": ANY, "variable": ANY, "latency": NUM,
},
"required": ["type", "impl"],
},
"SHARED": {"options": {"off": FLAG}},
}
# Options whose value is a name declared in the code.
NAME_OPTIONS = ("variable", "port", "op")
PRAGMA_RE = re.compile(r"#\s*pragma\s+HLS\b(?P<rest>.*)$")
TOKEN_RE = re.compile(r"(?P<key>[A-Za-z_]\w*)\s*=\s*(?P<val>[^\s=]+)|(?P<bare>[^\s=]+)")
def find_pragma_name(rest):
"""Pull the pragma name off the front of a pragma's argument text."""
m = re.match(r"\s*([A-Za-z_]\w*)", rest)
if not m:
return None, rest
return m.group(1), rest[m.end():]
def parse_tokens(text):
"""Return (options, bare_words) where options is [(key, val, col), ...]."""
options, bare = [], []
for m in TOKEN_RE.finditer(text):
if m.group("key"):
options.append((m.group("key"), m.group("val"), m.start("key")))
else:
bare.append((m.group("bare"), m.start("bare")))
return options, bare
def lint_file(path):
"""Return a list of (line, col, severity, message)."""
out = []
try:
with open(path, "r", errors="replace") as fh:
lines = fh.readlines()
except OSError as exc:
return [(1, 1, "error", "cannot read file: %s" % exc)]
whole_file = "".join(lines)
for lineno, line in enumerate(lines, start=1):
m = PRAGMA_RE.search(line)
if not m:
continue
rest = m.group("rest")
name, args = find_pragma_name(rest)
col = m.start() + m.group(0).index("HLS") + 1
if name is None:
out.append((lineno, col, "error",
"HLS pragma has no name (expected e.g. PIPELINE, UNROLL)"))
continue
if name not in PRAGMAS:
hint = difflib.get_close_matches(name, PRAGMAS.keys(), n=1, cutoff=0.6)
msg = "unknown HLS pragma '%s'" % name
if hint:
msg += " - did you mean '%s'?" % hint[0]
else:
msg += " (see the Vitis HLS pragma reference)"
out.append((lineno, col, "error", msg))
continue
spec = PRAGMAS[name]
known = spec.get("options", {})
positional = spec.get("positional")
options, bare = parse_tokens(args)
seen = {k for k, _, _ in options}
# Bare words: either a positional value or a flag.
for word, off in bare:
if word in known and known[word] is FLAG:
seen.add(word)
continue
if positional and word in positional:
continue
if positional and word not in positional:
out.append((lineno, col, "error",
"%s: '%s' is not a valid mode (expected one of: %s)"
% (name, word, ", ".join(sorted(positional)))))
continue
if word in known:
out.append((lineno, col, "error",
"%s: '%s' needs a value, e.g. %s=..." % (name, word, word)))
continue
hint = difflib.get_close_matches(word, list(known) + list(positional or ()),
n=1, cutoff=0.6)
msg = "%s: unknown option '%s'" % (name, word)
if hint:
msg += " - did you mean '%s'?" % hint[0]
out.append((lineno, col, "error", msg))
# key=value options
for key, val, off in options:
if key not in known:
hint = difflib.get_close_matches(key, known.keys(), n=1, cutoff=0.6)
msg = "%s: unknown option '%s'" % (name, key)
if hint:
msg += " - did you mean '%s'?" % hint[0]
out.append((lineno, col, "error", msg))
continue
expect = known[key]
if expect is FLAG:
out.append((lineno, col, "warning",
"%s: '%s' is a flag and takes no value" % (name, key)))
elif expect is NUM:
if not re.fullmatch(r"\d+", val):
out.append((lineno, col, "error",
"%s: %s must be an integer, got '%s'"
% (name, key, val)))
elif isinstance(expect, set):
if val not in expect:
out.append((lineno, col, "error",
"%s: %s='%s' is invalid (expected one of: %s)"
% (name, key, val, ", ".join(sorted(expect)))))
if key in NAME_OPTIONS and val != "return":
# Count occurrences across the file. A real object is declared
# at least once and named in at least one pragma, so a single
# hit means the only mention is this pragma itself.
hits = len(re.findall(r"\b%s\b" % re.escape(val), whole_file))
if hits <= 1:
out.append((lineno, col, "warning",
"%s: %s='%s' is not declared anywhere in this file"
% (name, key, val)))
# Required options
for req in spec.get("required", []):
if req not in seen and not (positional and req in positional):
out.append((lineno, col, "error",
"%s: missing required option '%s='" % (name, req)))
return out
def main(argv):
if len(argv) < 2:
print(__doc__.strip(), file=sys.stderr)
return 2
errors = 0
for path in argv[1:]:
for line, col, sev, msg in lint_file(path):
print("%s:%d:%d: %s: %s" % (path, line, col, sev, msg))
if sev == "error":
errors += 1
return 1 if errors else 0
if __name__ == "__main__":
sys.exit(main(sys.argv))

View File

@@ -0,0 +1,75 @@
#ifndef HLSDEV_AP_INT_STUB_H
#define HLSDEV_AP_INT_STUB_H
// ===========================================================================
// EDITOR-ONLY STAND-IN for Xilinx's <ap_int.h>
// ---------------------------------------------------------------------------
// This is NOT the real header. It exists so clangd can resolve ap_uint<N>
// (and so a simple C-simulation can be built) on a machine with no Xilinx
// tools installed.
//
// It implements only what the EMBS practicals use: unsigned fixed-width
// values, bit indexing, += / -=, and conversion to/from integers.
// It supports widths 1..64 only, and has none of the real header's
// arbitrary-precision, signed, overflow or simulation semantics.
//
// Run ./fetch-headers.sh to download the REAL headers from csteach0.
// They take precedence over this file when present.
// ===========================================================================
#include <cstdint>
template <int W>
class ap_uint {
static_assert(W > 0 && W <= 64, "hlsdev stub ap_uint supports widths 1..64");
public:
unsigned long long v;
static constexpr unsigned long long width_mask() {
return W >= 64 ? ~0ULL : ((1ULL << W) - 1ULL);
}
ap_uint() : v(0) {}
ap_uint(int x) : v((unsigned long long)x & width_mask()) {}
ap_uint(unsigned int x) : v((unsigned long long)x & width_mask()) {}
ap_uint(unsigned long long x) : v(x & width_mask()) {}
// Cross-width conversion, so e.g. ap_uint<4> += ap_uint<1> works.
// The implicit copy constructor is still preferred for the same width.
template <int W2>
ap_uint(const ap_uint<W2>& o) : v((unsigned long long)o & width_mask()) {}
operator unsigned long long() const { return v & width_mask(); }
ap_uint& operator=(unsigned long long x) { v = x & width_mask(); return *this; }
ap_uint& operator+=(const ap_uint& o) { v = (v + o.v) & width_mask(); return *this; }
ap_uint& operator-=(const ap_uint& o) { v = (v - o.v) & width_mask(); return *this; }
// Writing a single bit needs a proxy object, just like the real ap_uint.
class bit_ref {
ap_uint& parent;
int bit;
public:
bit_ref(ap_uint& p, int b) : parent(p), bit(b) {}
bit_ref& operator=(bool x) {
if (x) parent.v |= (1ULL << bit);
else parent.v &= ~(1ULL << bit);
return *this;
}
operator bool() const { return ((parent.v >> bit) & 1ULL) != 0; }
// Convert straight to any ap_uint<N> in a single user-defined
// conversion, so things like acc += grid[r][c]; resolve cleanly.
template <int W2>
operator ap_uint<W2>() const { return ap_uint<W2>((parent.v >> bit) & 1ULL); }
};
bit_ref operator[](int b) { return bit_ref(*this, b); }
bool operator[](int b) const { return ((v >> b) & 1ULL) != 0; }
};
#endif // HLSDEV_AP_INT_STUB_H

39
Practicals/hlsdev/lint.sh Executable file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
#
# Run the HLS pragma linter over the practicals.
#
# Usage:
# ./lint.sh # every source under Practicals/
# ./lint.sh path/to/file.cpp [more.cpp ...] # just these
#
# Exits non-zero if anything is wrong, so it also works as a pre-commit or CI
# check. For inline diagnostics inside nvim, see nvim/plugin/hls_pragma_lint.lua
#
set -euo pipefail
here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ "$#" -gt 0 ]; then
exec python3 "$here/hls_pragma_lint.py" "$@"
fi
# Resolve the parent properly: find returns the path as given, and
# ".../hlsdev/.." would contain "/hlsdev/" and defeat the exclusions below.
root="$(cd "$here/.." && pwd)"
# Every hand-written source, skipping generated HLS build output and our own
# tooling. Paths in the practicals never contain spaces (Vitis requires it).
files="$(find "$root" -type f \( \
-name '*.cpp' -o -name '*.cc' -o -name '*.cxx' -o -name '*.c' \
-o -name '*.h' -o -name '*.hpp' \) \
-not -path '*/hls/*' -not -path '*/hlsdev/*' | sort)"
if [ -z "$files" ]; then
echo "no source files found" >&2
exit 0
fi
echo "$files" | sed "s|^$root/| |"
echo
# shellcheck disable=SC2086
exec python3 "$here/hls_pragma_lint.py" $files

View File

@@ -0,0 +1,43 @@
" ===========================================================================
" HLS pragma highlighting for Vitis HLS (EMBS)
" ---------------------------------------------------------------------------
" Vim's stock C/C++ syntax files treat the whole "#pragma HLS ..." line as one
" anonymous preprocessor directive, so the pragma name and its options are
" invisible. These rules give them their own highlight groups.
"
" Loaded automatically when this directory is on 'runtimepath' (see the
" hlsdev README). Safe to source twice.
" ===========================================================================
if !exists('b:current_syntax')
finish
endif
if b:current_syntax !=# 'cpp' && b:current_syntax !=# 'c'
finish
endif
" The pragma line as a whole, so options inside it can be picked out.
syntax region hlsPragma
\ start=/#\s*pragma\s\+HLS\>/
\ end="$"
\ keepend
\ contains=hlsPragmaName,hlsPragmaOption,hlsPragmaValue,hlsPragmaMode
" The pragma name: PIPELINE, UNROLL, ARRAY_PARTITION, INTERFACE, ...
syntax match hlsPragmaName /\<HLS\>\s\+\zs[A-Z][A-Z_]*/ contained
" Option keys: variable=, II=, type=, port=, bundle=
syntax match hlsPragmaOption /\<\w\+\ze\s*=/ contained
" Option values: complete, 2, in_words, AXILiteS
syntax match hlsPragmaValue /=\s*\zs[^ ]\+/ contained
" INTERFACE modes are positional, so they have no "mode=" in front of them:
" #pragma HLS INTERFACE s_axilite port=return bundle=ctrl
syntax match hlsPragmaMode /\<\%(ap_none\|ap_vld\|ap_ack\|ap_hs\|ap_ovld\|ap_fifo\|ap_memory\|ap_bram\|bram\|ap_ctrl_none\|ap_ctrl_hs\|ap_ctrl_chain\|m_axi\|s_axilite\|axis\|s_axis\|m_axis\|ap_stable\|ap_bus\)\>/ contained
highlight default link hlsPragma PreProc
highlight default link hlsPragmaName Statement
highlight default link hlsPragmaOption Identifier
highlight default link hlsPragmaValue Constant
highlight default link hlsPragmaMode Constant

View File

@@ -0,0 +1,92 @@
-- ===========================================================================
-- HLS pragma diagnostics for Neovim (EMBS)
-- ---------------------------------------------------------------------------
-- Runs hls_pragma_lint.py over C/C++ buffers and reports the results through
-- vim.diagnostic, so they show up exactly like clangd's errors.
--
-- No plugin manager involved: this file lives in the hlsdev nvim runtimepath
-- entry, and Neovim sources plugin/*.lua automatically.
--
-- Commands:
-- :HlsPragmaLint re-run on the current buffer
-- :lua vim.diagnostic.reset(...) (see :h vim.diagnostic)
-- ===========================================================================
if vim.g.loaded_hls_pragma_lint then
return
end
vim.g.loaded_hls_pragma_lint = true
local ns = vim.api.nvim_create_namespace('hls_pragma_lint')
-- Locate hls_pragma_lint.py next to this runtimepath entry.
local plugin_dir = vim.fn.fnamemodify(debug.getinfo(1, 'S').source:sub(2), ':p:h')
local linter = vim.fn.fnamemodify(plugin_dir, ':h:h') .. '/hls_pragma_lint.py'
local function python()
if vim.fn.executable('python3') == 1 then
return 'python3'
end
return nil
end
local SEVERITY = {
error = vim.diagnostic.severity.ERROR,
warning = vim.diagnostic.severity.WARN,
info = vim.diagnostic.severity.INFO,
}
local function parse(output, bufnr)
local diags = {}
for line in vim.gsplit(output, '\n', { plain = true }) do
local _, l, c, sev, msg = line:match('^(.-):(%d+):(%d+): (%a+): (.*)$')
if l then
table.insert(diags, {
bufnr = bufnr,
lnum = tonumber(l) - 1,
col = tonumber(c) - 1,
severity = SEVERITY[sev] or vim.diagnostic.severity.INFO,
message = msg,
source = 'hls-pragma',
})
end
end
return diags
end
local function lint(bufnr)
bufnr = bufnr or vim.api.nvim_get_current_buf()
if not vim.api.nvim_buf_is_valid(bufnr) then
return
end
local ft = vim.bo[bufnr].filetype
if ft ~= 'c' and ft ~= 'cpp' then
return
end
if vim.fn.filereadable(linter) ~= 1 then
return
end
local py = python()
if not py then
return
end
local path = vim.api.nvim_buf_get_name(bufnr)
if path == '' then
return
end
local out = vim.fn.system({ py, linter, path })
vim.diagnostic.set(ns, bufnr, parse(out, bufnr))
end
vim.api.nvim_create_autocmd({ 'BufWritePost', 'BufReadPost' }, {
group = vim.api.nvim_create_augroup('HlsPragmaLint', { clear = true }),
pattern = { '*.c', '*.cpp', '*.cc', '*.h', '*.hpp' },
callback = function(ev)
lint(ev.buf)
end,
})
vim.api.nvim_create_user_command('HlsPragmaLint', function()
lint(0)
end, { desc = 'Check #pragma HLS lines in this buffer' })

75
Practicals/hlsdev/sim.sh Executable file
View File

@@ -0,0 +1,75 @@
#!/usr/bin/env bash
#
# Build and run the Vitis HLS C-simulation for a practical, locally.
#
# This is a plain C++ compile of the testbench + DUT, which is what "Run C
# Simulation" does on the server (minus the HLS compiler's extra checking).
# It is the fast way to know your logic is right before spending time on the
# remote machine.
#
# Usage:
# ./sim.sh # practical-3b
# ./sim.sh practical-4 # any other practical directory
#
set -euo pipefail
here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
practical="${1:-practical-3b}"
# Find the HLS component: the directory holding hls_config.cfg.
cfg="$(find "$here/../$practical" -name hls_config.cfg -not -path '*/hls/*' 2>/dev/null | head -1)"
if [ -z "$cfg" ]; then
echo "error: no hls_config.cfg found under $here/../$practical" >&2
exit 1
fi
proj="$(cd "$(dirname "$cfg")" && pwd)"
# hls_config.cfg names the sources, so we never have to guess.
tb_name="$(grep -E '^tb\.file=' "$cfg" | head -1 | cut -d= -f2- | tr -d '\r')"
dut_name="$(grep -E '^syn\.file=' "$cfg" | grep -E '\.(cpp|cc|cxx|c)$' | head -1 | cut -d= -f2- | tr -d '\r')"
if [ -z "$tb_name" ] || [ -z "$dut_name" ]; then
echo "error: could not read tb.file / syn.file from $cfg" >&2
exit 1
fi
# Prefer the real Xilinx headers; fall back to the stub so this still works
# before ./fetch-headers.sh has been run.
if [ -f "$here/include/ap_int.h" ]; then
inc="$here/include"
inc_extra="$here/include"
else
inc="$here/include-stub"
inc_extra="$here/include-stub"
echo "=============================================================="
echo "NOTE: using the FALLBACK stub headers in hlsdev/include-stub."
echo " They are good enough for the Game of Life practical, but"
echo " they are NOT the real Xilinx headers. Run ./fetch-headers.sh"
echo " for a simulation you can fully trust."
echo "=============================================================="
echo
fi
CXX="${CXX:-clang++}"
out="$here/build"
mkdir -p "$out"
dut="$proj/$dut_name"
tb="$proj/$tb_name"
for f in "$dut" "$tb"; do
[ -f "$f" ] || { echo "error: missing source $f" >&2; exit 1; }
done
echo "component : $proj"
echo "testbench : $tb_name"
echo "dut : $dut_name"
echo "compiling with $CXX ..."
"$CXX" -std=c++14 -O2 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-label \
-I"$inc" -I"$inc_extra" -I"$proj" \
"$tb" "$dut" -o "$out/csim"
echo "running ..."
echo "------------------------------------------------------------------"
"$out/csim"
echo "------------------------------------------------------------------"

View File

@@ -0,0 +1,5 @@
# Tell clangd to ignore the Vitis-generated compile_commands.json (its paths
# point at /home/userfs/... on the remote server and its flags are Xilinx-only)
# and use the local flag set in Practicals/hlsdev/clangd instead.
CompileFlags:
CompilationDatabase: ../../hlsdev/clangd

View File

@@ -0,0 +1,21 @@
# Ignore build output directory
/build
/export
# Ignore object files and dependent files
.o
.d
#Ignore logs folder and log files
/logs
.log
#Ignore lock files
.lock
.bin
.pdi
.vitisWorkspace.json
_ide/logs
_ide/.wsdata

View File

@@ -0,0 +1,27 @@
[
{
"directory": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b",
"arguments": [
"/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/vcxx/libexec/clang++",
"--gcc-toolchain=/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/tps/lnx64/gcc-8.3.0",
"-fhls",
"-hls-syn-headers-dir=/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/common/technology/autopilot",
"-fhlstoplevel=game_of_life_step",
"-c",
"/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/gameoflife.cpp"
],
"file": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/gameoflife.cpp"
},
{
"directory": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b",
"arguments": [
"/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/vcxx/libexec/clang++",
"--gcc-toolchain=/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/tps/lnx64/gcc-8.3.0",
"-fhls-tb",
"-hls-sim-headers-dir=/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/include",
"-c",
"/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/testbench.cpp"
],
"file": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/testbench.cpp"
}
]

View File

@@ -0,0 +1,246 @@
<ENTRY>
{
"thisFile": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/game_of_life_practical3b.hlscompile_summary",
"connectId": "",
"serverToken": "",
"timestamp": "0"
}
</ENTRY>
<ENTRY>
{
"type": "ET_CmdStep",
"dateTimestamp": "Tue Oct 20 17:50:47 2026",
"timestampMillis": "1792515047583",
"buildStep": {
"cmdId": "26212046-3e3b-461a-b5bb-933a3659c9f1",
"name": "v++",
"logFile": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/logs/game_of_life_practical3b.steps.log",
"commandLine": "/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/bin/unwrapped/lnx64.o/v++ -c --mode hls --config /home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/hls_config.cfg --work_dir game_of_life_practical3b ",
"args": [
"-c",
"--mode",
"hls",
"--config",
"/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/hls_config.cfg",
"--work_dir",
"game_of_life_practical3b"
],
"iniFiles": [
{
"path": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/hls_config.cfg",
"content": "part=xc7z010clg400-1\n\n[hls]\nflow_target=vivado\npackage.output.format=ip_catalog\npackage.output.syn=false\ntb.file=testbench.cpp\nsyn.file=gameoflife.cpp\nsyn.file=gameoflife.h\nsyn.top=game_of_life_step"
}
],
"cwd": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Status",
"dateTimestamp": "Tue Oct 20 17:50:47 2026",
"timestampMillis": "1792515047583",
"status": {
"cmdId": "26212046-3e3b-461a-b5bb-933a3659c9f1",
"state": "CS_RUNNING"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_FlowMetaData",
"dateTimestamp": "Tue Oct 20 17:50:57 2026",
"timestampMillis": "1792515057957",
"buildSummary": {
"hardwarePlatform": "",
"hardwareDsa": "",
"platformDirectory": "",
"runtime": "",
"systemConfig": "",
"flow": "BF_COMPILE",
"target": "TT_HW",
"kernels": [
{
"base": {
"type": "KERNEL",
"name": "game_of_life_step",
"file": "",
"reports": [],
"uuid": ""
},
"sources": [
"/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/gameoflife.cpp",
"/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/gameoflife.h"
],
"psSources": [],
"cuNames": [],
"type": "HLS",
"frequency": 0,
"freqUnits": ""
}
],
"toolVersion": "2025.1"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_SubCmdStep",
"dateTimestamp": "Tue Oct 20 17:50:57 2026",
"timestampMillis": "1792515057958",
"buildStep": {
"cmdId": "af5e477a-dfc6-4635-ba72-f96514ab12ad",
"name": "",
"logFile": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/hls/hls.log",
"commandLine": "",
"args": [],
"iniFiles": [],
"cwd": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Status",
"dateTimestamp": "Tue Oct 20 17:50:57 2026",
"timestampMillis": "1792515057958",
"status": {
"cmdId": "af5e477a-dfc6-4635-ba72-f96514ab12ad",
"state": "CS_RUNNING"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Report",
"dateTimestamp": "Tue Oct 20 17:50:57 2026",
"timestampMillis": "1792515057958",
"report": {
"path": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/hls/hls_data.json",
"name": "",
"fileType": "JSON",
"reportType": "HLS_SYNTHESIS",
"cmdId": ""
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Report",
"dateTimestamp": "Tue Oct 20 17:50:57 2026",
"timestampMillis": "1792515057958",
"report": {
"path": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/hls/syn/report/csynth.rpt",
"name": "",
"fileType": "TEXT",
"reportType": "HLS_SYNTHESIS",
"cmdId": ""
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Report",
"dateTimestamp": "Tue Oct 20 17:50:57 2026",
"timestampMillis": "1792515057958",
"report": {
"path": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/hls/syn/report/csynth.xml",
"name": "",
"fileType": "XML",
"reportType": "HLS_SYNTHESIS",
"cmdId": ""
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Report",
"dateTimestamp": "Tue Oct 20 17:51:22 2026",
"timestampMillis": "1792515082964",
"report": {
"path": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/hls",
"name": "",
"fileType": "DIR",
"reportType": "HLS_DATAFLOW",
"cmdId": ""
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Report",
"dateTimestamp": "Tue Oct 20 17:51:22 2026",
"timestampMillis": "1792515082965",
"report": {
"path": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/hls",
"name": "",
"fileType": "DIR",
"reportType": "HLS_FUNCTION_CALL_GRAPH",
"cmdId": ""
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Report",
"dateTimestamp": "Tue Oct 20 17:51:22 2026",
"timestampMillis": "1792515082965",
"report": {
"path": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/hls",
"name": "",
"fileType": "DIR",
"reportType": "HLS_SCHEDULE",
"cmdId": ""
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Status",
"dateTimestamp": "Tue Oct 20 17:51:22 2026",
"timestampMillis": "1792515082965",
"status": {
"cmdId": "af5e477a-dfc6-4635-ba72-f96514ab12ad",
"state": "CS_PASSED"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Status",
"dateTimestamp": "Tue Oct 20 17:51:23 2026",
"timestampMillis": "1792515083151",
"status": {
"cmdId": "26212046-3e3b-461a-b5bb-933a3659c9f1",
"state": "CS_PASSED"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Report",
"dateTimestamp": "Tue Oct 20 17:51:23 2026",
"timestampMillis": "1792515083335",
"report": {
"path": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/reports/v++_compile_game_of_life_practical3b_guidance.html",
"name": "",
"fileType": "HTML",
"reportType": "GLOBAL_RULECHECK_GUIDANCE",
"cmdId": ""
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Report",
"dateTimestamp": "Tue Oct 20 17:51:23 2026",
"timestampMillis": "1792515083336",
"report": {
"path": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/reports/.db/v++_compile_game_of_life_practical3b_guidance.pb3",
"name": "",
"fileType": "BINARY_PROTOBUF",
"reportType": "GLOBAL_RULECHECK_GUIDANCE",
"cmdId": ""
}
}
</ENTRY>

View File

@@ -0,0 +1,157 @@
<ENTRY>
{
"thisFile": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/game_of_life_practical3b.hlsrun_csim_summary",
"connectId": "",
"serverToken": "",
"timestamp": "0"
}
</ENTRY>
<ENTRY>
{
"type": "ET_CmdStep",
"dateTimestamp": "Tue Oct 20 17:49:54 2026",
"timestampMillis": "1792514994026",
"buildStep": {
"cmdId": "611563b7-dc4a-4ed6-b71c-5c087f2ef0ef",
"name": "vitis-run",
"logFile": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/logs/game_of_life_practical3b.steps.log",
"commandLine": "/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/bin/unwrapped/lnx64.o/vitis-run --mode hls --csim --config /home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/hls_config.cfg --work_dir game_of_life_practical3b ",
"args": [
"--mode",
"hls",
"--csim",
"--config",
"/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/hls_config.cfg",
"--work_dir",
"game_of_life_practical3b"
],
"iniFiles": [],
"cwd": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Status",
"dateTimestamp": "Tue Oct 20 17:49:54 2026",
"timestampMillis": "1792514994026",
"status": {
"cmdId": "611563b7-dc4a-4ed6-b71c-5c087f2ef0ef",
"state": "CS_RUNNING"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_FlowMetaData",
"dateTimestamp": "Tue Oct 20 17:50:08 2026",
"timestampMillis": "1792515008064",
"buildSummary": {
"hardwarePlatform": "",
"hardwareDsa": "",
"platformDirectory": "",
"runtime": "",
"systemConfig": "",
"flow": "BF_RUN",
"target": "TT_HLS_C_SIM",
"kernels": [
{
"base": {
"type": "KERNEL",
"name": "game_of_life_step",
"file": "",
"reports": [],
"uuid": ""
},
"sources": [
"/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/gameoflife.cpp",
"/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/gameoflife.h"
],
"psSources": [],
"cuNames": [],
"type": "HLS",
"frequency": 0,
"freqUnits": ""
}
],
"toolVersion": "2025.1"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_SubCmdStep",
"dateTimestamp": "Tue Oct 20 17:50:08 2026",
"timestampMillis": "1792515008064",
"buildStep": {
"cmdId": "52087256-5096-452a-a117-2dd93b94b79f",
"name": "",
"logFile": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/hls/hls.log",
"commandLine": "",
"args": [],
"iniFiles": [],
"cwd": "/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Status",
"dateTimestamp": "Tue Oct 20 17:50:08 2026",
"timestampMillis": "1792515008067",
"status": {
"cmdId": "52087256-5096-452a-a117-2dd93b94b79f",
"state": "CS_RUNNING"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Status",
"dateTimestamp": "Tue Oct 20 17:50:09 2026",
"timestampMillis": "1792515009671",
"status": {
"cmdId": "52087256-5096-452a-a117-2dd93b94b79f",
"state": "CS_PASSED"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Status",
"dateTimestamp": "Tue Oct 20 17:50:09 2026",
"timestampMillis": "1792515009780",
"status": {
"cmdId": "611563b7-dc4a-4ed6-b71c-5c087f2ef0ef",
"state": "CS_PASSED"
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Report",
"dateTimestamp": "Tue Oct 20 17:50:09 2026",
"timestampMillis": "1792515009781",
"report": {
"path": "",
"name": "",
"fileType": "HTML",
"reportType": "GLOBAL_RULECHECK_GUIDANCE",
"cmdId": ""
}
}
</ENTRY>
<ENTRY>
{
"type": "ET_Report",
"dateTimestamp": "Tue Oct 20 17:50:09 2026",
"timestampMillis": "1792515009782",
"report": {
"path": "",
"name": "",
"fileType": "BINARY_PROTOBUF",
"reportType": "GLOBAL_RULECHECK_GUIDANCE",
"cmdId": ""
}
}
</ENTRY>

View File

@@ -0,0 +1,23 @@
[
{
"functionLabel": "",
"functionName": "game_of_life_step",
"id": 0,
"ifcond": "",
"insert_position": "",
"label": "",
"pragma": {
"name": "TOP",
"option": [
{
"name": "name",
"value": "game_of_life_step"
}
]
},
"slx": false,
"sourceFile": "",
"sourceLine": 0,
"success": true
}
]

View File

@@ -0,0 +1,280 @@
; ModuleID = '/home/userfs/b/brs544/vitis_workspace/game_of_life_practical3b/game_of_life_practical3b/hls/.autopilot/db/a.g.ld.5.gdce.bc'
source_filename = "llvm-link"
target datalayout = "e-m:e-i64:64-i128:128-i256:256-i512:512-i1024:1024-i2048:2048-i4096:4096-n8:16:32:64-S128-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
target triple = "fpga64-xilinx-none"
; Function Attrs: inaccessiblemem_or_argmemonly noinline willreturn
define void @apatb_game_of_life_step_ir(i32* noalias nocapture nonnull readonly "fpga.decayed.dim.hint"="4" "partition" %in_words, i32* noalias nocapture nonnull "fpga.decayed.dim.hint"="4" "partition" %out_words) local_unnamed_addr #0 {
entry:
%0 = bitcast i32* %in_words to [4 x i32]*
%in_words_copy_0 = alloca i32, align 512
%in_words_copy_1 = alloca i32, align 512
%in_words_copy_2 = alloca i32, align 512
%in_words_copy_3 = alloca i32, align 512
%1 = bitcast i32* %out_words to [4 x i32]*
%out_words_copy_0 = alloca i32, align 512
%out_words_copy_1 = alloca i32, align 512
%out_words_copy_2 = alloca i32, align 512
%out_words_copy_3 = alloca i32, align 512
call void @copy_in([4 x i32]* nonnull %0, i32* nonnull align 512 %in_words_copy_0, i32* nonnull align 512 %in_words_copy_1, i32* nonnull align 512 %in_words_copy_2, i32* nonnull align 512 %in_words_copy_3, [4 x i32]* nonnull %1, i32* nonnull align 512 %out_words_copy_0, i32* nonnull align 512 %out_words_copy_1, i32* nonnull align 512 %out_words_copy_2, i32* nonnull align 512 %out_words_copy_3)
call void @apatb_game_of_life_step_hw(i32* %in_words_copy_0, i32* %in_words_copy_1, i32* %in_words_copy_2, i32* %in_words_copy_3, i32* %out_words_copy_0, i32* %out_words_copy_1, i32* %out_words_copy_2, i32* %out_words_copy_3)
call void @copy_back([4 x i32]* %0, i32* %in_words_copy_0, i32* %in_words_copy_1, i32* %in_words_copy_2, i32* %in_words_copy_3, [4 x i32]* %1, i32* %out_words_copy_0, i32* %out_words_copy_1, i32* %out_words_copy_2, i32* %out_words_copy_3)
ret void
}
; Function Attrs: argmemonly noinline norecurse willreturn
define void @arraycpy_hls.p0a4i32([4 x i32]* "orig.arg.no"="0" %dst, [4 x i32]* readonly "orig.arg.no"="1" %src, i64 "orig.arg.no"="2" %num) local_unnamed_addr #1 {
entry:
%0 = icmp eq [4 x i32]* %src, null
%1 = icmp eq [4 x i32]* %dst, null
%2 = or i1 %1, %0
br i1 %2, label %ret, label %copy
copy: ; preds = %entry
%for.loop.cond1 = icmp sgt i64 %num, 0
br i1 %for.loop.cond1, label %for.loop.lr.ph, label %copy.split
for.loop.lr.ph: ; preds = %copy
br label %for.loop
for.loop: ; preds = %for.loop, %for.loop.lr.ph
%for.loop.idx2 = phi i64 [ 0, %for.loop.lr.ph ], [ %for.loop.idx.next, %for.loop ]
%dst.addr = getelementptr [4 x i32], [4 x i32]* %dst, i64 0, i64 %for.loop.idx2
%src.addr = getelementptr [4 x i32], [4 x i32]* %src, i64 0, i64 %for.loop.idx2
%3 = load i32, i32* %src.addr, align 4
store i32 %3, i32* %dst.addr, align 4
%for.loop.idx.next = add nuw nsw i64 %for.loop.idx2, 1
%exitcond = icmp ne i64 %for.loop.idx.next, %num
br i1 %exitcond, label %for.loop, label %copy.split
copy.split: ; preds = %for.loop, %copy
br label %ret
ret: ; preds = %copy.split, %entry
ret void
}
; Function Attrs: argmemonly noinline norecurse willreturn
define void @arraycpy_hls.p0a4i32.4.5(i32* "orig.arg.no"="0" "unpacked"="0.0" %dst_0, i32* "orig.arg.no"="0" "unpacked"="0.1" %dst_1, i32* "orig.arg.no"="0" "unpacked"="0.2" %dst_2, i32* "orig.arg.no"="0" "unpacked"="0.3" %dst_3, [4 x i32]* readonly "orig.arg.no"="1" %src, i64 "orig.arg.no"="2" %num) #1 {
entry:
%0 = icmp eq [4 x i32]* %src, null
%1 = icmp eq i32* %dst_0, null
%2 = or i1 %1, %0
br i1 %2, label %ret, label %copy
copy: ; preds = %entry
%for.loop.cond1 = icmp sgt i64 %num, 0
br i1 %for.loop.cond1, label %for.loop.lr.ph, label %copy.split
for.loop.lr.ph: ; preds = %copy
br label %for.loop
for.loop: ; preds = %dst.addr.exit, %for.loop.lr.ph
%for.loop.idx2 = phi i64 [ 0, %for.loop.lr.ph ], [ %for.loop.idx.next, %dst.addr.exit ]
%src.addr = getelementptr [4 x i32], [4 x i32]* %src, i64 0, i64 %for.loop.idx2
%3 = load i32, i32* %src.addr, align 4
switch i64 %for.loop.idx2, label %dst.addr.exit [
i64 0, label %dst.addr.case.0
i64 1, label %dst.addr.case.1
i64 2, label %dst.addr.case.2
i64 3, label %dst.addr.case.3
]
dst.addr.case.0: ; preds = %for.loop
store i32 %3, i32* %dst_0, align 4
br label %dst.addr.exit
dst.addr.case.1: ; preds = %for.loop
store i32 %3, i32* %dst_1, align 4
br label %dst.addr.exit
dst.addr.case.2: ; preds = %for.loop
store i32 %3, i32* %dst_2, align 4
br label %dst.addr.exit
dst.addr.case.3: ; preds = %for.loop
store i32 %3, i32* %dst_3, align 4
br label %dst.addr.exit
dst.addr.exit: ; preds = %dst.addr.case.3, %dst.addr.case.2, %dst.addr.case.1, %dst.addr.case.0, %for.loop
%for.loop.idx.next = add nuw nsw i64 %for.loop.idx2, 1
%exitcond = icmp ne i64 %for.loop.idx.next, %num
br i1 %exitcond, label %for.loop, label %copy.split
copy.split: ; preds = %dst.addr.exit, %copy
br label %ret
ret: ; preds = %copy.split, %entry
ret void
}
; Function Attrs: argmemonly noinline norecurse willreturn
define internal void @onebyonecpy_hls.p0a4i32.3.6(i32* noalias align 512 "orig.arg.no"="0" "unpacked"="0.0" %dst_0, i32* noalias align 512 "orig.arg.no"="0" "unpacked"="0.1" %dst_1, i32* noalias align 512 "orig.arg.no"="0" "unpacked"="0.2" %dst_2, i32* noalias align 512 "orig.arg.no"="0" "unpacked"="0.3" %dst_3, [4 x i32]* noalias readonly "orig.arg.no"="1" %src) #2 {
entry:
%0 = icmp eq i32* %dst_0, null
%1 = icmp eq [4 x i32]* %src, null
%2 = or i1 %0, %1
br i1 %2, label %ret, label %copy
copy: ; preds = %entry
call void @arraycpy_hls.p0a4i32.4.5(i32* nonnull %dst_0, i32* %dst_1, i32* %dst_2, i32* %dst_3, [4 x i32]* nonnull %src, i64 4)
br label %ret
ret: ; preds = %copy, %entry
ret void
}
; Function Attrs: argmemonly noinline norecurse willreturn
define internal void @copy_in([4 x i32]* noalias readonly "orig.arg.no"="0", i32* noalias align 512 "orig.arg.no"="1" "unpacked"="1.0" %_0, i32* noalias align 512 "orig.arg.no"="1" "unpacked"="1.1" %_1, i32* noalias align 512 "orig.arg.no"="1" "unpacked"="1.2" %_2, i32* noalias align 512 "orig.arg.no"="1" "unpacked"="1.3" %_3, [4 x i32]* noalias readonly "orig.arg.no"="2", i32* noalias align 512 "orig.arg.no"="3" "unpacked"="3.0" %_01, i32* noalias align 512 "orig.arg.no"="3" "unpacked"="3.1" %_12, i32* noalias align 512 "orig.arg.no"="3" "unpacked"="3.2" %_23, i32* noalias align 512 "orig.arg.no"="3" "unpacked"="3.3" %_34) #3 {
entry:
call void @onebyonecpy_hls.p0a4i32.3.6(i32* align 512 %_0, i32* align 512 %_1, i32* align 512 %_2, i32* align 512 %_3, [4 x i32]* %0)
call void @onebyonecpy_hls.p0a4i32.3.6(i32* align 512 %_01, i32* align 512 %_12, i32* align 512 %_23, i32* align 512 %_34, [4 x i32]* %1)
ret void
}
; Function Attrs: argmemonly noinline norecurse willreturn
define void @arraycpy_hls.p0a4i32.12.13([4 x i32]* "orig.arg.no"="0" %dst, i32* readonly "orig.arg.no"="1" "unpacked"="1.0" %src_0, i32* readonly "orig.arg.no"="1" "unpacked"="1.1" %src_1, i32* readonly "orig.arg.no"="1" "unpacked"="1.2" %src_2, i32* readonly "orig.arg.no"="1" "unpacked"="1.3" %src_3, i64 "orig.arg.no"="2" %num) #1 {
entry:
%0 = icmp eq i32* %src_0, null
%1 = icmp eq [4 x i32]* %dst, null
%2 = or i1 %1, %0
br i1 %2, label %ret, label %copy
copy: ; preds = %entry
%for.loop.cond1 = icmp sgt i64 %num, 0
br i1 %for.loop.cond1, label %for.loop.lr.ph, label %copy.split
for.loop.lr.ph: ; preds = %copy
br label %for.loop
for.loop: ; preds = %src.addr.exit, %for.loop.lr.ph
%for.loop.idx2 = phi i64 [ 0, %for.loop.lr.ph ], [ %for.loop.idx.next, %src.addr.exit ]
%dst.addr = getelementptr [4 x i32], [4 x i32]* %dst, i64 0, i64 %for.loop.idx2
switch i64 %for.loop.idx2, label %src.addr.exit [
i64 0, label %src.addr.case.0
i64 1, label %src.addr.case.1
i64 2, label %src.addr.case.2
i64 3, label %src.addr.case.3
]
src.addr.case.0: ; preds = %for.loop
%_0 = load i32, i32* %src_0, align 4
br label %src.addr.exit
src.addr.case.1: ; preds = %for.loop
%_1 = load i32, i32* %src_1, align 4
br label %src.addr.exit
src.addr.case.2: ; preds = %for.loop
%_2 = load i32, i32* %src_2, align 4
br label %src.addr.exit
src.addr.case.3: ; preds = %for.loop
%_3 = load i32, i32* %src_3, align 4
br label %src.addr.exit
src.addr.exit: ; preds = %src.addr.case.3, %src.addr.case.2, %src.addr.case.1, %src.addr.case.0, %for.loop
%3 = phi i32 [ %_0, %src.addr.case.0 ], [ %_1, %src.addr.case.1 ], [ %_2, %src.addr.case.2 ], [ %_3, %src.addr.case.3 ], [ undef, %for.loop ]
store i32 %3, i32* %dst.addr, align 4
%for.loop.idx.next = add nuw nsw i64 %for.loop.idx2, 1
%exitcond = icmp ne i64 %for.loop.idx.next, %num
br i1 %exitcond, label %for.loop, label %copy.split
copy.split: ; preds = %src.addr.exit, %copy
br label %ret
ret: ; preds = %copy.split, %entry
ret void
}
; Function Attrs: argmemonly noinline norecurse willreturn
define internal void @onebyonecpy_hls.p0a4i32.11.14([4 x i32]* noalias "orig.arg.no"="0" %dst, i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.0" %src_0, i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.1" %src_1, i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.2" %src_2, i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.3" %src_3) #2 {
entry:
%0 = icmp eq [4 x i32]* %dst, null
%1 = icmp eq i32* %src_0, null
%2 = or i1 %0, %1
br i1 %2, label %ret, label %copy
copy: ; preds = %entry
call void @arraycpy_hls.p0a4i32.12.13([4 x i32]* nonnull %dst, i32* nonnull %src_0, i32* %src_1, i32* %src_2, i32* %src_3, i64 4)
br label %ret
ret: ; preds = %copy, %entry
ret void
}
; Function Attrs: argmemonly noinline norecurse willreturn
define internal void @copy_out([4 x i32]* noalias "orig.arg.no"="0", i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.0" %_0, i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.1" %_1, i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.2" %_2, i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.3" %_3, [4 x i32]* noalias "orig.arg.no"="2", i32* noalias readonly align 512 "orig.arg.no"="3" "unpacked"="3.0" %_01, i32* noalias readonly align 512 "orig.arg.no"="3" "unpacked"="3.1" %_12, i32* noalias readonly align 512 "orig.arg.no"="3" "unpacked"="3.2" %_23, i32* noalias readonly align 512 "orig.arg.no"="3" "unpacked"="3.3" %_34) #4 {
entry:
call void @onebyonecpy_hls.p0a4i32.11.14([4 x i32]* %0, i32* align 512 %_0, i32* align 512 %_1, i32* align 512 %_2, i32* align 512 %_3)
call void @onebyonecpy_hls.p0a4i32.11.14([4 x i32]* %1, i32* align 512 %_01, i32* align 512 %_12, i32* align 512 %_23, i32* align 512 %_34)
ret void
}
declare i8* @malloc(i64)
declare void @free(i8*)
declare void @apatb_game_of_life_step_hw(i32*, i32*, i32*, i32*, i32*, i32*, i32*, i32*)
; Function Attrs: argmemonly noinline norecurse willreturn
define internal void @copy_back([4 x i32]* noalias "orig.arg.no"="0", i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.0" %_0, i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.1" %_1, i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.2" %_2, i32* noalias readonly align 512 "orig.arg.no"="1" "unpacked"="1.3" %_3, [4 x i32]* noalias "orig.arg.no"="2", i32* noalias readonly align 512 "orig.arg.no"="3" "unpacked"="3.0" %_01, i32* noalias readonly align 512 "orig.arg.no"="3" "unpacked"="3.1" %_12, i32* noalias readonly align 512 "orig.arg.no"="3" "unpacked"="3.2" %_23, i32* noalias readonly align 512 "orig.arg.no"="3" "unpacked"="3.3" %_34) #4 {
entry:
call void @onebyonecpy_hls.p0a4i32.11.14([4 x i32]* %1, i32* align 512 %_01, i32* align 512 %_12, i32* align 512 %_23, i32* align 512 %_34)
ret void
}
declare void @game_of_life_step_hw_stub(i32* noalias nocapture nonnull readonly, i32* noalias nocapture nonnull)
define void @game_of_life_step_hw_stub_wrapper(i32*, i32*, i32*, i32*, i32*, i32*, i32*, i32*) #5 {
entry:
%8 = call i8* @malloc(i64 16)
%9 = bitcast i8* %8 to [4 x i32]*
%10 = call i8* @malloc(i64 16)
%11 = bitcast i8* %10 to [4 x i32]*
call void @copy_out([4 x i32]* %9, i32* %0, i32* %1, i32* %2, i32* %3, [4 x i32]* %11, i32* %4, i32* %5, i32* %6, i32* %7)
%12 = bitcast [4 x i32]* %9 to i32*
%13 = bitcast [4 x i32]* %11 to i32*
call void @game_of_life_step_hw_stub(i32* %12, i32* %13)
call void @copy_in([4 x i32]* %9, i32* %0, i32* %1, i32* %2, i32* %3, [4 x i32]* %11, i32* %4, i32* %5, i32* %6, i32* %7)
call void @free(i8* %8)
call void @free(i8* %10)
ret void
}
attributes #0 = { inaccessiblemem_or_argmemonly noinline willreturn "fpga.wrapper.func"="wrapper" }
attributes #1 = { argmemonly noinline norecurse willreturn "fpga.wrapper.func"="arraycpy_hls" }
attributes #2 = { argmemonly noinline norecurse willreturn "fpga.wrapper.func"="onebyonecpy_hls" }
attributes #3 = { argmemonly noinline norecurse willreturn "fpga.wrapper.func"="copyin" }
attributes #4 = { argmemonly noinline norecurse willreturn "fpga.wrapper.func"="copyout" }
attributes #5 = { "fpga.wrapper.func"="stub" }
!llvm.dbg.cu = !{}
!llvm.ident = !{!0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0}
!llvm.module.flags = !{!1, !2, !3}
!blackbox_cfg = !{!4}
!datalayout.transforms.on.top = !{!5, !15}
!0 = !{!"clang version 7.0.0 "}
!1 = !{i32 2, !"Dwarf Version", i32 4}
!2 = !{i32 2, !"Debug Info Version", i32 3}
!3 = !{i32 1, !"wchar_size", i32 4}
!4 = !{}
!5 = !{!6, !8, !10}
!6 = !{!7}
!7 = !{!"0", [4 x i32]* null}
!8 = !{!9}
!9 = !{!"array_partition", !"type=Complete", !"dim=1"}
!10 = !{!11, !12, !13, !14}
!11 = !{!"0.0", i32* null}
!12 = !{!"0.1", i32* null}
!13 = !{!"0.2", i32* null}
!14 = !{!"0.3", i32* null}
!15 = !{!16, !8, !18}
!16 = !{!17}
!17 = !{!"1", [4 x i32]* null}
!18 = !{!19, !20, !21, !22}
!19 = !{!"1.0", i32* null}
!20 = !{!"1.1", i32* null}
!21 = !{!"1.2", i32* null}
!22 = !{!"1.3", i32* null}

View File

@@ -0,0 +1,7 @@
set SynModuleInfo {
{SRCNAME game_of_life_step MODELNAME game_of_life_step RTLNAME game_of_life_step IS_TOP 1
SUBMODULES {
{MODELNAME game_of_life_step_AXILiteS_s_axi RTLNAME game_of_life_step_AXILiteS_s_axi BINDTYPE interface TYPE interface_s_axilite}
}
}
}

View File

@@ -0,0 +1,2 @@
game_of_life_step_AXILiteS_s_axi
game_of_life_step

View File

@@ -0,0 +1,22 @@
{
"0": {
"basicblocks": 56,
"calls": "",
"control_depth": 3,
"def_use_depth": 5,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 203,
"loads": {
"L": 3,
"T": 1
},
"memory_accesses": 12,
"name": "game_of_life_step",
"stores": {
"L": 3,
"T": 1
},
"total_instructions": 376
}
}

View File

@@ -0,0 +1,22 @@
{
"0": {
"basicblocks": 4426,
"calls": "",
"control_depth": 0,
"def_use_depth": 3,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 12626,
"loads": {
"L": 1204,
"T": 100
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"L": 304,
"T": 4
},
"total_instructions": 12626
}
}

View File

@@ -0,0 +1,22 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 37,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 3588,
"loads": {
"L": 145,
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"L": 200,
"T": 4
},
"total_instructions": 3588
}
}

View File

@@ -0,0 +1,22 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 3492,
"loads": {
"L": 142,
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"L": 200,
"T": 4
},
"total_instructions": 3492
}
}

View File

@@ -0,0 +1,22 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 3492,
"loads": {
"L": 142,
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"L": 200,
"T": 4
},
"total_instructions": 3492
}
}

View File

@@ -0,0 +1,22 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 3482,
"loads": {
"L": 141,
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"L": 200,
"T": 4
},
"total_instructions": 3482
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2921,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2921
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2921,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2921
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2921,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2921
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2921,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2921
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2921,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2921
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2921,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2921
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2921,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2921
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2921,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2921
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2921,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2921
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2937,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2937
}
}

View File

@@ -0,0 +1,20 @@
{
"0": {
"basicblocks": 1,
"calls": "",
"control_depth": 0,
"def_use_depth": 16,
"file": "gameoflife.cpp",
"fileloc": 5,
"instructions": 2938,
"loads": {
"T": 4
},
"memory_accesses": 0,
"name": "game_of_life_step",
"stores": {
"T": 4
},
"total_instructions": 2938
}
}

View File

@@ -0,0 +1,14 @@
{
"0": {
"name": "game_of_life_step",
"file": "gameoflife.cpp",
"fileloc": "5",
"instructions": "1714",
"total_instructions": "1714",
"calls": "",
"basicblocks": "1",
"memory_accesses": "0",
"control_depth": "0",
"def_use_depth": "10"
}
}

View File

@@ -0,0 +1,77 @@
// 0x00 : Control signals
// bit 0 - ap_start (Read/Write/COH)
// bit 1 - ap_done (Read/COR)
// bit 2 - ap_idle (Read)
// bit 3 - ap_ready (Read/COR)
// bit 7 - auto_restart (Read/Write)
// bit 9 - interrupt (Read)
// others - reserved
// 0x04 : Global Interrupt Enable Register
// bit 0 - Global Interrupt Enable (Read/Write)
// others - reserved
// 0x08 : IP Interrupt Enable Register (Read/Write)
// bit 0 - enable ap_done interrupt (Read/Write)
// bit 1 - enable ap_ready interrupt (Read/Write)
// others - reserved
// 0x0c : IP Interrupt Status Register (Read/TOW)
// bit 0 - ap_done (Read/TOW)
// bit 1 - ap_ready (Read/TOW)
// others - reserved
// 0x10 : Data signal of in_words_0
// bit 31~0 - in_words_0[31:0] (Read/Write)
// 0x14 : reserved
// 0x18 : Data signal of in_words_1
// bit 31~0 - in_words_1[31:0] (Read/Write)
// 0x1c : reserved
// 0x20 : Data signal of in_words_2
// bit 31~0 - in_words_2[31:0] (Read/Write)
// 0x24 : reserved
// 0x28 : Data signal of in_words_3
// bit 31~0 - in_words_3[31:0] (Read/Write)
// 0x2c : reserved
// 0x30 : Data signal of out_words_0
// bit 31~0 - out_words_0[31:0] (Read)
// 0x34 : Control signal of out_words_0
// bit 0 - out_words_0_ap_vld (Read/COR)
// others - reserved
// 0x40 : Data signal of out_words_1
// bit 31~0 - out_words_1[31:0] (Read)
// 0x44 : Control signal of out_words_1
// bit 0 - out_words_1_ap_vld (Read/COR)
// others - reserved
// 0x50 : Data signal of out_words_2
// bit 31~0 - out_words_2[31:0] (Read)
// 0x54 : Control signal of out_words_2
// bit 0 - out_words_2_ap_vld (Read/COR)
// others - reserved
// 0x60 : Data signal of out_words_3
// bit 31~0 - out_words_3[31:0] (Read)
// 0x64 : Control signal of out_words_3
// bit 0 - out_words_3_ap_vld (Read/COR)
// others - reserved
// (SC = Self Clear, COR = Clear on Read, TOW = Toggle on Write, COH = Clear on Handshake)
#define AXILITES_ADDR_AP_CTRL 0x00
#define AXILITES_ADDR_GIE 0x04
#define AXILITES_ADDR_IER 0x08
#define AXILITES_ADDR_ISR 0x0c
#define AXILITES_ADDR_IN_WORDS_0_DATA 0x10
#define AXILITES_BITS_IN_WORDS_0_DATA 32
#define AXILITES_ADDR_IN_WORDS_1_DATA 0x18
#define AXILITES_BITS_IN_WORDS_1_DATA 32
#define AXILITES_ADDR_IN_WORDS_2_DATA 0x20
#define AXILITES_BITS_IN_WORDS_2_DATA 32
#define AXILITES_ADDR_IN_WORDS_3_DATA 0x28
#define AXILITES_BITS_IN_WORDS_3_DATA 32
#define AXILITES_ADDR_OUT_WORDS_0_DATA 0x30
#define AXILITES_BITS_OUT_WORDS_0_DATA 32
#define AXILITES_ADDR_OUT_WORDS_0_CTRL 0x34
#define AXILITES_ADDR_OUT_WORDS_1_DATA 0x40
#define AXILITES_BITS_OUT_WORDS_1_DATA 32
#define AXILITES_ADDR_OUT_WORDS_1_CTRL 0x44
#define AXILITES_ADDR_OUT_WORDS_2_DATA 0x50
#define AXILITES_BITS_OUT_WORDS_2_DATA 32
#define AXILITES_ADDR_OUT_WORDS_2_CTRL 0x54
#define AXILITES_ADDR_OUT_WORDS_3_DATA 0x60
#define AXILITES_BITS_OUT_WORDS_3_DATA 32
#define AXILITES_ADDR_OUT_WORDS_3_CTRL 0x64

View File

@@ -0,0 +1,4 @@
dict set slaves AXILiteS {ports {in_words_0 {type i_ap_none width 32} in_words_1 {type i_ap_none width 32} in_words_2 {type i_ap_none width 32} in_words_3 {type i_ap_none width 32} out_words_0 {type o_ap_vld width 32} out_words_1 {type o_ap_vld width 32} out_words_2 {type o_ap_vld width 32} out_words_3 {type o_ap_vld width 32} ap_start {type ap_ctrl width 1} ap_done {type ap_ctrl width 1} ap_ready {type ap_ctrl width 1} ap_idle {type ap_ctrl width 1}} mems {} has_ctrl 1}
set datawidth 32
set addrwidth 64
set intr_clr_mode TOW

View File

@@ -0,0 +1,612 @@
// ==============================================================
// Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
// Tool Version Limit: 2025.05
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
// Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
//
// ==============================================================
`timescale 1ns/1ps
module game_of_life_step_AXILiteS_s_axi
#(parameter
C_S_AXI_ADDR_WIDTH = 7,
C_S_AXI_DATA_WIDTH = 32
)(
input wire ACLK,
input wire ARESET,
input wire ACLK_EN,
input wire [C_S_AXI_ADDR_WIDTH-1:0] AWADDR,
input wire AWVALID,
output wire AWREADY,
input wire [C_S_AXI_DATA_WIDTH-1:0] WDATA,
input wire [C_S_AXI_DATA_WIDTH/8-1:0] WSTRB,
input wire WVALID,
output wire WREADY,
output wire [1:0] BRESP,
output wire BVALID,
input wire BREADY,
input wire [C_S_AXI_ADDR_WIDTH-1:0] ARADDR,
input wire ARVALID,
output wire ARREADY,
output wire [C_S_AXI_DATA_WIDTH-1:0] RDATA,
output wire [1:0] RRESP,
output wire RVALID,
input wire RREADY,
output wire interrupt,
output wire [31:0] in_words_0,
output wire [31:0] in_words_1,
output wire [31:0] in_words_2,
output wire [31:0] in_words_3,
input wire [31:0] out_words_0,
input wire out_words_0_ap_vld,
input wire [31:0] out_words_1,
input wire out_words_1_ap_vld,
input wire [31:0] out_words_2,
input wire out_words_2_ap_vld,
input wire [31:0] out_words_3,
input wire out_words_3_ap_vld,
output wire ap_start,
input wire ap_done,
input wire ap_ready,
input wire ap_idle
);
//------------------------Address Info-------------------
// Protocol Used: ap_ctrl_hs
//
// 0x00 : Control signals
// bit 0 - ap_start (Read/Write/COH)
// bit 1 - ap_done (Read/COR)
// bit 2 - ap_idle (Read)
// bit 3 - ap_ready (Read/COR)
// bit 7 - auto_restart (Read/Write)
// bit 9 - interrupt (Read)
// others - reserved
// 0x04 : Global Interrupt Enable Register
// bit 0 - Global Interrupt Enable (Read/Write)
// others - reserved
// 0x08 : IP Interrupt Enable Register (Read/Write)
// bit 0 - enable ap_done interrupt (Read/Write)
// bit 1 - enable ap_ready interrupt (Read/Write)
// others - reserved
// 0x0c : IP Interrupt Status Register (Read/TOW)
// bit 0 - ap_done (Read/TOW)
// bit 1 - ap_ready (Read/TOW)
// others - reserved
// 0x10 : Data signal of in_words_0
// bit 31~0 - in_words_0[31:0] (Read/Write)
// 0x14 : reserved
// 0x18 : Data signal of in_words_1
// bit 31~0 - in_words_1[31:0] (Read/Write)
// 0x1c : reserved
// 0x20 : Data signal of in_words_2
// bit 31~0 - in_words_2[31:0] (Read/Write)
// 0x24 : reserved
// 0x28 : Data signal of in_words_3
// bit 31~0 - in_words_3[31:0] (Read/Write)
// 0x2c : reserved
// 0x30 : Data signal of out_words_0
// bit 31~0 - out_words_0[31:0] (Read)
// 0x34 : Control signal of out_words_0
// bit 0 - out_words_0_ap_vld (Read/COR)
// others - reserved
// 0x40 : Data signal of out_words_1
// bit 31~0 - out_words_1[31:0] (Read)
// 0x44 : Control signal of out_words_1
// bit 0 - out_words_1_ap_vld (Read/COR)
// others - reserved
// 0x50 : Data signal of out_words_2
// bit 31~0 - out_words_2[31:0] (Read)
// 0x54 : Control signal of out_words_2
// bit 0 - out_words_2_ap_vld (Read/COR)
// others - reserved
// 0x60 : Data signal of out_words_3
// bit 31~0 - out_words_3[31:0] (Read)
// 0x64 : Control signal of out_words_3
// bit 0 - out_words_3_ap_vld (Read/COR)
// others - reserved
// (SC = Self Clear, COR = Clear on Read, TOW = Toggle on Write, COH = Clear on Handshake)
//------------------------Parameter----------------------
localparam
ADDR_AP_CTRL = 7'h00,
ADDR_GIE = 7'h04,
ADDR_IER = 7'h08,
ADDR_ISR = 7'h0c,
ADDR_IN_WORDS_0_DATA_0 = 7'h10,
ADDR_IN_WORDS_0_CTRL = 7'h14,
ADDR_IN_WORDS_1_DATA_0 = 7'h18,
ADDR_IN_WORDS_1_CTRL = 7'h1c,
ADDR_IN_WORDS_2_DATA_0 = 7'h20,
ADDR_IN_WORDS_2_CTRL = 7'h24,
ADDR_IN_WORDS_3_DATA_0 = 7'h28,
ADDR_IN_WORDS_3_CTRL = 7'h2c,
ADDR_OUT_WORDS_0_DATA_0 = 7'h30,
ADDR_OUT_WORDS_0_CTRL = 7'h34,
ADDR_OUT_WORDS_1_DATA_0 = 7'h40,
ADDR_OUT_WORDS_1_CTRL = 7'h44,
ADDR_OUT_WORDS_2_DATA_0 = 7'h50,
ADDR_OUT_WORDS_2_CTRL = 7'h54,
ADDR_OUT_WORDS_3_DATA_0 = 7'h60,
ADDR_OUT_WORDS_3_CTRL = 7'h64,
WRIDLE = 2'd0,
WRDATA = 2'd1,
WRRESP = 2'd2,
WRRESET = 2'd3,
RDIDLE = 2'd0,
RDDATA = 2'd1,
RDRESET = 2'd2,
ADDR_BITS = 7;
//------------------------Local signal-------------------
reg [1:0] wstate = WRRESET;
reg [1:0] wnext;
reg [ADDR_BITS-1:0] waddr;
wire [C_S_AXI_DATA_WIDTH-1:0] wmask;
wire aw_hs;
wire w_hs;
reg [1:0] rstate = RDRESET;
reg [1:0] rnext;
reg [C_S_AXI_DATA_WIDTH-1:0] rdata;
wire ar_hs;
wire [ADDR_BITS-1:0] raddr;
// internal registers
reg int_ap_idle = 1'b0;
reg int_ap_ready = 1'b0;
wire task_ap_ready;
reg int_ap_done = 1'b0;
wire task_ap_done;
reg int_task_ap_done = 1'b0;
reg int_ap_start = 1'b0;
reg int_interrupt = 1'b0;
reg int_auto_restart = 1'b0;
reg auto_restart_status = 1'b0;
wire auto_restart_done;
reg int_gie = 1'b0;
reg [1:0] int_ier = 2'b0;
reg [1:0] int_isr = 2'b0;
reg [31:0] int_in_words_0 = 'b0;
reg [31:0] int_in_words_1 = 'b0;
reg [31:0] int_in_words_2 = 'b0;
reg [31:0] int_in_words_3 = 'b0;
reg int_out_words_0_ap_vld;
reg [31:0] int_out_words_0 = 'b0;
reg int_out_words_1_ap_vld;
reg [31:0] int_out_words_1 = 'b0;
reg int_out_words_2_ap_vld;
reg [31:0] int_out_words_2 = 'b0;
reg int_out_words_3_ap_vld;
reg [31:0] int_out_words_3 = 'b0;
//------------------------Instantiation------------------
//------------------------AXI write fsm------------------
assign AWREADY = (wstate == WRIDLE);
assign WREADY = (wstate == WRDATA);
assign BVALID = (wstate == WRRESP);
assign BRESP = 2'b00; // OKAY
assign wmask = { {8{WSTRB[3]}}, {8{WSTRB[2]}}, {8{WSTRB[1]}}, {8{WSTRB[0]}} };
assign aw_hs = AWVALID & AWREADY;
assign w_hs = WVALID & WREADY;
// wstate
always @(posedge ACLK) begin
if (ARESET)
wstate <= WRRESET;
else if (ACLK_EN)
wstate <= wnext;
end
// wnext
always @(*) begin
case (wstate)
WRIDLE:
if (AWVALID)
wnext = WRDATA;
else
wnext = WRIDLE;
WRDATA:
if (WVALID)
wnext = WRRESP;
else
wnext = WRDATA;
WRRESP:
if (BREADY & BVALID)
wnext = WRIDLE;
else
wnext = WRRESP;
default:
wnext = WRIDLE;
endcase
end
// waddr
always @(posedge ACLK) begin
if (ACLK_EN) begin
if (aw_hs)
waddr <= {AWADDR[ADDR_BITS-1:2], {2{1'b0}}};
end
end
//------------------------AXI read fsm-------------------
assign ARREADY = (rstate == RDIDLE);
assign RDATA = rdata;
assign RRESP = 2'b00; // OKAY
assign RVALID = (rstate == RDDATA);
assign ar_hs = ARVALID & ARREADY;
assign raddr = ARADDR[ADDR_BITS-1:0];
// rstate
always @(posedge ACLK) begin
if (ARESET)
rstate <= RDRESET;
else if (ACLK_EN)
rstate <= rnext;
end
// rnext
always @(*) begin
case (rstate)
RDIDLE:
if (ARVALID)
rnext = RDDATA;
else
rnext = RDIDLE;
RDDATA:
if (RREADY & RVALID)
rnext = RDIDLE;
else
rnext = RDDATA;
default:
rnext = RDIDLE;
endcase
end
// rdata
always @(posedge ACLK) begin
if (ACLK_EN) begin
if (ar_hs) begin
rdata <= 'b0;
case (raddr)
ADDR_AP_CTRL: begin
rdata[0] <= int_ap_start;
rdata[1] <= int_task_ap_done;
rdata[2] <= int_ap_idle;
rdata[3] <= int_ap_ready;
rdata[7] <= int_auto_restart;
rdata[9] <= int_interrupt;
end
ADDR_GIE: begin
rdata <= int_gie;
end
ADDR_IER: begin
rdata <= int_ier;
end
ADDR_ISR: begin
rdata <= int_isr;
end
ADDR_IN_WORDS_0_DATA_0: begin
rdata <= int_in_words_0[31:0];
end
ADDR_IN_WORDS_1_DATA_0: begin
rdata <= int_in_words_1[31:0];
end
ADDR_IN_WORDS_2_DATA_0: begin
rdata <= int_in_words_2[31:0];
end
ADDR_IN_WORDS_3_DATA_0: begin
rdata <= int_in_words_3[31:0];
end
ADDR_OUT_WORDS_0_DATA_0: begin
rdata <= int_out_words_0[31:0];
end
ADDR_OUT_WORDS_0_CTRL: begin
rdata[0] <= int_out_words_0_ap_vld;
end
ADDR_OUT_WORDS_1_DATA_0: begin
rdata <= int_out_words_1[31:0];
end
ADDR_OUT_WORDS_1_CTRL: begin
rdata[0] <= int_out_words_1_ap_vld;
end
ADDR_OUT_WORDS_2_DATA_0: begin
rdata <= int_out_words_2[31:0];
end
ADDR_OUT_WORDS_2_CTRL: begin
rdata[0] <= int_out_words_2_ap_vld;
end
ADDR_OUT_WORDS_3_DATA_0: begin
rdata <= int_out_words_3[31:0];
end
ADDR_OUT_WORDS_3_CTRL: begin
rdata[0] <= int_out_words_3_ap_vld;
end
endcase
end
end
end
//------------------------Register logic-----------------
assign interrupt = int_interrupt;
assign ap_start = int_ap_start;
assign task_ap_done = (ap_done && !auto_restart_status) || auto_restart_done;
assign task_ap_ready = ap_ready && !int_auto_restart;
assign auto_restart_done = auto_restart_status && (ap_idle && !int_ap_idle);
assign in_words_0 = int_in_words_0;
assign in_words_1 = int_in_words_1;
assign in_words_2 = int_in_words_2;
assign in_words_3 = int_in_words_3;
// int_interrupt
always @(posedge ACLK) begin
if (ARESET)
int_interrupt <= 1'b0;
else if (ACLK_EN) begin
if (int_gie && (|int_isr))
int_interrupt <= 1'b1;
else
int_interrupt <= 1'b0;
end
end
// int_ap_start
always @(posedge ACLK) begin
if (ARESET)
int_ap_start <= 1'b0;
else if (ACLK_EN) begin
if (w_hs && waddr == ADDR_AP_CTRL && WSTRB[0] && WDATA[0])
int_ap_start <= 1'b1;
else if (ap_ready)
int_ap_start <= int_auto_restart; // clear on handshake/auto restart
end
end
// int_ap_done
always @(posedge ACLK) begin
if (ARESET)
int_ap_done <= 1'b0;
else if (ACLK_EN) begin
int_ap_done <= ap_done;
end
end
// int_task_ap_done
always @(posedge ACLK) begin
if (ARESET)
int_task_ap_done <= 1'b0;
else if (ACLK_EN) begin
if (task_ap_done)
int_task_ap_done <= 1'b1;
else if (ar_hs && raddr == ADDR_AP_CTRL)
int_task_ap_done <= 1'b0; // clear on read
end
end
// int_ap_idle
always @(posedge ACLK) begin
if (ARESET)
int_ap_idle <= 1'b0;
else if (ACLK_EN) begin
int_ap_idle <= ap_idle;
end
end
// int_ap_ready
always @(posedge ACLK) begin
if (ARESET)
int_ap_ready <= 1'b0;
else if (ACLK_EN) begin
if (task_ap_ready)
int_ap_ready <= 1'b1;
else if (ar_hs && raddr == ADDR_AP_CTRL)
int_ap_ready <= 1'b0;
end
end
// int_auto_restart
always @(posedge ACLK) begin
if (ARESET)
int_auto_restart <= 1'b0;
else if (ACLK_EN) begin
if (w_hs && waddr == ADDR_AP_CTRL && WSTRB[0])
int_auto_restart <= WDATA[7];
end
end
// auto_restart_status
always @(posedge ACLK) begin
if (ARESET)
auto_restart_status <= 1'b0;
else if (ACLK_EN) begin
if (int_auto_restart)
auto_restart_status <= 1'b1;
else if (ap_idle)
auto_restart_status <= 1'b0;
end
end
// int_gie
always @(posedge ACLK) begin
if (ARESET)
int_gie <= 1'b0;
else if (ACLK_EN) begin
if (w_hs && waddr == ADDR_GIE && WSTRB[0])
int_gie <= WDATA[0];
end
end
// int_ier
always @(posedge ACLK) begin
if (ARESET)
int_ier <= 1'b0;
else if (ACLK_EN) begin
if (w_hs && waddr == ADDR_IER && WSTRB[0])
int_ier <= WDATA[1:0];
end
end
// int_isr[0]
always @(posedge ACLK) begin
if (ARESET)
int_isr[0] <= 1'b0;
else if (ACLK_EN) begin
if (int_ier[0] & ap_done)
int_isr[0] <= 1'b1;
else if (w_hs && waddr == ADDR_ISR && WSTRB[0])
int_isr[0] <= int_isr[0] ^ WDATA[0]; // toggle on write
end
end
// int_isr[1]
always @(posedge ACLK) begin
if (ARESET)
int_isr[1] <= 1'b0;
else if (ACLK_EN) begin
if (int_ier[1] & ap_ready)
int_isr[1] <= 1'b1;
else if (w_hs && waddr == ADDR_ISR && WSTRB[0])
int_isr[1] <= int_isr[1] ^ WDATA[1]; // toggle on write
end
end
// int_in_words_0[31:0]
always @(posedge ACLK) begin
if (ARESET)
int_in_words_0[31:0] <= 0;
else if (ACLK_EN) begin
if (w_hs && waddr == ADDR_IN_WORDS_0_DATA_0)
int_in_words_0[31:0] <= (WDATA[31:0] & wmask) | (int_in_words_0[31:0] & ~wmask);
end
end
// int_in_words_1[31:0]
always @(posedge ACLK) begin
if (ARESET)
int_in_words_1[31:0] <= 0;
else if (ACLK_EN) begin
if (w_hs && waddr == ADDR_IN_WORDS_1_DATA_0)
int_in_words_1[31:0] <= (WDATA[31:0] & wmask) | (int_in_words_1[31:0] & ~wmask);
end
end
// int_in_words_2[31:0]
always @(posedge ACLK) begin
if (ARESET)
int_in_words_2[31:0] <= 0;
else if (ACLK_EN) begin
if (w_hs && waddr == ADDR_IN_WORDS_2_DATA_0)
int_in_words_2[31:0] <= (WDATA[31:0] & wmask) | (int_in_words_2[31:0] & ~wmask);
end
end
// int_in_words_3[31:0]
always @(posedge ACLK) begin
if (ARESET)
int_in_words_3[31:0] <= 0;
else if (ACLK_EN) begin
if (w_hs && waddr == ADDR_IN_WORDS_3_DATA_0)
int_in_words_3[31:0] <= (WDATA[31:0] & wmask) | (int_in_words_3[31:0] & ~wmask);
end
end
// int_out_words_0
always @(posedge ACLK) begin
if (ARESET)
int_out_words_0 <= 0;
else if (ACLK_EN) begin
if (out_words_0_ap_vld)
int_out_words_0 <= out_words_0;
end
end
// int_out_words_0_ap_vld
always @(posedge ACLK) begin
if (ARESET)
int_out_words_0_ap_vld <= 1'b0;
else if (ACLK_EN) begin
if (out_words_0_ap_vld)
int_out_words_0_ap_vld <= 1'b1;
else if (ar_hs && raddr == ADDR_OUT_WORDS_0_CTRL)
int_out_words_0_ap_vld <= 1'b0; // clear on read
end
end
// int_out_words_1
always @(posedge ACLK) begin
if (ARESET)
int_out_words_1 <= 0;
else if (ACLK_EN) begin
if (out_words_1_ap_vld)
int_out_words_1 <= out_words_1;
end
end
// int_out_words_1_ap_vld
always @(posedge ACLK) begin
if (ARESET)
int_out_words_1_ap_vld <= 1'b0;
else if (ACLK_EN) begin
if (out_words_1_ap_vld)
int_out_words_1_ap_vld <= 1'b1;
else if (ar_hs && raddr == ADDR_OUT_WORDS_1_CTRL)
int_out_words_1_ap_vld <= 1'b0; // clear on read
end
end
// int_out_words_2
always @(posedge ACLK) begin
if (ARESET)
int_out_words_2 <= 0;
else if (ACLK_EN) begin
if (out_words_2_ap_vld)
int_out_words_2 <= out_words_2;
end
end
// int_out_words_2_ap_vld
always @(posedge ACLK) begin
if (ARESET)
int_out_words_2_ap_vld <= 1'b0;
else if (ACLK_EN) begin
if (out_words_2_ap_vld)
int_out_words_2_ap_vld <= 1'b1;
else if (ar_hs && raddr == ADDR_OUT_WORDS_2_CTRL)
int_out_words_2_ap_vld <= 1'b0; // clear on read
end
end
// int_out_words_3
always @(posedge ACLK) begin
if (ARESET)
int_out_words_3 <= 0;
else if (ACLK_EN) begin
if (out_words_3_ap_vld)
int_out_words_3 <= out_words_3;
end
end
// int_out_words_3_ap_vld
always @(posedge ACLK) begin
if (ARESET)
int_out_words_3_ap_vld <= 1'b0;
else if (ACLK_EN) begin
if (out_words_3_ap_vld)
int_out_words_3_ap_vld <= 1'b1;
else if (ar_hs && raddr == ADDR_OUT_WORDS_3_CTRL)
int_out_words_3_ap_vld <= 1'b0; // clear on read
end
end
//synthesis translate_off
always @(posedge ACLK) begin
if (ACLK_EN) begin
if (int_gie & ~int_isr[0] & int_ier[0] & ap_done)
$display ("// Interrupt Monitor : interrupt for ap_done detected @ \"%0t\"", $time);
if (int_gie & ~int_isr[1] & int_ier[1] & ap_ready)
$display ("// Interrupt Monitor : interrupt for ap_ready detected @ \"%0t\"", $time);
end
end
//synthesis translate_on
//------------------------Memory logic-------------------
endmodule

View File

@@ -0,0 +1,688 @@
-- ==============================================================
-- Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
-- Tool Version Limit: 2025.05
-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
-- Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
--
-- ==============================================================
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.all;
entity game_of_life_step_AXILiteS_s_axi is
generic (
C_S_AXI_ADDR_WIDTH : INTEGER := 7;
C_S_AXI_DATA_WIDTH : INTEGER := 32);
port (
ACLK :in STD_LOGIC;
ARESET :in STD_LOGIC;
ACLK_EN :in STD_LOGIC;
AWADDR :in STD_LOGIC_VECTOR(C_S_AXI_ADDR_WIDTH-1 downto 0);
AWVALID :in STD_LOGIC;
AWREADY :out STD_LOGIC;
WDATA :in STD_LOGIC_VECTOR(C_S_AXI_DATA_WIDTH-1 downto 0);
WSTRB :in STD_LOGIC_VECTOR(C_S_AXI_DATA_WIDTH/8-1 downto 0);
WVALID :in STD_LOGIC;
WREADY :out STD_LOGIC;
BRESP :out STD_LOGIC_VECTOR(1 downto 0);
BVALID :out STD_LOGIC;
BREADY :in STD_LOGIC;
ARADDR :in STD_LOGIC_VECTOR(C_S_AXI_ADDR_WIDTH-1 downto 0);
ARVALID :in STD_LOGIC;
ARREADY :out STD_LOGIC;
RDATA :out STD_LOGIC_VECTOR(C_S_AXI_DATA_WIDTH-1 downto 0);
RRESP :out STD_LOGIC_VECTOR(1 downto 0);
RVALID :out STD_LOGIC;
RREADY :in STD_LOGIC;
interrupt :out STD_LOGIC;
in_words_0 :out STD_LOGIC_VECTOR(31 downto 0);
in_words_1 :out STD_LOGIC_VECTOR(31 downto 0);
in_words_2 :out STD_LOGIC_VECTOR(31 downto 0);
in_words_3 :out STD_LOGIC_VECTOR(31 downto 0);
out_words_0 :in STD_LOGIC_VECTOR(31 downto 0);
out_words_0_ap_vld :in STD_LOGIC;
out_words_1 :in STD_LOGIC_VECTOR(31 downto 0);
out_words_1_ap_vld :in STD_LOGIC;
out_words_2 :in STD_LOGIC_VECTOR(31 downto 0);
out_words_2_ap_vld :in STD_LOGIC;
out_words_3 :in STD_LOGIC_VECTOR(31 downto 0);
out_words_3_ap_vld :in STD_LOGIC;
ap_start :out STD_LOGIC;
ap_done :in STD_LOGIC;
ap_ready :in STD_LOGIC;
ap_idle :in STD_LOGIC
);
end entity game_of_life_step_AXILiteS_s_axi;
-- ------------------------Address Info-------------------
-- Protocol Used: ap_ctrl_hs
--
-- 0x00 : Control signals
-- bit 0 - ap_start (Read/Write/COH)
-- bit 1 - ap_done (Read/COR)
-- bit 2 - ap_idle (Read)
-- bit 3 - ap_ready (Read/COR)
-- bit 7 - auto_restart (Read/Write)
-- bit 9 - interrupt (Read)
-- others - reserved
-- 0x04 : Global Interrupt Enable Register
-- bit 0 - Global Interrupt Enable (Read/Write)
-- others - reserved
-- 0x08 : IP Interrupt Enable Register (Read/Write)
-- bit 0 - enable ap_done interrupt (Read/Write)
-- bit 1 - enable ap_ready interrupt (Read/Write)
-- others - reserved
-- 0x0c : IP Interrupt Status Register (Read/TOW)
-- bit 0 - ap_done (Read/TOW)
-- bit 1 - ap_ready (Read/TOW)
-- others - reserved
-- 0x10 : Data signal of in_words_0
-- bit 31~0 - in_words_0[31:0] (Read/Write)
-- 0x14 : reserved
-- 0x18 : Data signal of in_words_1
-- bit 31~0 - in_words_1[31:0] (Read/Write)
-- 0x1c : reserved
-- 0x20 : Data signal of in_words_2
-- bit 31~0 - in_words_2[31:0] (Read/Write)
-- 0x24 : reserved
-- 0x28 : Data signal of in_words_3
-- bit 31~0 - in_words_3[31:0] (Read/Write)
-- 0x2c : reserved
-- 0x30 : Data signal of out_words_0
-- bit 31~0 - out_words_0[31:0] (Read)
-- 0x34 : Control signal of out_words_0
-- bit 0 - out_words_0_ap_vld (Read/COR)
-- others - reserved
-- 0x40 : Data signal of out_words_1
-- bit 31~0 - out_words_1[31:0] (Read)
-- 0x44 : Control signal of out_words_1
-- bit 0 - out_words_1_ap_vld (Read/COR)
-- others - reserved
-- 0x50 : Data signal of out_words_2
-- bit 31~0 - out_words_2[31:0] (Read)
-- 0x54 : Control signal of out_words_2
-- bit 0 - out_words_2_ap_vld (Read/COR)
-- others - reserved
-- 0x60 : Data signal of out_words_3
-- bit 31~0 - out_words_3[31:0] (Read)
-- 0x64 : Control signal of out_words_3
-- bit 0 - out_words_3_ap_vld (Read/COR)
-- others - reserved
-- (SC = Self Clear, COR = Clear on Read, TOW = Toggle on Write, COH = Clear on Handshake)
architecture behave of game_of_life_step_AXILiteS_s_axi is
type states is (wridle, wrdata, wrresp, wrreset, rdidle, rddata, rdreset); -- read and write fsm states
signal wstate : states := wrreset;
signal rstate : states := rdreset;
signal wnext, rnext: states;
constant ADDR_AP_CTRL : INTEGER := 16#00#;
constant ADDR_GIE : INTEGER := 16#04#;
constant ADDR_IER : INTEGER := 16#08#;
constant ADDR_ISR : INTEGER := 16#0c#;
constant ADDR_IN_WORDS_0_DATA_0 : INTEGER := 16#10#;
constant ADDR_IN_WORDS_0_CTRL : INTEGER := 16#14#;
constant ADDR_IN_WORDS_1_DATA_0 : INTEGER := 16#18#;
constant ADDR_IN_WORDS_1_CTRL : INTEGER := 16#1c#;
constant ADDR_IN_WORDS_2_DATA_0 : INTEGER := 16#20#;
constant ADDR_IN_WORDS_2_CTRL : INTEGER := 16#24#;
constant ADDR_IN_WORDS_3_DATA_0 : INTEGER := 16#28#;
constant ADDR_IN_WORDS_3_CTRL : INTEGER := 16#2c#;
constant ADDR_OUT_WORDS_0_DATA_0 : INTEGER := 16#30#;
constant ADDR_OUT_WORDS_0_CTRL : INTEGER := 16#34#;
constant ADDR_OUT_WORDS_1_DATA_0 : INTEGER := 16#40#;
constant ADDR_OUT_WORDS_1_CTRL : INTEGER := 16#44#;
constant ADDR_OUT_WORDS_2_DATA_0 : INTEGER := 16#50#;
constant ADDR_OUT_WORDS_2_CTRL : INTEGER := 16#54#;
constant ADDR_OUT_WORDS_3_DATA_0 : INTEGER := 16#60#;
constant ADDR_OUT_WORDS_3_CTRL : INTEGER := 16#64#;
constant ADDR_BITS : INTEGER := 7;
signal AWREADY_t : STD_LOGIC;
signal WREADY_t : STD_LOGIC;
signal ARREADY_t : STD_LOGIC;
signal RVALID_t : STD_LOGIC;
signal BVALID_t : STD_LOGIC;
signal waddr : UNSIGNED(ADDR_BITS-1 downto 0);
signal wmask : UNSIGNED(C_S_AXI_DATA_WIDTH-1 downto 0);
signal aw_hs : STD_LOGIC;
signal w_hs : STD_LOGIC;
signal rdata_data : UNSIGNED(C_S_AXI_DATA_WIDTH-1 downto 0);
signal ar_hs : STD_LOGIC;
signal raddr : UNSIGNED(ADDR_BITS-1 downto 0);
-- internal registers
signal int_ap_idle : STD_LOGIC := '0';
signal int_ap_ready : STD_LOGIC := '0';
signal task_ap_ready : STD_LOGIC;
signal int_ap_done : STD_LOGIC := '0';
signal task_ap_done : STD_LOGIC;
signal int_task_ap_done : STD_LOGIC := '0';
signal int_ap_start : STD_LOGIC := '0';
signal int_interrupt : STD_LOGIC := '0';
signal int_auto_restart : STD_LOGIC := '0';
signal auto_restart_status : STD_LOGIC := '0';
signal auto_restart_done : STD_LOGIC;
signal int_gie : STD_LOGIC := '0';
signal int_ier : UNSIGNED(1 downto 0) := (others => '0');
signal int_isr : UNSIGNED(1 downto 0) := (others => '0');
signal int_in_words_0 : UNSIGNED(31 downto 0) := (others => '0');
signal int_in_words_1 : UNSIGNED(31 downto 0) := (others => '0');
signal int_in_words_2 : UNSIGNED(31 downto 0) := (others => '0');
signal int_in_words_3 : UNSIGNED(31 downto 0) := (others => '0');
signal int_out_words_0_ap_vld : STD_LOGIC;
signal int_out_words_0 : UNSIGNED(31 downto 0) := (others => '0');
signal int_out_words_1_ap_vld : STD_LOGIC;
signal int_out_words_1 : UNSIGNED(31 downto 0) := (others => '0');
signal int_out_words_2_ap_vld : STD_LOGIC;
signal int_out_words_2 : UNSIGNED(31 downto 0) := (others => '0');
signal int_out_words_3_ap_vld : STD_LOGIC;
signal int_out_words_3 : UNSIGNED(31 downto 0) := (others => '0');
begin
-- ----------------------- Instantiation------------------
-- ----------------------- AXI WRITE ---------------------
AWREADY_t <= '1' when wstate = wridle else '0';
AWREADY <= AWREADY_t;
WREADY_t <= '1' when wstate = wrdata else '0';
WREADY <= WREADY_t;
BVALID_t <= '1' when wstate = wrresp else '0';
BVALID <= BVALID_t;
BRESP <= "00"; -- OKAY
wmask <= (31 downto 24 => WSTRB(3), 23 downto 16 => WSTRB(2), 15 downto 8 => WSTRB(1), 7 downto 0 => WSTRB(0));
aw_hs <= AWVALID and AWREADY_t;
w_hs <= WVALID and WREADY_t;
-- write FSM
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
wstate <= wrreset;
elsif (ACLK_EN = '1') then
wstate <= wnext;
end if;
end if;
end process;
process (wstate, AWVALID, WVALID, BREADY, BVALID_t)
begin
case (wstate) is
when wridle =>
if (AWVALID = '1') then
wnext <= wrdata;
else
wnext <= wridle;
end if;
when wrdata =>
if (WVALID = '1') then
wnext <= wrresp;
else
wnext <= wrdata;
end if;
when wrresp =>
if (BREADY = '1' and BVALID_t = '1') then
wnext <= wridle;
else
wnext <= wrresp;
end if;
when others =>
wnext <= wridle;
end case;
end process;
waddr_proc : process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ACLK_EN = '1') then
if (aw_hs = '1') then
waddr <= UNSIGNED(AWADDR(ADDR_BITS-1 downto 2) & (1 downto 0 => '0'));
end if;
end if;
end if;
end process;
-- ----------------------- AXI READ ----------------------
ARREADY_t <= '1' when (rstate = rdidle) else '0';
ARREADY <= ARREADY_t;
RDATA <= STD_LOGIC_VECTOR(rdata_data);
RRESP <= "00"; -- OKAY
RVALID_t <= '1' when (rstate = rddata) else '0';
RVALID <= RVALID_t;
ar_hs <= ARVALID and ARREADY_t;
raddr <= UNSIGNED(ARADDR(ADDR_BITS-1 downto 0));
-- read FSM
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
rstate <= rdreset;
elsif (ACLK_EN = '1') then
rstate <= rnext;
end if;
end if;
end process;
process (rstate, ARVALID, RREADY, RVALID_t)
begin
case (rstate) is
when rdidle =>
if (ARVALID = '1') then
rnext <= rddata;
else
rnext <= rdidle;
end if;
when rddata =>
if (RREADY = '1' and RVALID_t = '1') then
rnext <= rdidle;
else
rnext <= rddata;
end if;
when others =>
rnext <= rdidle;
end case;
end process;
rdata_proc : process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ACLK_EN = '1') then
if (ar_hs = '1') then
rdata_data <= (others => '0');
case (TO_INTEGER(raddr)) is
when ADDR_AP_CTRL =>
rdata_data(9) <= int_interrupt;
rdata_data(7) <= int_auto_restart;
rdata_data(3) <= int_ap_ready;
rdata_data(2) <= int_ap_idle;
rdata_data(1) <= int_task_ap_done;
rdata_data(0) <= int_ap_start;
when ADDR_GIE =>
rdata_data(0) <= int_gie;
when ADDR_IER =>
rdata_data(1 downto 0) <= int_ier;
when ADDR_ISR =>
rdata_data(1 downto 0) <= int_isr;
when ADDR_IN_WORDS_0_DATA_0 =>
rdata_data <= RESIZE(int_in_words_0(31 downto 0), 32);
when ADDR_IN_WORDS_1_DATA_0 =>
rdata_data <= RESIZE(int_in_words_1(31 downto 0), 32);
when ADDR_IN_WORDS_2_DATA_0 =>
rdata_data <= RESIZE(int_in_words_2(31 downto 0), 32);
when ADDR_IN_WORDS_3_DATA_0 =>
rdata_data <= RESIZE(int_in_words_3(31 downto 0), 32);
when ADDR_OUT_WORDS_0_DATA_0 =>
rdata_data <= RESIZE(int_out_words_0(31 downto 0), 32);
when ADDR_OUT_WORDS_0_CTRL =>
rdata_data(0) <= int_out_words_0_ap_vld;
when ADDR_OUT_WORDS_1_DATA_0 =>
rdata_data <= RESIZE(int_out_words_1(31 downto 0), 32);
when ADDR_OUT_WORDS_1_CTRL =>
rdata_data(0) <= int_out_words_1_ap_vld;
when ADDR_OUT_WORDS_2_DATA_0 =>
rdata_data <= RESIZE(int_out_words_2(31 downto 0), 32);
when ADDR_OUT_WORDS_2_CTRL =>
rdata_data(0) <= int_out_words_2_ap_vld;
when ADDR_OUT_WORDS_3_DATA_0 =>
rdata_data <= RESIZE(int_out_words_3(31 downto 0), 32);
when ADDR_OUT_WORDS_3_CTRL =>
rdata_data(0) <= int_out_words_3_ap_vld;
when others =>
NULL;
end case;
end if;
end if;
end if;
end process;
-- ----------------------- Register logic ----------------
interrupt <= int_interrupt;
ap_start <= int_ap_start;
task_ap_done <= (ap_done and not auto_restart_status) or auto_restart_done;
task_ap_ready <= ap_ready and not int_auto_restart;
auto_restart_done <= auto_restart_status and (ap_idle and not int_ap_idle);
in_words_0 <= STD_LOGIC_VECTOR(int_in_words_0);
in_words_1 <= STD_LOGIC_VECTOR(int_in_words_1);
in_words_2 <= STD_LOGIC_VECTOR(int_in_words_2);
in_words_3 <= STD_LOGIC_VECTOR(int_in_words_3);
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_interrupt <= '0';
elsif (ACLK_EN = '1') then
if (int_gie = '1' and (int_isr(0) or int_isr(1)) = '1') then
int_interrupt <= '1';
else
int_interrupt <= '0';
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_ap_start <= '0';
elsif (ACLK_EN = '1') then
if (w_hs = '1' and waddr = ADDR_AP_CTRL and WSTRB(0) = '1' and WDATA(0) = '1') then
int_ap_start <= '1';
elsif (ap_ready = '1') then
int_ap_start <= int_auto_restart; -- clear on handshake/auto restart
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_ap_done <= '0';
elsif (ACLK_EN = '1') then
if (true) then
int_ap_done <= ap_done;
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_task_ap_done <= '0';
elsif (ACLK_EN = '1') then
if (task_ap_done = '1') then
int_task_ap_done <= '1';
elsif (ar_hs = '1' and raddr = ADDR_AP_CTRL) then
int_task_ap_done <= '0'; -- clear on read
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_ap_idle <= '0';
elsif (ACLK_EN = '1') then
if (true) then
int_ap_idle <= ap_idle;
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_ap_ready <= '0';
elsif (ACLK_EN = '1') then
if (task_ap_ready = '1') then
int_ap_ready <= '1';
elsif (ar_hs = '1' and raddr = ADDR_AP_CTRL) then
int_ap_ready <= '0';
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_auto_restart <= '0';
elsif (ACLK_EN = '1') then
if (w_hs = '1' and waddr = ADDR_AP_CTRL and WSTRB(0) = '1') then
int_auto_restart <= WDATA(7);
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
auto_restart_status <= '0';
elsif (ACLK_EN = '1') then
if (int_auto_restart = '1') then
auto_restart_status <= '1';
elsif (ap_idle = '1') then
auto_restart_status <= '0';
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_gie <= '0';
elsif (ACLK_EN = '1') then
if (w_hs = '1' and waddr = ADDR_GIE and WSTRB(0) = '1') then
int_gie <= WDATA(0);
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_ier <= (others=>'0');
elsif (ACLK_EN = '1') then
if (w_hs = '1' and waddr = ADDR_IER and WSTRB(0) = '1') then
int_ier <= UNSIGNED(WDATA(1 downto 0));
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_isr(0) <= '0';
elsif (ACLK_EN = '1') then
if (int_ier(0) = '1' and ap_done = '1') then
int_isr(0) <= '1';
elsif (w_hs = '1' and waddr = ADDR_ISR and WSTRB(0) = '1') then
int_isr(0) <= int_isr(0) xor WDATA(0); -- toggle on write
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_isr(1) <= '0';
elsif (ACLK_EN = '1') then
if (int_ier(1) = '1' and ap_ready = '1') then
int_isr(1) <= '1';
elsif (w_hs = '1' and waddr = ADDR_ISR and WSTRB(0) = '1') then
int_isr(1) <= int_isr(1) xor WDATA(1); -- toggle on write
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_in_words_0(31 downto 0) <= (others => '0');
elsif (ACLK_EN = '1') then
if (w_hs = '1' and waddr = ADDR_IN_WORDS_0_DATA_0) then
int_in_words_0(31 downto 0) <= (UNSIGNED(WDATA(31 downto 0)) and wmask(31 downto 0)) or ((not wmask(31 downto 0)) and int_in_words_0(31 downto 0));
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_in_words_1(31 downto 0) <= (others => '0');
elsif (ACLK_EN = '1') then
if (w_hs = '1' and waddr = ADDR_IN_WORDS_1_DATA_0) then
int_in_words_1(31 downto 0) <= (UNSIGNED(WDATA(31 downto 0)) and wmask(31 downto 0)) or ((not wmask(31 downto 0)) and int_in_words_1(31 downto 0));
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_in_words_2(31 downto 0) <= (others => '0');
elsif (ACLK_EN = '1') then
if (w_hs = '1' and waddr = ADDR_IN_WORDS_2_DATA_0) then
int_in_words_2(31 downto 0) <= (UNSIGNED(WDATA(31 downto 0)) and wmask(31 downto 0)) or ((not wmask(31 downto 0)) and int_in_words_2(31 downto 0));
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_in_words_3(31 downto 0) <= (others => '0');
elsif (ACLK_EN = '1') then
if (w_hs = '1' and waddr = ADDR_IN_WORDS_3_DATA_0) then
int_in_words_3(31 downto 0) <= (UNSIGNED(WDATA(31 downto 0)) and wmask(31 downto 0)) or ((not wmask(31 downto 0)) and int_in_words_3(31 downto 0));
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_out_words_0 <= (others => '0');
elsif (ACLK_EN = '1') then
if (out_words_0_ap_vld = '1') then
int_out_words_0 <= UNSIGNED(out_words_0);
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_out_words_0_ap_vld <= '0';
elsif (ACLK_EN = '1') then
if (out_words_0_ap_vld = '1') then
int_out_words_0_ap_vld <= '1';
elsif (ar_hs = '1' and raddr = ADDR_OUT_WORDS_0_CTRL) then
int_out_words_0_ap_vld <= '0'; -- clear on read
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_out_words_1 <= (others => '0');
elsif (ACLK_EN = '1') then
if (out_words_1_ap_vld = '1') then
int_out_words_1 <= UNSIGNED(out_words_1);
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_out_words_1_ap_vld <= '0';
elsif (ACLK_EN = '1') then
if (out_words_1_ap_vld = '1') then
int_out_words_1_ap_vld <= '1';
elsif (ar_hs = '1' and raddr = ADDR_OUT_WORDS_1_CTRL) then
int_out_words_1_ap_vld <= '0'; -- clear on read
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_out_words_2 <= (others => '0');
elsif (ACLK_EN = '1') then
if (out_words_2_ap_vld = '1') then
int_out_words_2 <= UNSIGNED(out_words_2);
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_out_words_2_ap_vld <= '0';
elsif (ACLK_EN = '1') then
if (out_words_2_ap_vld = '1') then
int_out_words_2_ap_vld <= '1';
elsif (ar_hs = '1' and raddr = ADDR_OUT_WORDS_2_CTRL) then
int_out_words_2_ap_vld <= '0'; -- clear on read
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_out_words_3 <= (others => '0');
elsif (ACLK_EN = '1') then
if (out_words_3_ap_vld = '1') then
int_out_words_3 <= UNSIGNED(out_words_3);
end if;
end if;
end if;
end process;
process (ACLK)
begin
if (ACLK'event and ACLK = '1') then
if (ARESET = '1') then
int_out_words_3_ap_vld <= '0';
elsif (ACLK_EN = '1') then
if (out_words_3_ap_vld = '1') then
int_out_words_3_ap_vld <= '1';
elsif (ar_hs = '1' and raddr = ADDR_OUT_WORDS_3_CTRL) then
int_out_words_3_ap_vld <= '0'; -- clear on read
end if;
end if;
end if;
end process;
-- ----------------------- Memory logic ------------------
end architecture behave;

View File

@@ -0,0 +1,27 @@
set RtlHierarchyInfo {[
{"ID" : "0", "Level" : "0", "Path" : "`AUTOTB_DUT_INST", "Parent" : "", "Child" : ["1"],
"CDFG" : "game_of_life_step",
"Protocol" : "ap_ctrl_hs",
"ControlExist" : "1", "ap_start" : "1", "ap_ready" : "1", "ap_done" : "1", "ap_continue" : "0", "ap_idle" : "1", "real_start" : "0",
"Pipeline" : "None", "UnalignedPipeline" : "0", "RewindPipeline" : "0", "ProcessNetwork" : "0",
"II" : "0",
"VariableLatency" : "1", "ExactLatency" : "-1", "EstimateLatencyMin" : "1", "EstimateLatencyMax" : "1",
"Combinational" : "0",
"Datapath" : "0",
"ClockEnable" : "0",
"HasSubDataflow" : "0",
"InDataflowNetwork" : "0",
"HasNonBlockingOperation" : "0",
"IsBlackBox" : "0",
"Port" : [
{"Name" : "in_words_0", "Type" : "None", "Direction" : "I"},
{"Name" : "in_words_1", "Type" : "None", "Direction" : "I"},
{"Name" : "in_words_2", "Type" : "None", "Direction" : "I"},
{"Name" : "in_words_3", "Type" : "None", "Direction" : "I"},
{"Name" : "out_words_0", "Type" : "Vld", "Direction" : "O"},
{"Name" : "out_words_1", "Type" : "Vld", "Direction" : "O"},
{"Name" : "out_words_2", "Type" : "Vld", "Direction" : "O"},
{"Name" : "out_words_3", "Type" : "Vld", "Direction" : "O"}]},
{"ID" : "1", "Level" : "1", "Path" : "`AUTOTB_DUT_INST.AXILiteS_s_axi_U", "Parent" : "0"}]}

View File

@@ -0,0 +1,961 @@
<?xml version="1.0" encoding="utf-8"?>
<BindInfo>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_fu_998_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_1_fu_1008_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_1" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_2_fu_1018_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_2" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_3_fu_1028_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_3" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_4_fu_1038_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_4" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_5_fu_1048_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_5" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_fu_1058_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_fu_6804_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_1_fu_6809_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_1" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_fu_6814_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_fu_6819_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_7_fu_1080_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_7" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_8_fu_1090_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_8" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_9_fu_1100_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_9" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_10_fu_1110_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_10" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_11_fu_1120_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_11" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_1_fu_1130_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_1" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_2_fu_6825_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_2" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_3_fu_6830_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_3" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_1_fu_6835_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_1" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_1_fu_6840_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_1" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_13_fu_1148_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_13" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_14_fu_1158_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_14" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_15_fu_1168_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_15" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_16_fu_1178_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_16" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_17_fu_1188_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_17" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_18_fu_1198_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_18" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_2_fu_1208_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_2" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_4_fu_6846_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_4" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_5_fu_6851_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_5" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_2_fu_6856_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_2" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_2_fu_6861_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_2" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_20_fu_1226_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_20" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_21_fu_1236_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_21" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_22_fu_1246_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_22" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_23_fu_1256_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_23" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_24_fu_1266_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_24" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_25_fu_1276_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_25" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_3_fu_1286_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_3" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_6_fu_6867_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_6" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_7_fu_6872_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_7" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_3_fu_6877_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_3" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_3_fu_6882_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_3" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_27_fu_1304_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_27" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_28_fu_1314_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_28" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_29_fu_1324_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_29" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_30_fu_1334_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_30" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_31_fu_1344_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_31" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_32_fu_1354_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_32" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_4_fu_1364_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_4" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_8_fu_6888_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_8" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_9_fu_6893_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_9" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_4_fu_6898_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_4" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_4_fu_6903_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_4" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_34_fu_1382_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_34" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_35_fu_1392_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_35" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_36_fu_1402_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_36" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_37_fu_1412_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_37" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_38_fu_1422_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_38" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_39_fu_1432_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_39" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_5_fu_1442_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_5" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_10_fu_6909_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_10" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_11_fu_6914_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_11" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_5_fu_6919_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_5" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_5_fu_6924_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_5" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_41_fu_1460_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_41" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_42_fu_1470_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_42" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_43_fu_1480_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_43" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_44_fu_1490_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_44" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_45_fu_1500_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_45" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_46_fu_1510_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_46" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_6_fu_1520_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_6" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_12_fu_6930_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_12" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_13_fu_6935_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_13" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_6_fu_6940_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_6" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_6_fu_6945_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_6" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_48_fu_1538_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_48" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_49_fu_1548_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_49" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_50_fu_1558_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_50" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_51_fu_1568_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_51" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_52_fu_1578_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_52" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_53_fu_1588_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_53" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_7_fu_1598_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_7" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_14_fu_6951_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_14" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_15_fu_6956_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_15" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_7_fu_6961_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_7" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_7_fu_6966_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_7" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_55_fu_1604_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_55" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_56_fu_1614_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_56" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_57_fu_1624_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_57" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_58_fu_1634_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_58" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_59_fu_1644_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_59" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_60_fu_1654_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_60" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_8_fu_1664_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_8" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_16_fu_6972_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_16" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_17_fu_6977_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_17" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_8_fu_6982_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_8" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_8_fu_6987_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_8" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_114_fu_1670_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_114" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_65_fu_1696_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_65" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_11_fu_1722_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_11" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_18_fu_6993_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_18" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_19_fu_6998_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_19" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_9_fu_7003_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_9" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_9_fu_7008_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_9" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_12_fu_1728_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_12" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_13_fu_1738_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_13" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_71_fu_1756_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_71" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_72_fu_7020_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_72" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_73_fu_1762_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_73" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_74_fu_1768_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_74" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_14_fu_7033_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_14" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_20_fu_7039_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_20" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_21_fu_7045_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_21" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_10_fu_7051_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_10" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_10_fu_7056_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_10" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_78_fu_1794_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_78" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_79_fu_1804_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_79" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_80_fu_1814_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_80" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_81_fu_1820_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_81" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_16_fu_1830_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_16" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_22_fu_7062_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_22" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_23_fu_7067_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_23" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_11_fu_7072_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_11" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_11_fu_7077_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_11" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_85_fu_1856_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_85" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_86_fu_1866_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_86" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_87_fu_1876_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_87" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_88_fu_1882_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_88" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_18_fu_1892_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_18" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_24_fu_7083_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_24" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_25_fu_7088_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_25" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_12_fu_7093_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_12" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_12_fu_7098_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_12" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_92_fu_1918_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_92" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_93_fu_1928_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_93" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_94_fu_1938_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_94" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_95_fu_1944_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_95" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_20_fu_1954_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_20" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_26_fu_7104_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_26" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_27_fu_7109_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_27" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_13_fu_7114_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_13" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_13_fu_7119_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_13" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_99_fu_1980_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_99" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_100_fu_1990_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_100" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_101_fu_2000_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_101" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_102_fu_2006_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_102" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_22_fu_2016_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_22" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_28_fu_7125_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_28" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_29_fu_7130_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_29" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_14_fu_7135_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_14" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_14_fu_7140_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_14" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_106_fu_2042_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_106" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_107_fu_2052_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_107" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_108_fu_2062_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_108" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_109_fu_2068_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_109" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_24_fu_2078_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_24" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_30_fu_7146_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_30" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_31_fu_7151_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_31" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_15_fu_7156_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_15" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_15_fu_7161_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_15" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_113_fu_2104_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_113" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_114_fu_2114_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_114" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_115_fu_2124_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_115" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_116_fu_2130_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_116" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_26_fu_2140_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_26" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_32_fu_7167_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_32" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_33_fu_7172_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_33" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_16_fu_7177_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_16" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_16_fu_7182_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_16" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_120_fu_2166_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_120" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_121_fu_2176_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_121" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_122_fu_2186_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_122" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_123_fu_2192_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_123" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_28_fu_2202_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_28" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_34_fu_7188_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_34" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_35_fu_7193_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_35" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_17_fu_7198_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_17" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_17_fu_7203_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_17" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_127_fu_2224_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_127" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_128_fu_2234_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_128" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_129_fu_2244_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_129" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_130_fu_2250_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_130" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_30_fu_2260_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_30" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_36_fu_7209_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_36" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_37_fu_7214_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_37" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_18_fu_7219_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_18" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_18_fu_7224_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_18" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_132_fu_2266_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_132" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_133_fu_2276_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_133" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_134_fu_2286_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_134" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_135_fu_2296_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_135" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_136_fu_2306_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_136" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_31_fu_2316_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_31" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_38_fu_7230_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_38" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_39_fu_7235_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_39" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_19_fu_7240_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_19" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_19_fu_7245_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_19" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_52_fu_2334_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_52" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_139_fu_2344_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_139" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_140_fu_2354_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_140" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_141_fu_2368_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_141" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_142_fu_2378_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_142" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_32_fu_2388_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_32" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_40_fu_7251_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_40" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_41_fu_7256_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_41" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_20_fu_7261_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_20" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_20_fu_7266_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_20" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_144_fu_2398_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_144" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_145_fu_2408_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_145" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_146_fu_2422_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_146" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_147_fu_2432_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_147" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_33_fu_2442_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_33" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_42_fu_7272_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_42" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_43_fu_7277_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_43" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_21_fu_7282_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_21" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_21_fu_7287_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_21" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_149_fu_2452_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_149" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_150_fu_2462_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_150" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_151_fu_2472_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_151" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_152_fu_2486_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_152" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_153_fu_2496_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_153" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_34_fu_2506_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_34" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_44_fu_7293_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_44" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_45_fu_7298_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_45" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_22_fu_7303_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_22" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_22_fu_7308_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_22" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_155_fu_2516_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_155" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_156_fu_2526_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_156" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_157_fu_2536_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_157" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_158_fu_2550_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_158" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_159_fu_2560_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_159" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_35_fu_2570_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_35" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_46_fu_7314_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_46" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_47_fu_7319_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_47" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_23_fu_7324_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_23" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_23_fu_7329_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_23" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_161_fu_2580_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_161" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_162_fu_2590_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_162" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_163_fu_2600_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_163" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_164_fu_2614_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_164" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_165_fu_2624_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_165" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_36_fu_2634_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_36" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_48_fu_7335_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_48" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_49_fu_7340_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_49" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_24_fu_7345_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_24" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_24_fu_7350_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_24" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_167_fu_2644_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_167" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_168_fu_2654_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_168" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_169_fu_2664_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_169" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_170_fu_2678_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_170" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_171_fu_2688_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_171" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_37_fu_2698_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_37" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_50_fu_7356_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_50" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_51_fu_7361_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_51" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_25_fu_7366_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_25" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_25_fu_7371_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_25" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_173_fu_2708_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_173" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_174_fu_2718_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_174" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_175_fu_2728_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_175" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_176_fu_2742_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_176" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_177_fu_2752_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_177" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_38_fu_2762_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_38" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_52_fu_7377_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_52" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_53_fu_7382_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_53" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_26_fu_7387_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_26" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_26_fu_7392_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_26" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_179_fu_2772_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_179" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_180_fu_2782_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_180" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_181_fu_2792_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_181" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_182_fu_2806_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_182" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_183_fu_2816_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_183" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_39_fu_2826_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_39" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_54_fu_7398_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_54" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_55_fu_7403_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_55" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_27_fu_7408_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_27" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_27_fu_7413_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_27" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_185_fu_2832_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_185" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_186_fu_2842_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_186" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_187_fu_2852_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_187" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_188_fu_2866_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_188" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_189_fu_2876_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_189" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_40_fu_2886_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_40" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_56_fu_7419_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_56" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_57_fu_7424_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_57" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_28_fu_7429_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_28" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_28_fu_7434_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_28" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_191_fu_2892_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_191" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_192_fu_2902_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_192" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_41_fu_2928_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_41" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_58_fu_7440_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_58" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_59_fu_7445_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_59" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_29_fu_7450_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_29" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_29_fu_7455_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_29" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_196_fu_2946_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_196" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_197_fu_2956_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_197" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_198_fu_2966_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_198" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_199_fu_2976_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_199" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_200_fu_2986_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_200" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_42_fu_2996_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_42" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_60_fu_7461_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_60" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_61_fu_7466_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_61" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_30_fu_7471_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_30" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_30_fu_7476_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_30" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_202_fu_3006_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_202" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_203_fu_3016_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_203" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_204_fu_3026_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_204" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_205_fu_3036_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_205" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_206_fu_3046_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_206" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_43_fu_3056_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_43" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_62_fu_7482_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_62" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_63_fu_7487_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_63" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_31_fu_7492_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_31" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_31_fu_7497_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_31" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_208_fu_3066_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_208" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_209_fu_3076_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_209" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_210_fu_3086_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_210" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_211_fu_3096_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_211" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_212_fu_3106_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_212" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_44_fu_3116_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_44" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_64_fu_7503_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_64" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_65_fu_7508_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_65" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_32_fu_7513_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_32" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_32_fu_7518_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_32" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_214_fu_3126_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_214" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_215_fu_3136_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_215" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_216_fu_3146_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_216" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_217_fu_3156_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_217" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_218_fu_3166_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_218" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_45_fu_3176_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_45" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_66_fu_7524_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_66" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_67_fu_7529_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_67" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_33_fu_7534_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_33" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_33_fu_7539_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_33" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_220_fu_3186_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_220" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_221_fu_3196_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_221" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_222_fu_3206_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_222" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_223_fu_3216_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_223" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_224_fu_3226_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_224" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_46_fu_3236_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_46" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_68_fu_7545_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_68" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_69_fu_7550_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_69" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_34_fu_7555_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_34" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_34_fu_7560_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_34" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_226_fu_3246_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_226" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_227_fu_3256_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_227" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_228_fu_3266_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_228" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_229_fu_3276_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_229" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_230_fu_3286_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_230" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_47_fu_3296_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_47" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_70_fu_7566_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_70" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_71_fu_7571_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_71" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_35_fu_7576_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_35" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_35_fu_7581_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_35" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_232_fu_3306_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_232" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_233_fu_3316_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_233" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_234_fu_3326_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_234" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_235_fu_3336_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_235" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_236_fu_3346_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_236" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_48_fu_3356_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_48" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_72_fu_7587_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_72" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_73_fu_7592_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_73" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_36_fu_7597_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_36" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_36_fu_7602_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_36" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_238_fu_3366_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_238" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_239_fu_3376_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_239" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_240_fu_3386_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_240" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_241_fu_3396_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_241" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_242_fu_3406_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_242" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_49_fu_3416_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_49" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_74_fu_7608_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_74" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_75_fu_7613_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_75" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_37_fu_7618_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_37" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_37_fu_7623_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_37" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_244_fu_3422_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_244" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_245_fu_3432_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_245" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_246_fu_3442_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_246" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_247_fu_3452_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_247" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_248_fu_3462_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_248" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_50_fu_3472_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_50" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_76_fu_7629_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_76" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_77_fu_7634_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_77" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_38_fu_7639_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_38" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_38_fu_7644_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_38" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_250_fu_3478_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_250" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_251_fu_3488_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_251" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_252_fu_3498_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_252" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_253_fu_3508_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_253" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_254_fu_3518_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_254" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_51_fu_3528_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_51" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_78_fu_7650_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_78" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_79_fu_7655_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_79" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_39_fu_7660_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_39" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_39_fu_7665_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_39" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_256_fu_3546_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_256" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_257_fu_3556_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_257" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_258_fu_3566_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_258" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_259_fu_3576_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_259" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_260_fu_3586_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_260" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_53_fu_3596_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_53" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_80_fu_7671_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_80" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_81_fu_7676_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_81" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_40_fu_7681_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_40" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_40_fu_7686_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_40" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_262_fu_3606_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_262" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_263_fu_3616_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_263" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_264_fu_3626_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_264" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_265_fu_3636_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_265" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_266_fu_3646_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_266" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_54_fu_3656_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_54" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_82_fu_7692_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_82" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_83_fu_7697_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_83" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_41_fu_7702_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_41" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_41_fu_7707_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_41" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_268_fu_3666_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_268" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_269_fu_3676_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_269" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_270_fu_3686_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_270" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_271_fu_3696_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_271" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_272_fu_3706_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_272" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_55_fu_3716_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_55" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_84_fu_7713_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_84" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_85_fu_7718_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_85" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_42_fu_7723_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_42" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_42_fu_7728_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_42" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_274_fu_3726_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_274" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_275_fu_3736_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_275" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_276_fu_3746_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_276" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_277_fu_3756_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_277" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_278_fu_3766_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_278" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_56_fu_3776_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_56" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_86_fu_7734_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_86" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_87_fu_7739_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_87" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_43_fu_7744_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_43" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_43_fu_7749_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_43" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_280_fu_3786_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_280" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_281_fu_3796_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_281" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_282_fu_3806_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_282" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_283_fu_3816_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_283" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_284_fu_3826_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_284" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_57_fu_3836_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_57" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_88_fu_7755_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_88" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_89_fu_7760_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_89" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_44_fu_7765_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_44" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_44_fu_7770_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_44" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_286_fu_3846_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_286" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_287_fu_3856_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_287" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_288_fu_3866_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_288" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_289_fu_3876_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_289" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_290_fu_3886_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_290" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_58_fu_3896_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_58" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_90_fu_7776_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_90" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_91_fu_7781_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_91" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_45_fu_7786_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_45" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_45_fu_7791_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_45" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_292_fu_3906_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_292" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_293_fu_3916_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_293" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_294_fu_3926_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_294" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_295_fu_3936_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_295" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_296_fu_3946_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_296" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_59_fu_3956_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_59" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_92_fu_7797_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_92" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_93_fu_7802_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_93" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_46_fu_7807_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_46" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_46_fu_7812_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_46" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_298_fu_3966_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_298" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_299_fu_3976_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_299" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_300_fu_3986_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_300" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_301_fu_3996_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_301" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_302_fu_4006_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_302" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_60_fu_4016_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_60" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_94_fu_7818_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_94" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_95_fu_7823_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_95" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_47_fu_7828_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_47" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_47_fu_7833_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_47" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_304_fu_4022_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_304" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_305_fu_4032_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_305" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_306_fu_4042_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_306" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_307_fu_4052_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_307" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_308_fu_4062_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_308" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_61_fu_4072_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_61" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_96_fu_7839_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_96" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_97_fu_7844_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_97" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_48_fu_7849_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_48" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_48_fu_7854_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_48" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_310_fu_4078_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_310" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_311_fu_4088_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_311" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_312_fu_4098_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_312" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_313_fu_4108_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_313" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_314_fu_4118_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_314" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_315_fu_4128_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_315" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_62_fu_4138_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_62" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_98_fu_7860_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_98" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_99_fu_7865_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_99" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_49_fu_7870_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_49" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_49_fu_7875_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_49" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_83_fu_4156_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_83" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_318_fu_4166_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_318" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_319_fu_4176_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_319" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_320_fu_4186_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_320" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_321_fu_4196_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_321" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_63_fu_4206_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_63" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_100_fu_7881_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_100" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_101_fu_7886_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_101" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_50_fu_7891_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_50" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_50_fu_7896_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_50" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_323_fu_4216_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_323" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_324_fu_4226_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_324" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_325_fu_4236_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_325" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_326_fu_4246_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_326" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_64_fu_4256_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_64" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_102_fu_7902_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_102" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_103_fu_7907_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_103" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_51_fu_7912_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_51" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_51_fu_7917_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_51" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_328_fu_4266_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_328" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_329_fu_4276_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_329" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_330_fu_4286_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_330" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_331_fu_4296_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_331" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_332_fu_4306_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_332" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_65_fu_4316_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_65" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_104_fu_7923_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_104" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_105_fu_7928_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_105" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_52_fu_7933_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_52" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_52_fu_7938_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_52" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_334_fu_4326_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_334" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_335_fu_4336_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_335" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_336_fu_4346_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_336" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_337_fu_4356_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_337" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_338_fu_4366_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_338" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_66_fu_4376_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_66" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_106_fu_7944_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_106" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_107_fu_7949_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_107" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_53_fu_7954_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_53" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_53_fu_7959_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_53" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_340_fu_4386_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_340" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_341_fu_4396_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_341" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_342_fu_4406_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_342" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_343_fu_4416_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_343" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_344_fu_4426_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_344" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_67_fu_4436_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_67" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_108_fu_7965_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_108" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_109_fu_7970_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_109" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_54_fu_7975_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_54" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_54_fu_7980_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_54" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_346_fu_4446_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_346" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_347_fu_4456_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_347" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_348_fu_4466_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_348" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_349_fu_4476_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_349" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_350_fu_4486_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_350" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_68_fu_4496_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_68" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_110_fu_7986_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_110" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_111_fu_7991_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_111" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_55_fu_7996_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_55" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_55_fu_8001_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_55" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_352_fu_4506_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_352" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_353_fu_4516_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_353" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_354_fu_4526_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_354" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_355_fu_4536_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_355" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_356_fu_4546_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_356" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_69_fu_4556_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_69" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_112_fu_8007_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_112" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_113_fu_8012_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_113" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_56_fu_8017_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_56" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_56_fu_8022_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_56" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_358_fu_4566_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_358" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_359_fu_4576_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_359" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_360_fu_4586_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_360" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_361_fu_4596_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_361" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_362_fu_4606_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_362" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_70_fu_4616_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_70" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_114_fu_8028_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_114" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_115_fu_8033_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_115" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_57_fu_8038_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_57" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_57_fu_8043_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_57" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_364_fu_4622_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_364" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_365_fu_4632_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_365" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_366_fu_4642_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_366" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_367_fu_4652_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_367" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_368_fu_4662_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_368" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_71_fu_4672_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_71" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_116_fu_8049_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_116" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_117_fu_8054_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_117" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_58_fu_8059_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_58" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_58_fu_8064_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_58" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_370_fu_4678_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_370" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_371_fu_4688_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_371" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_372_fu_4698_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_372" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_373_fu_4708_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_373" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_374_fu_4718_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_374" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_72_fu_4728_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_72" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_118_fu_8070_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_118" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_119_fu_8075_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_119" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_59_fu_8080_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_59" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_59_fu_8085_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_59" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_376_fu_4746_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_376" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_377_fu_4756_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_377" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_378_fu_4766_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_378" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_379_fu_4776_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_379" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_380_fu_4786_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_380" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_73_fu_4796_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_73" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_120_fu_8091_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_120" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_121_fu_8096_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_121" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_60_fu_8101_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_60" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_60_fu_8106_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_60" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_382_fu_4806_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_382" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_383_fu_4816_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_383" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_384_fu_4826_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_384" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_385_fu_4836_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_385" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_386_fu_4846_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_386" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_74_fu_4856_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_74" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_122_fu_8112_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_122" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_123_fu_8117_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_123" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_61_fu_8122_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_61" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_61_fu_8127_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_61" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_388_fu_4866_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_388" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_389_fu_4876_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_389" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_390_fu_4886_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_390" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_391_fu_4896_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_391" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_392_fu_4906_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_392" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_75_fu_4916_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_75" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_124_fu_8133_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_124" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_125_fu_8138_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_125" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_62_fu_8143_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_62" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_62_fu_8148_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_62" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_394_fu_4926_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_394" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_395_fu_4936_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_395" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_396_fu_4946_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_396" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_397_fu_4956_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_397" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_398_fu_4966_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_398" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_76_fu_4976_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_76" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_126_fu_8154_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_126" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_127_fu_8159_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_127" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_63_fu_8164_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_63" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_63_fu_8169_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_63" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_400_fu_4986_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_400" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_401_fu_4996_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_401" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_402_fu_5006_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_402" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_403_fu_5016_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_403" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_404_fu_5026_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_404" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_77_fu_5036_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_77" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_128_fu_8175_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_128" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_129_fu_8180_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_129" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_64_fu_8185_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_64" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_64_fu_8190_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_64" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_406_fu_5046_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_406" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_407_fu_5056_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_407" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_408_fu_5066_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_408" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_409_fu_5076_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_409" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_410_fu_5086_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_410" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_78_fu_5096_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_78" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_130_fu_8196_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_130" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_131_fu_8201_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_131" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_65_fu_8206_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_65" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_65_fu_8211_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_65" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_412_fu_5106_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_412" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_413_fu_5116_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_413" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_414_fu_5126_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_414" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_415_fu_5136_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_415" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_416_fu_5146_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_416" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_79_fu_5156_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_79" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_132_fu_8217_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_132" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_133_fu_8222_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_133" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_66_fu_8227_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_66" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_66_fu_8232_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_66" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_418_fu_5166_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_418" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_419_fu_5176_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_419" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_420_fu_5186_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_420" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_421_fu_5196_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_421" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_422_fu_5206_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_422" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_80_fu_5216_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_80" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_134_fu_8238_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_134" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_135_fu_8243_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_135" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_67_fu_8248_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_67" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_67_fu_8253_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_67" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_424_fu_5222_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_424" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_425_fu_5232_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_425" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_426_fu_5242_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_426" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_427_fu_5252_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_427" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_428_fu_5262_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_428" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_81_fu_5272_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_81" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_136_fu_8259_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_136" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_137_fu_8264_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_137" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_68_fu_8269_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_68" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_68_fu_8274_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_68" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_430_fu_5278_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_430" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_431_fu_5288_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_431" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_432_fu_5298_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_432" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_433_fu_5308_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_433" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_82_fu_5318_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_82" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_138_fu_8280_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_138" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_139_fu_8285_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_139" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_69_fu_8290_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_69" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_69_fu_8295_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_69" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_435_fu_5336_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_435" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_436_fu_5346_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_436" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_437_fu_5356_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_437" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_438_fu_5366_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_438" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_439_fu_5376_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_439" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_84_fu_5386_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_84" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_140_fu_8301_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_140" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_141_fu_8306_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_141" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_70_fu_8311_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_70" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_70_fu_8316_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_70" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_441_fu_5396_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_441" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_442_fu_5406_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_442" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_443_fu_5416_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_443" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_444_fu_5426_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_444" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_445_fu_5436_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_445" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_85_fu_5446_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_85" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_142_fu_8322_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_142" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_143_fu_8327_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_143" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_71_fu_8332_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_71" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_71_fu_8337_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_71" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_447_fu_5456_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_447" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_448_fu_5466_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_448" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_449_fu_5476_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_449" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_450_fu_5486_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_450" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_451_fu_5496_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_451" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_86_fu_5506_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_86" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_144_fu_8343_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_144" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_145_fu_8348_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_145" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_72_fu_8353_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_72" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_72_fu_8358_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_72" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_453_fu_5516_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_453" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_454_fu_5526_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_454" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_455_fu_5536_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_455" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_456_fu_5546_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_456" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_457_fu_5556_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_457" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_87_fu_5566_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_87" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_146_fu_8364_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_146" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_147_fu_8369_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_147" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_73_fu_8374_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_73" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_73_fu_8379_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_73" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_459_fu_5576_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_459" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_460_fu_5586_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_460" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_461_fu_5596_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_461" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_462_fu_5606_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_462" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_463_fu_5616_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_463" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_88_fu_5626_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_88" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_148_fu_8385_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_148" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_149_fu_8390_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_149" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_74_fu_8395_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_74" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_74_fu_8400_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_74" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_465_fu_5636_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_465" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_466_fu_5646_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_466" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_467_fu_5656_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_467" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_468_fu_5666_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_468" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_469_fu_5676_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_469" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_89_fu_5686_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_89" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_150_fu_8406_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_150" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_151_fu_8411_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_151" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_75_fu_8416_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_75" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_75_fu_8421_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_75" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_471_fu_5696_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_471" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_472_fu_5706_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_472" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_473_fu_5716_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_473" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_474_fu_5726_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_474" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_475_fu_5736_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_475" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_90_fu_5746_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_90" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_152_fu_8427_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_152" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_153_fu_8432_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_153" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_76_fu_8437_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_76" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_76_fu_8442_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_76" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_477_fu_5756_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_477" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_478_fu_5766_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_478" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_479_fu_5776_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_479" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_480_fu_5786_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_480" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_481_fu_5796_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_481" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_91_fu_5806_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_91" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_154_fu_8448_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_154" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_155_fu_8453_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_155" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_77_fu_8458_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_77" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_77_fu_8463_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_77" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_483_fu_5812_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_483" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_484_fu_5822_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_484" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_485_fu_5832_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_485" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_486_fu_5842_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_486" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_487_fu_5852_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_487" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_92_fu_5862_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_92" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_156_fu_8469_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_156" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_157_fu_8474_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_157" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_78_fu_8479_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_78" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_78_fu_8484_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_78" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_489_fu_5868_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_489" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_490_fu_5878_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_490" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_491_fu_5888_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_491" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_492_fu_5898_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_492" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_493_fu_5908_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_493" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_494_fu_5918_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_494" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_93_fu_5928_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_93" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_158_fu_8490_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_158" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_159_fu_8495_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_159" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_79_fu_8500_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_79" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_79_fu_8505_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_79" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_496_fu_5934_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_496" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_497_fu_5944_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_497" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_498_fu_5954_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_498" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_499_fu_5964_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_499" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_94_fu_5974_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_94" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_160_fu_8511_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_160" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_161_fu_8516_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_161" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_80_fu_8521_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_80" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_80_fu_8526_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_80" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_501_fu_5980_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_501" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_502_fu_5990_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_502" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_503_fu_6000_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_503" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_504_fu_6010_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_504" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_95_fu_6020_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_95" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_162_fu_8532_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_162" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_163_fu_8537_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_163" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_81_fu_8542_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_81" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_81_fu_8547_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_81" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_506_fu_6026_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_506" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_507_fu_6036_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_507" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_508_fu_6046_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_508" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_509_fu_6056_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_509" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_96_fu_6066_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_96" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_164_fu_8553_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_164" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_165_fu_8558_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_165" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_82_fu_8563_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_82" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_82_fu_8568_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_82" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_511_fu_6072_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_511" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_512_fu_6082_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_512" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_513_fu_6092_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_513" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_514_fu_6102_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_514" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_97_fu_6112_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_97" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_166_fu_8574_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_166" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_167_fu_8579_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_167" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_83_fu_8584_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_83" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_83_fu_8589_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_83" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_516_fu_6118_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_516" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_517_fu_6128_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_517" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_518_fu_6138_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_518" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_519_fu_6148_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_519" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_98_fu_6158_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_98" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_168_fu_8595_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_168" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_169_fu_8600_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_169" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_84_fu_8605_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_84" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_84_fu_8610_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_84" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_521_fu_6164_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_521" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_522_fu_6174_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_522" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_523_fu_6184_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_523" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_524_fu_6194_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_524" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_99_fu_6204_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_99" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_170_fu_8616_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_170" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_171_fu_8621_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_171" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_85_fu_8626_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_85" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_85_fu_8631_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_85" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_526_fu_6210_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_526" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_527_fu_6220_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_527" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_528_fu_6230_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_528" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_529_fu_6240_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_529" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_100_fu_6250_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_100" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_172_fu_8637_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_172" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_173_fu_8642_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_173" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_86_fu_8647_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_86" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_86_fu_8652_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_86" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_531_fu_6256_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_531" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_532_fu_6266_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_532" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_533_fu_6276_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_533" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_534_fu_6286_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_534" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_101_fu_6296_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_101" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_174_fu_8658_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_174" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_175_fu_8663_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_175" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_87_fu_8668_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_87" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_87_fu_8673_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_87" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_536_fu_6302_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_536" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_537_fu_6312_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_537" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_538_fu_6322_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_538" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_539_fu_6332_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_539" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_102_fu_6342_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_102" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_176_fu_8679_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_176" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_177_fu_8684_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_177" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_88_fu_8689_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_88" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_88_fu_8694_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_88" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_541_fu_6348_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_541" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_542_fu_6358_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_542" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_543_fu_6368_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_543" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_544_fu_6378_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_544" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_545_fu_6388_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_545" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_103_fu_6398_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_103" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_178_fu_8700_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_178" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_179_fu_8705_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_179" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_89_fu_8710_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_89" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_89_fu_8715_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_89" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_547_fu_6404_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_547" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_548_fu_8724_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_548" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_104_fu_8737_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_104" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_180_fu_8743_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_180" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_181_fu_8749_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_181" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_90_fu_8755_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_90" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_90_fu_8760_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_90" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_552_fu_6422_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_552" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_553_fu_6432_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_553" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_105_fu_6458_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_105" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_182_fu_8766_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_182" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_183_fu_8771_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_183" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_91_fu_8776_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_91" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_91_fu_8781_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_91" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_557_fu_6464_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_557" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_558_fu_6474_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_558" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_106_fu_6500_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_106" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_184_fu_8787_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_184" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_185_fu_8792_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_185" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_92_fu_8797_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_92" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_92_fu_8802_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_92" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_562_fu_6506_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_562" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_563_fu_6516_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_563" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_107_fu_6542_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_107" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_186_fu_8808_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_186" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_187_fu_8813_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_187" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_93_fu_8818_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_93" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_93_fu_8823_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_93" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_567_fu_6548_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_567" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_568_fu_6558_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_568" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_108_fu_6584_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_108" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_188_fu_8829_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_188" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_189_fu_8834_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_189" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_94_fu_8839_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_94" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_94_fu_8844_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_94" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_572_fu_6590_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_572" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_573_fu_6600_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_573" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_109_fu_6626_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_109" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_190_fu_8850_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_190" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_191_fu_8855_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_191" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_95_fu_8860_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_95" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_95_fu_8865_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_95" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_577_fu_6632_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_577" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_578_fu_6642_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_578" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_110_fu_6668_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_110" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_192_fu_8871_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_192" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_193_fu_8876_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_193" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_96_fu_8881_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_96" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_96_fu_8886_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_96" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_582_fu_6674_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_582" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_583_fu_6684_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_583" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_111_fu_6710_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_111" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_194_fu_8892_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_194" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_195_fu_8897_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_195" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_97_fu_8902_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_97" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_97_fu_8907_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_97" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_587_fu_6716_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_587" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_588_fu_6726_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_588" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_112_fu_6752_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_112" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_196_fu_8913_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_196" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_197_fu_8918_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_197" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_98_fu_8923_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_98" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_98_fu_8928_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_98" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_592_fu_6758_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_592" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_593_fu_6768_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_593" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_594_fu_6778_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_594" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="add_ln69_595_fu_6788_p2" SOURCE="gameoflife.cpp:69" VARIABLE="add_ln69_595" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op add" ID="" IMPL="fabric" LATENCY="0" OPTYPE="add" PRAGMA="" RTLNAME="alive_neighbours_113_fu_6798_p2" SOURCE="gameoflife.cpp:69" VARIABLE="alive_neighbours_113" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_198_fu_8934_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_198" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op seteq" ID="" IMPL="auto" LATENCY="0" OPTYPE="seteq" PRAGMA="" RTLNAME="icmp_ln74_199_fu_8939_p2" SOURCE="gameoflife.cpp:74" VARIABLE="icmp_ln74_199" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op and" ID="" IMPL="auto" LATENCY="0" OPTYPE="and" PRAGMA="" RTLNAME="and_ln74_99_fu_8944_p2" SOURCE="gameoflife.cpp:74" VARIABLE="and_ln74_99" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="op" DISPLAY="bind_op or" ID="" IMPL="auto" LATENCY="0" OPTYPE="or" PRAGMA="" RTLNAME="is_alive_after_step_99_fu_8949_p2" SOURCE="gameoflife.cpp:74" VARIABLE="is_alive_after_step_99" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="" DSP="0" BRAM="0" URAM="0" USAGE="" STORAGESUBTYPE="" STORAGESIZE=""/>
<BindNode BINDTYPE="adapter" DISPLAY="bind_adapter axilite" ID="" IMPL="" LATENCY="" OPTYPE="" PRAGMA="" RTLNAME="AXILiteS_s_axi_U" SOURCE="" VARIABLE="" MODULE="game_of_life_step" LOOP="" BUNDLEDNAME="AXILiteS" DSP="0" BRAM="0" URAM="0" USAGE="interface" STORAGESUBTYPE="s_axilite" STORAGESIZE=""/>
</BindInfo>

View File

@@ -0,0 +1,19 @@
# ==============================================================
# Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
# Tool Version Limit: 2025.05
# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
# Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
#
# ==============================================================
OPTION psf_version = 2.1;
BEGIN driver game_of_life_step
OPTION supported_peripherals = (game_of_life_step_v1_0 );
OPTION driver_state = ACTIVE;
OPTION copyfiles = all;
OPTION name = game_of_life_step;
OPTION version = 1.0;
END driver

View File

@@ -0,0 +1,24 @@
# ==============================================================
# Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
# Tool Version Limit: 2025.05
# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
# Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
#
# ==============================================================
proc generate {drv_handle} {
xdefine_include_file $drv_handle "xparameters.h" "XGame_of_life_step" \
"NUM_INSTANCES" \
"DEVICE_ID" \
"C_S_AXI_AXILITES_BASEADDR" \
"C_S_AXI_AXILITES_HIGHADDR"
xdefine_config_file $drv_handle "xgame_of_life_step_g.c" "XGame_of_life_step" \
"DEVICE_ID" \
"C_S_AXI_AXILITES_BASEADDR"
xdefine_canonical_xpars $drv_handle "xparameters.h" "XGame_of_life_step" \
"DEVICE_ID" \
"C_S_AXI_AXILITES_BASEADDR" \
"C_S_AXI_AXILITES_HIGHADDR"
}

View File

@@ -0,0 +1,24 @@
# ==============================================================
# Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
# Tool Version Limit: 2025.05
# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
# Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
#
# ==============================================================
%YAML 1.2
---
title: game_of_life_step driver
type: driver
properties:
compatible:
items:
- const: xlnx,game-of-life-step-1.0
config:
- XGame_of_life_step_Config
required:
- compatible
- reg
additionalProperties:
- interrupts
- interrupt-parent

View File

@@ -0,0 +1,25 @@
# ==============================================================
# Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
# Tool Version Limit: 2025.05
# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
# Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
#
# ==============================================================
cmake_minimum_required(VERSION 3.15)
project(game_of_life_step)
find_package(common)
collector_create (PROJECT_LIB_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}")
collect (PROJECT_LIB_SOURCES xgame_of_life_step.c)
collect (PROJECT_LIB_SOURCES xgame_of_life_step_sinit.c)
collect (PROJECT_LIB_SOURCES xgame_of_life_step_linux.c)
collect (PROJECT_LIB_SOURCES xgame_of_life_step_g.c)
collector_list (_sources PROJECT_LIB_SOURCES)
collector_create (PROJECT_LIB_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}")
collect (PROJECT_LIB_HEADERS xgame_of_life_step.h)
collect (PROJECT_LIB_HEADERS xgame_of_life_step_hw.h)
collector_list (_headers PROJECT_LIB_HEADERS)
file(COPY ${_headers} DESTINATION ${CMAKE_BINARY_DIR}/include)
include_directories(${CMAKE_BINARY_DIR}/include)
add_library(game_of_life_step STATIC ${_sources})
set_target_properties(game_of_life_step PROPERTIES LINKER_LANGUAGE C)

View File

@@ -0,0 +1,60 @@
# ==============================================================
# Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
# Tool Version Limit: 2025.05
# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
# Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
#
# ==============================================================
COMPILER=
ARCHIVER=
CP=cp
RM=rm
COMPILER_FLAGS=
EXTRA_COMPILER_FLAGS=
ARCHIVER_FLAGS=
CORENAME=game_of_life_step
RELEASEDIR=../../../lib
OBJDIR=$(RELEASEDIR)
LIBDIR=$(RELEASEDIR)
INCLUDEDIR=../../../include
INCLUDES=-I./. -I$(INCLUDEDIR)
# Source files
SRCS := $(wildcard *.c)
HEADERS := $(wildcard *.h)
# Generated files
LIB := $(LIBDIR)/libxil.a
OBJS := $(addprefix $(OBJDIR)/,$(addsuffix .o,$(basename $(SRCS))))
RELEASE_HEADERS := $(addprefix $(INCLUDEDIR)/,$(notdir $(HEADERS)))
# Rules to compile and link
$(OBJDIR)/%.o: %.c
$(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) -o $@ $<
$(LIB): $(OBJS)
$(ARCHIVER) $(ARCHIVER_FLAGS) -r $@ $^
# Rule to release include files
$(INCLUDEDIR)/%.h: %.h
$(CP) $< $@
# Dependencies between sources and objects
$(OBJS): $(SRCS) | $(HEADERS)
# Named targets for use by others
include: $(RELEASE_HEADERS)
includes: include
libs: $(LIB) banner
objs: $(OBJS)
# Helper targets
clean:
$(RM) -f $(LIB) $(OBJS) $(RELEASE_HEADERS)
banner:
echo "Building $(CORENAME)"
.PHONY: clean include objs libs includes banner

View File

@@ -0,0 +1,281 @@
// ==============================================================
// Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
// Tool Version Limit: 2025.05
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
// Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
//
// ==============================================================
/***************************** Include Files *********************************/
#include "xgame_of_life_step.h"
/************************** Function Implementation *************************/
#ifndef __linux__
int XGame_of_life_step_CfgInitialize(XGame_of_life_step *InstancePtr, XGame_of_life_step_Config *ConfigPtr) {
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(ConfigPtr != NULL);
InstancePtr->Axilites_BaseAddress = ConfigPtr->Axilites_BaseAddress;
InstancePtr->IsReady = XIL_COMPONENT_IS_READY;
return XST_SUCCESS;
}
#endif
void XGame_of_life_step_Start(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_AP_CTRL) & 0x80;
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_AP_CTRL, Data | 0x01);
}
u32 XGame_of_life_step_IsDone(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_AP_CTRL);
return (Data >> 1) & 0x1;
}
u32 XGame_of_life_step_IsIdle(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_AP_CTRL);
return (Data >> 2) & 0x1;
}
u32 XGame_of_life_step_IsReady(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_AP_CTRL);
// check ap_start to see if the pcore is ready for next input
return !(Data & 0x1);
}
void XGame_of_life_step_EnableAutoRestart(XGame_of_life_step *InstancePtr) {
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_AP_CTRL, 0x80);
}
void XGame_of_life_step_DisableAutoRestart(XGame_of_life_step *InstancePtr) {
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_AP_CTRL, 0);
}
void XGame_of_life_step_Set_in_words_0(XGame_of_life_step *InstancePtr, u32 Data) {
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_0_DATA, Data);
}
u32 XGame_of_life_step_Get_in_words_0(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_0_DATA);
return Data;
}
void XGame_of_life_step_Set_in_words_1(XGame_of_life_step *InstancePtr, u32 Data) {
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_1_DATA, Data);
}
u32 XGame_of_life_step_Get_in_words_1(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_1_DATA);
return Data;
}
void XGame_of_life_step_Set_in_words_2(XGame_of_life_step *InstancePtr, u32 Data) {
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_2_DATA, Data);
}
u32 XGame_of_life_step_Get_in_words_2(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_2_DATA);
return Data;
}
void XGame_of_life_step_Set_in_words_3(XGame_of_life_step *InstancePtr, u32 Data) {
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_3_DATA, Data);
}
u32 XGame_of_life_step_Get_in_words_3(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_3_DATA);
return Data;
}
u32 XGame_of_life_step_Get_out_words_0(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_0_DATA);
return Data;
}
u32 XGame_of_life_step_Get_out_words_0_vld(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_0_CTRL);
return Data & 0x1;
}
u32 XGame_of_life_step_Get_out_words_1(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_1_DATA);
return Data;
}
u32 XGame_of_life_step_Get_out_words_1_vld(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_1_CTRL);
return Data & 0x1;
}
u32 XGame_of_life_step_Get_out_words_2(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_2_DATA);
return Data;
}
u32 XGame_of_life_step_Get_out_words_2_vld(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_2_CTRL);
return Data & 0x1;
}
u32 XGame_of_life_step_Get_out_words_3(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_3_DATA);
return Data;
}
u32 XGame_of_life_step_Get_out_words_3_vld(XGame_of_life_step *InstancePtr) {
u32 Data;
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Data = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_3_CTRL);
return Data & 0x1;
}
void XGame_of_life_step_InterruptGlobalEnable(XGame_of_life_step *InstancePtr) {
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_GIE, 1);
}
void XGame_of_life_step_InterruptGlobalDisable(XGame_of_life_step *InstancePtr) {
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_GIE, 0);
}
void XGame_of_life_step_InterruptEnable(XGame_of_life_step *InstancePtr, u32 Mask) {
u32 Register;
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Register = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IER);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IER, Register | Mask);
}
void XGame_of_life_step_InterruptDisable(XGame_of_life_step *InstancePtr, u32 Mask) {
u32 Register;
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Register = XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IER);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IER, Register & (~Mask));
}
void XGame_of_life_step_InterruptClear(XGame_of_life_step *InstancePtr, u32 Mask) {
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
XGame_of_life_step_WriteReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_ISR, Mask);
}
u32 XGame_of_life_step_InterruptGetEnabled(XGame_of_life_step *InstancePtr) {
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
return XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_IER);
}
u32 XGame_of_life_step_InterruptGetStatus(XGame_of_life_step *InstancePtr) {
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
return XGame_of_life_step_ReadReg(InstancePtr->Axilites_BaseAddress, XGAME_OF_LIFE_STEP_AXILITES_ADDR_ISR);
}

View File

@@ -0,0 +1,131 @@
// ==============================================================
// Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
// Tool Version Limit: 2025.05
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
// Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
//
// ==============================================================
#ifndef XGAME_OF_LIFE_STEP_H
#define XGAME_OF_LIFE_STEP_H
#ifdef __cplusplus
extern "C" {
#endif
/***************************** Include Files *********************************/
#ifndef __linux__
#include "xil_types.h"
#include "xil_assert.h"
#include "xstatus.h"
#include "xil_io.h"
#else
#include <stdint.h>
#include <assert.h>
#include <dirent.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <unistd.h>
#include <stddef.h>
#endif
#include "xgame_of_life_step_hw.h"
/**************************** Type Definitions ******************************/
#ifdef __linux__
typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef uint64_t u64;
#else
typedef struct {
#ifdef SDT
char *Name;
#else
u16 DeviceId;
#endif
u64 Axilites_BaseAddress;
} XGame_of_life_step_Config;
#endif
typedef struct {
u64 Axilites_BaseAddress;
u32 IsReady;
} XGame_of_life_step;
typedef u32 word_type;
/***************** Macros (Inline Functions) Definitions *********************/
#ifndef __linux__
#define XGame_of_life_step_WriteReg(BaseAddress, RegOffset, Data) \
Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data))
#define XGame_of_life_step_ReadReg(BaseAddress, RegOffset) \
Xil_In32((BaseAddress) + (RegOffset))
#else
#define XGame_of_life_step_WriteReg(BaseAddress, RegOffset, Data) \
*(volatile u32*)((BaseAddress) + (RegOffset)) = (u32)(Data)
#define XGame_of_life_step_ReadReg(BaseAddress, RegOffset) \
*(volatile u32*)((BaseAddress) + (RegOffset))
#define Xil_AssertVoid(expr) assert(expr)
#define Xil_AssertNonvoid(expr) assert(expr)
#define XST_SUCCESS 0
#define XST_DEVICE_NOT_FOUND 2
#define XST_OPEN_DEVICE_FAILED 3
#define XIL_COMPONENT_IS_READY 1
#endif
/************************** Function Prototypes *****************************/
#ifndef __linux__
#ifdef SDT
int XGame_of_life_step_Initialize(XGame_of_life_step *InstancePtr, UINTPTR BaseAddress);
XGame_of_life_step_Config* XGame_of_life_step_LookupConfig(UINTPTR BaseAddress);
#else
int XGame_of_life_step_Initialize(XGame_of_life_step *InstancePtr, u16 DeviceId);
XGame_of_life_step_Config* XGame_of_life_step_LookupConfig(u16 DeviceId);
#endif
int XGame_of_life_step_CfgInitialize(XGame_of_life_step *InstancePtr, XGame_of_life_step_Config *ConfigPtr);
#else
int XGame_of_life_step_Initialize(XGame_of_life_step *InstancePtr, const char* InstanceName);
int XGame_of_life_step_Release(XGame_of_life_step *InstancePtr);
#endif
void XGame_of_life_step_Start(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_IsDone(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_IsIdle(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_IsReady(XGame_of_life_step *InstancePtr);
void XGame_of_life_step_EnableAutoRestart(XGame_of_life_step *InstancePtr);
void XGame_of_life_step_DisableAutoRestart(XGame_of_life_step *InstancePtr);
void XGame_of_life_step_Set_in_words_0(XGame_of_life_step *InstancePtr, u32 Data);
u32 XGame_of_life_step_Get_in_words_0(XGame_of_life_step *InstancePtr);
void XGame_of_life_step_Set_in_words_1(XGame_of_life_step *InstancePtr, u32 Data);
u32 XGame_of_life_step_Get_in_words_1(XGame_of_life_step *InstancePtr);
void XGame_of_life_step_Set_in_words_2(XGame_of_life_step *InstancePtr, u32 Data);
u32 XGame_of_life_step_Get_in_words_2(XGame_of_life_step *InstancePtr);
void XGame_of_life_step_Set_in_words_3(XGame_of_life_step *InstancePtr, u32 Data);
u32 XGame_of_life_step_Get_in_words_3(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_Get_out_words_0(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_Get_out_words_0_vld(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_Get_out_words_1(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_Get_out_words_1_vld(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_Get_out_words_2(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_Get_out_words_2_vld(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_Get_out_words_3(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_Get_out_words_3_vld(XGame_of_life_step *InstancePtr);
void XGame_of_life_step_InterruptGlobalEnable(XGame_of_life_step *InstancePtr);
void XGame_of_life_step_InterruptGlobalDisable(XGame_of_life_step *InstancePtr);
void XGame_of_life_step_InterruptEnable(XGame_of_life_step *InstancePtr, u32 Mask);
void XGame_of_life_step_InterruptDisable(XGame_of_life_step *InstancePtr, u32 Mask);
void XGame_of_life_step_InterruptClear(XGame_of_life_step *InstancePtr, u32 Mask);
u32 XGame_of_life_step_InterruptGetEnabled(XGame_of_life_step *InstancePtr);
u32 XGame_of_life_step_InterruptGetStatus(XGame_of_life_step *InstancePtr);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,86 @@
// ==============================================================
// Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
// Tool Version Limit: 2025.05
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
// Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
//
// ==============================================================
// AXILiteS
// 0x00 : Control signals
// bit 0 - ap_start (Read/Write/COH)
// bit 1 - ap_done (Read/COR)
// bit 2 - ap_idle (Read)
// bit 3 - ap_ready (Read/COR)
// bit 7 - auto_restart (Read/Write)
// bit 9 - interrupt (Read)
// others - reserved
// 0x04 : Global Interrupt Enable Register
// bit 0 - Global Interrupt Enable (Read/Write)
// others - reserved
// 0x08 : IP Interrupt Enable Register (Read/Write)
// bit 0 - enable ap_done interrupt (Read/Write)
// bit 1 - enable ap_ready interrupt (Read/Write)
// others - reserved
// 0x0c : IP Interrupt Status Register (Read/TOW)
// bit 0 - ap_done (Read/TOW)
// bit 1 - ap_ready (Read/TOW)
// others - reserved
// 0x10 : Data signal of in_words_0
// bit 31~0 - in_words_0[31:0] (Read/Write)
// 0x14 : reserved
// 0x18 : Data signal of in_words_1
// bit 31~0 - in_words_1[31:0] (Read/Write)
// 0x1c : reserved
// 0x20 : Data signal of in_words_2
// bit 31~0 - in_words_2[31:0] (Read/Write)
// 0x24 : reserved
// 0x28 : Data signal of in_words_3
// bit 31~0 - in_words_3[31:0] (Read/Write)
// 0x2c : reserved
// 0x30 : Data signal of out_words_0
// bit 31~0 - out_words_0[31:0] (Read)
// 0x34 : Control signal of out_words_0
// bit 0 - out_words_0_ap_vld (Read/COR)
// others - reserved
// 0x40 : Data signal of out_words_1
// bit 31~0 - out_words_1[31:0] (Read)
// 0x44 : Control signal of out_words_1
// bit 0 - out_words_1_ap_vld (Read/COR)
// others - reserved
// 0x50 : Data signal of out_words_2
// bit 31~0 - out_words_2[31:0] (Read)
// 0x54 : Control signal of out_words_2
// bit 0 - out_words_2_ap_vld (Read/COR)
// others - reserved
// 0x60 : Data signal of out_words_3
// bit 31~0 - out_words_3[31:0] (Read)
// 0x64 : Control signal of out_words_3
// bit 0 - out_words_3_ap_vld (Read/COR)
// others - reserved
// (SC = Self Clear, COR = Clear on Read, TOW = Toggle on Write, COH = Clear on Handshake)
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_AP_CTRL 0x00
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_GIE 0x04
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_IER 0x08
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_ISR 0x0c
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_0_DATA 0x10
#define XGAME_OF_LIFE_STEP_AXILITES_BITS_IN_WORDS_0_DATA 32
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_1_DATA 0x18
#define XGAME_OF_LIFE_STEP_AXILITES_BITS_IN_WORDS_1_DATA 32
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_2_DATA 0x20
#define XGAME_OF_LIFE_STEP_AXILITES_BITS_IN_WORDS_2_DATA 32
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_IN_WORDS_3_DATA 0x28
#define XGAME_OF_LIFE_STEP_AXILITES_BITS_IN_WORDS_3_DATA 32
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_0_DATA 0x30
#define XGAME_OF_LIFE_STEP_AXILITES_BITS_OUT_WORDS_0_DATA 32
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_0_CTRL 0x34
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_1_DATA 0x40
#define XGAME_OF_LIFE_STEP_AXILITES_BITS_OUT_WORDS_1_DATA 32
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_1_CTRL 0x44
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_2_DATA 0x50
#define XGAME_OF_LIFE_STEP_AXILITES_BITS_OUT_WORDS_2_DATA 32
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_2_CTRL 0x54
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_3_DATA 0x60
#define XGAME_OF_LIFE_STEP_AXILITES_BITS_OUT_WORDS_3_DATA 32
#define XGAME_OF_LIFE_STEP_AXILITES_ADDR_OUT_WORDS_3_CTRL 0x64

View File

@@ -0,0 +1,150 @@
// ==============================================================
// Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
// Tool Version Limit: 2025.05
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
// Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
//
// ==============================================================
#ifdef __linux__
/***************************** Include Files *********************************/
#include "xgame_of_life_step.h"
/***************** Macros (Inline Functions) Definitions *********************/
#define MAX_UIO_PATH_SIZE 256
#define MAX_UIO_NAME_SIZE 64
#define MAX_UIO_MAPS 5
#define UIO_INVALID_ADDR 0
/**************************** Type Definitions ******************************/
typedef struct {
u64 addr;
u32 size;
} XGame_of_life_step_uio_map;
typedef struct {
int uio_fd;
int uio_num;
char name[ MAX_UIO_NAME_SIZE ];
char version[ MAX_UIO_NAME_SIZE ];
XGame_of_life_step_uio_map maps[ MAX_UIO_MAPS ];
} XGame_of_life_step_uio_info;
/***************** Variable Definitions **************************************/
static XGame_of_life_step_uio_info uio_info;
/************************** Function Implementation *************************/
static int line_from_file(char* filename, char* linebuf) {
char* s;
int i;
FILE* fp = fopen(filename, "r");
if (!fp) return -1;
s = fgets(linebuf, MAX_UIO_NAME_SIZE, fp);
fclose(fp);
if (!s) return -2;
for (i=0; (*s)&&(i<MAX_UIO_NAME_SIZE); i++) {
if (*s == '\n') *s = 0;
s++;
}
return 0;
}
static int uio_info_read_name(XGame_of_life_step_uio_info* info) {
char file[ MAX_UIO_PATH_SIZE ];
sprintf(file, "/sys/class/uio/uio%d/name", info->uio_num);
return line_from_file(file, info->name);
}
static int uio_info_read_version(XGame_of_life_step_uio_info* info) {
char file[ MAX_UIO_PATH_SIZE ];
sprintf(file, "/sys/class/uio/uio%d/version", info->uio_num);
return line_from_file(file, info->version);
}
static int uio_info_read_map_addr(XGame_of_life_step_uio_info* info, int n) {
int ret;
char file[ MAX_UIO_PATH_SIZE ];
info->maps[n].addr = UIO_INVALID_ADDR;
sprintf(file, "/sys/class/uio/uio%d/maps/map%d/addr", info->uio_num, n);
FILE* fp = fopen(file, "r");
if (!fp) return -1;
ret = fscanf(fp, "0x%x", &info->maps[n].addr);
fclose(fp);
if (ret < 0) return -2;
return 0;
}
static int uio_info_read_map_size(XGame_of_life_step_uio_info* info, int n) {
int ret;
char file[ MAX_UIO_PATH_SIZE ];
sprintf(file, "/sys/class/uio/uio%d/maps/map%d/size", info->uio_num, n);
FILE* fp = fopen(file, "r");
if (!fp) return -1;
ret = fscanf(fp, "0x%x", &info->maps[n].size);
fclose(fp);
if (ret < 0) return -2;
return 0;
}
int XGame_of_life_step_Initialize(XGame_of_life_step *InstancePtr, const char* InstanceName) {
XGame_of_life_step_uio_info *InfoPtr = &uio_info;
struct dirent **namelist;
int i, n;
char* s;
char file[ MAX_UIO_PATH_SIZE ];
char name[ MAX_UIO_NAME_SIZE ];
int flag = 0;
assert(InstancePtr != NULL);
n = scandir("/sys/class/uio", &namelist, 0, alphasort);
if (n < 0) return XST_DEVICE_NOT_FOUND;
for (i = 0; i < n; i++) {
strcpy(file, "/sys/class/uio/");
strcat(file, namelist[i]->d_name);
strcat(file, "/name");
if ((line_from_file(file, name) == 0) && (strcmp(name, InstanceName) == 0)) {
flag = 1;
s = namelist[i]->d_name;
s += 3; // "uio"
InfoPtr->uio_num = atoi(s);
break;
}
}
if (flag == 0) return XST_DEVICE_NOT_FOUND;
uio_info_read_name(InfoPtr);
uio_info_read_version(InfoPtr);
for (n = 0; n < MAX_UIO_MAPS; ++n) {
uio_info_read_map_addr(InfoPtr, n);
uio_info_read_map_size(InfoPtr, n);
}
sprintf(file, "/dev/uio%d", InfoPtr->uio_num);
if ((InfoPtr->uio_fd = open(file, O_RDWR)) < 0) {
return XST_OPEN_DEVICE_FAILED;
}
// NOTE: slave interface 'Axilites' should be mapped to uioX/map0
InstancePtr->Axilites_BaseAddress = (u64)mmap(NULL, InfoPtr->maps[0].size, PROT_READ|PROT_WRITE, MAP_SHARED, InfoPtr->uio_fd, 0 * getpagesize());
assert(InstancePtr->Axilites_BaseAddress);
InstancePtr->IsReady = XIL_COMPONENT_IS_READY;
return XST_SUCCESS;
}
int XGame_of_life_step_Release(XGame_of_life_step *InstancePtr) {
XGame_of_life_step_uio_info *InfoPtr = &uio_info;
assert(InstancePtr != NULL);
assert(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
munmap((void*)InstancePtr->Axilites_BaseAddress, InfoPtr->maps[0].size);
close(InfoPtr->uio_fd);
return XST_SUCCESS;
}
#endif

View File

@@ -0,0 +1,79 @@
// ==============================================================
// Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2025.1 (64-bit)
// Tool Version Limit: 2025.05
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
// Copyright 2022-2025 Advanced Micro Devices, Inc. All Rights Reserved.
//
// ==============================================================
#ifndef __linux__
#include "xstatus.h"
#ifdef SDT
#include "xparameters.h"
#endif
#include "xgame_of_life_step.h"
extern XGame_of_life_step_Config XGame_of_life_step_ConfigTable[];
#ifdef SDT
XGame_of_life_step_Config *XGame_of_life_step_LookupConfig(UINTPTR BaseAddress) {
XGame_of_life_step_Config *ConfigPtr = NULL;
int Index;
for (Index = (u32)0x0; XGame_of_life_step_ConfigTable[Index].Name != NULL; Index++) {
if (!BaseAddress || XGame_of_life_step_ConfigTable[Index].Axilites_BaseAddress == BaseAddress) {
ConfigPtr = &XGame_of_life_step_ConfigTable[Index];
break;
}
}
return ConfigPtr;
}
int XGame_of_life_step_Initialize(XGame_of_life_step *InstancePtr, UINTPTR BaseAddress) {
XGame_of_life_step_Config *ConfigPtr;
Xil_AssertNonvoid(InstancePtr != NULL);
ConfigPtr = XGame_of_life_step_LookupConfig(BaseAddress);
if (ConfigPtr == NULL) {
InstancePtr->IsReady = 0;
return (XST_DEVICE_NOT_FOUND);
}
return XGame_of_life_step_CfgInitialize(InstancePtr, ConfigPtr);
}
#else
XGame_of_life_step_Config *XGame_of_life_step_LookupConfig(u16 DeviceId) {
XGame_of_life_step_Config *ConfigPtr = NULL;
int Index;
for (Index = 0; Index < XPAR_XGAME_OF_LIFE_STEP_NUM_INSTANCES; Index++) {
if (XGame_of_life_step_ConfigTable[Index].DeviceId == DeviceId) {
ConfigPtr = &XGame_of_life_step_ConfigTable[Index];
break;
}
}
return ConfigPtr;
}
int XGame_of_life_step_Initialize(XGame_of_life_step *InstancePtr, u16 DeviceId) {
XGame_of_life_step_Config *ConfigPtr;
Xil_AssertNonvoid(InstancePtr != NULL);
ConfigPtr = XGame_of_life_step_LookupConfig(DeviceId);
if (ConfigPtr == NULL) {
InstancePtr->IsReady = 0;
return (XST_DEVICE_NOT_FOUND);
}
return XGame_of_life_step_CfgInitialize(InstancePtr, ConfigPtr);
}
#endif
#endif

View File

@@ -0,0 +1,90 @@
<xilinx:hls_fe_msgs>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="directive:1:9" msg_body="HLS pragma dump">
<args ARG_PragmaContext="directive" ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaOptions="name=game_of_life_step" ARG_PragmaType="top" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:6:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaOptions="variable=in_words dim=1 type=complete" ARG_PragmaType="array_partition" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:7:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaOptions="variable=out_words dim=1 type=complete" ARG_PragmaType="array_partition" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:9:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaOptions="s_axilite port = in_words bundle = AXILiteS" ARG_PragmaType="interface" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:10:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaOptions="s_axilite port = out_words bundle = AXILiteS" ARG_PragmaType="interface" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:11:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaOptions="s_axilite port = return bundle = AXILiteS" ARG_PragmaType="interface" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:15:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaOptions="variable=current_grid dim=0 type=complete" ARG_PragmaType="array_partition" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:19:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaOptions="variable=next_grid dim=0 type=complete" ARG_PragmaType="array_partition" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:28:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaType="unroll" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:40:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaType="unroll" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:44:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaType="unroll" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:51:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaType="unroll" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:55:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaType="unroll" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:81:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaOptions="variable=packed_words dim=1 type=complete" ARG_PragmaType="array_partition" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:85:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaType="unroll" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:91:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaType="unroll" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_VERBOSE_DUMP" msg_id="207-5471" msg_severity="WARNING" msg_loc="gameoflife.cpp:101:9" msg_body="HLS pragma dump">
<args ARG_PragmaFunction="game_of_life_step" ARG_PragmaIsValid="1" ARG_PragmaType="unroll" ClangWarningOption="dump-hls-pragmas"/>
</msg>
<msg msg_groups="PRAGMA_UNROLL" msg_id="214-186" msg_severity="INFO" msg_loc="gameoflife.cpp:5:0" msg_body="Unrolling loop 'VITIS_LOOP_100_2' (gameoflife.cpp:100:23) in function 'game_of_life_step' completely with a factor of 4">
<args Factor="4" LoopLoc="gameoflife.cpp:100:23" LoopName="VITIS_LOOP_100_2"/>
</msg>
<msg msg_groups="PRAGMA_UNROLL" msg_id="214-186" msg_severity="INFO" msg_loc="gameoflife.cpp:5:0" msg_body="Unrolling loop 'pack_direct' (gameoflife.cpp:90:5) in function 'game_of_life_step' completely with a factor of 100">
<args Factor="100" LoopLoc="gameoflife.cpp:90:5" LoopName="pack_direct"/>
</msg>
<msg msg_groups="PRAGMA_UNROLL" msg_id="214-186" msg_severity="INFO" msg_loc="gameoflife.cpp:5:0" msg_body="Unrolling loop 'VITIS_LOOP_84_1' (gameoflife.cpp:84:19) in function 'game_of_life_step' completely with a factor of 4">
<args Factor="4" LoopLoc="gameoflife.cpp:84:19" LoopName="VITIS_LOOP_84_1"/>
</msg>
<msg msg_groups="PRAGMA_UNROLL" msg_id="214-186" msg_severity="INFO" msg_loc="gameoflife.cpp:5:0" msg_body="Unrolling loop 'row_loop' (gameoflife.cpp:39:5) in function 'game_of_life_step' completely with a factor of 10">
<args Factor="10" LoopLoc="gameoflife.cpp:39:5" LoopName="row_loop"/>
</msg>
<msg msg_groups="PRAGMA_UNROLL" msg_id="214-186" msg_severity="INFO" msg_loc="gameoflife.cpp:5:0" msg_body="Unrolling loop 'column_loop' (gameoflife.cpp:43:9) in function 'game_of_life_step' completely with a factor of 10">
<args Factor="10" LoopLoc="gameoflife.cpp:43:9" LoopName="column_loop"/>
</msg>
<msg msg_groups="PRAGMA_UNROLL" msg_id="214-186" msg_severity="INFO" msg_loc="gameoflife.cpp:5:0" msg_body="Unrolling loop 'delta_row_loop' (gameoflife.cpp:50:13) in function 'game_of_life_step' completely with a factor of 3">
<args Factor="3" LoopLoc="gameoflife.cpp:50:13" LoopName="delta_row_loop"/>
</msg>
<msg msg_groups="PRAGMA_UNROLL" msg_id="214-186" msg_severity="INFO" msg_loc="gameoflife.cpp:5:0" msg_body="Unrolling loop 'delta_col_loop' (gameoflife.cpp:54:17) in function 'game_of_life_step' completely with a factor of 3">
<args Factor="3" LoopLoc="gameoflife.cpp:54:17" LoopName="delta_col_loop"/>
</msg>
<msg msg_groups="PRAGMA_UNROLL" msg_id="214-186" msg_severity="INFO" msg_loc="gameoflife.cpp:5:0" msg_body="Unrolling loop 'unpack_loop' (gameoflife.cpp:27:5) in function 'game_of_life_step' completely with a factor of 100">
<args Factor="100" LoopLoc="gameoflife.cpp:27:5" LoopName="unpack_loop"/>
</msg>
<msg msg_groups="PRAGMA_MISC" msg_id="214-248" msg_severity="INFO" msg_loc="gameoflife.cpp:14:13" msg_body="Applying array_partition to 'current_grid': Complete partitioning on dimension 1. Complete partitioning on dimension 2.">
<args Dim="islist 1 2" Mode="islist Complete Complete" UOName="current_grid"/>
</msg>
<msg msg_groups="PRAGMA_MISC" msg_id="214-248" msg_severity="INFO" msg_loc="gameoflife.cpp:18:13" msg_body="Applying array_partition to 'next_grid': Complete partitioning on dimension 1. Complete partitioning on dimension 2.">
<args Dim="islist 1 2" Mode="islist Complete Complete" UOName="next_grid"/>
</msg>
<msg msg_groups="PRAGMA_MISC" msg_id="214-248" msg_severity="INFO" msg_loc="gameoflife.cpp:5:0" msg_body="Applying array_partition to 'in_words': Complete partitioning on dimension 1.">
<args Dim="1" Mode="Complete" UOName="in_words"/>
</msg>
<msg msg_groups="PRAGMA_MISC" msg_id="214-248" msg_severity="INFO" msg_loc="gameoflife.cpp:5:0" msg_body="Applying array_partition to 'out_words': Complete partitioning on dimension 1.">
<args Dim="1" Mode="Complete" UOName="out_words"/>
</msg>
</xilinx:hls_fe_msgs>

View File

@@ -0,0 +1,44 @@
<pragmas>
<pragma file="gameoflife.cpp" line="101" pragmaType="unroll" parentfunction="game_of_life_step" factor="-1" skip_exit_check="0"/>
<pragma file="gameoflife.cpp" line="91" pragmaType="unroll" parentfunction="game_of_life_step" factor="-1" skip_exit_check="0"/>
<pragma file="gameoflife.cpp" line="85" pragmaType="unroll" parentfunction="game_of_life_step" factor="-1" skip_exit_check="0"/>
<pragma file="gameoflife.cpp" line="40" pragmaType="unroll" parentfunction="game_of_life_step" factor="-1" skip_exit_check="0"/>
<pragma file="gameoflife.cpp" line="44" pragmaType="unroll" parentfunction="game_of_life_step" factor="-1" skip_exit_check="0"/>
<pragma file="gameoflife.cpp" line="51" pragmaType="unroll" parentfunction="game_of_life_step" factor="-1" skip_exit_check="0"/>
<pragma file="gameoflife.cpp" line="55" pragmaType="unroll" parentfunction="game_of_life_step" factor="-1" skip_exit_check="0"/>
<pragma file="gameoflife.cpp" line="28" pragmaType="unroll" parentfunction="game_of_life_step" factor="-1" skip_exit_check="0"/>
<pragma file="gameoflife.cpp" line="6" pragmaType="array_partition" parentfunction="game_of_life_step" dim="1" factor="0" mode="complete" dynamic="0" variable="in_words"/>
<pragma file="gameoflife.cpp" line="7" pragmaType="array_partition" parentfunction="game_of_life_step" dim="1" factor="0" mode="complete" dynamic="0" variable="out_words"/>
<pragma file="gameoflife.cpp" line="9" pragmaType="interface" parentfunction="game_of_life_step" mode="s_axilite" port="in_words" bundle="AXILiteS" offset="-1" name="" clock="" impl="" register="0"/>
<pragma file="gameoflife.cpp" line="10" pragmaType="interface" parentfunction="game_of_life_step" mode="s_axilite" port="out_words" bundle="AXILiteS" offset="-1" name="" clock="" impl="" register="0"/>
<pragma file="gameoflife.cpp" line="11" pragmaType="interface" parentfunction="game_of_life_step" mode="s_axilite" port="" bundle="AXILiteS" offset="-1" name="" clock="" impl="" register="0"/>
<pragma file="gameoflife.cpp" line="15" pragmaType="array_partition" parentfunction="game_of_life_step" dim="0" factor="0" mode="complete" dynamic="0" variable="current_grid"/>
<pragma file="gameoflife.cpp" line="19" pragmaType="array_partition" parentfunction="game_of_life_step" dim="0" factor="0" mode="complete" dynamic="0" variable="next_grid"/>
<pragma file="gameoflife.cpp" line="81" pragmaType="array_partition" parentfunction="game_of_life_step" dim="1" factor="0" mode="complete" dynamic="0" variable="packed_words"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_uint<4>::ap_uint(int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_bit_ref<32, false>& ap_bit_ref<32, false>::operator=<1, false>(ap_int_base<1, false> const&)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_int_base<32, false>::operator unsigned long long() const" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="checkOverflowBaseC" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_bit_ref<32, false>::ap_bit_ref(ap_int_base<32, false>*, int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_int_base<32, false>::ap_int_base(int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="checkOverflowBaseC" off="0" region="0" recursive="0"/>
<pragma file="/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/common/technology/autopilot/etc/ap_common.h" line="542" pragmaType="inline" parentfunction="ssdm_int<32, false>::ssdm_int(unsigned int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_int_base<32, true>::ap_int_base(int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="bool ap_int_base<4, false>::operator==<32, true>(ap_int_base<32, true> const&) const" off="0" region="0" recursive="0"/>
<pragma file="/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/common/technology/autopilot/etc/ap_common.h" line="534" pragmaType="inline" parentfunction="ssdm_int<32, true>::ssdm_int(int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_int_base<4, false>::ap_int_base(int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="checkOverflowBaseC" off="0" region="0" recursive="0"/>
<pragma file="/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/common/technology/autopilot/etc/ap_common.h" line="542" pragmaType="inline" parentfunction="_ZN8ssdm_intILi4ELb0EEC2EDq4_j" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_int_base<1, false>::ap_int_base(unsigned int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_int_base<1, false>::operator unsigned long long() const" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="bool operator==<4, false>(ap_int_base<4, false> const&, int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_uint<1>::ap_uint(bool)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_uint<32>::ap_uint(int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_int_base<32, false>::operator[](int)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="checkOverflowBaseC" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_bit_ref<32, false>::operator=(unsigned long long)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_int_base<1, false>::ap_int_base(bool)" off="0" region="0" recursive="0"/>
<pragma file="/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis/common/technology/autopilot/etc/ap_common.h" line="542" pragmaType="inline" parentfunction="_ZN8ssdm_intILi1ELb0EEC2EDq1_j" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_int_base<4, false>& ap_int_base<4, false>::operator+=<1, false>(ap_int_base<1, false> const&)" off="0" region="0" recursive="0"/>
<pragma file="" line="0" pragmaType="inline" parentfunction="ap_uint<1>::ap_uint(unsigned int)" off="0" region="0" recursive="0"/>
</pragmas>

View File

@@ -0,0 +1,6 @@
set RtlHierarchyInfo {[
{"ID" : "0", "Level" : "0", "Path" : "`AUTOTB_DUT_INST"},
{"ID" : "1", "Level" : "1", "Path" : "`AUTOTB_DUT_INST.AXILiteS_s_axi_U"}]}
set DependenceCheckSize 0

View File

@@ -0,0 +1,78 @@
# This script segment is generated automatically by AutoPilot
set axilite_register_dict [dict create]
set port_AXILiteS {
in_words_0 {
dir I
width 32
depth 1
mode ap_none
offset 16
offset_end 23
}
in_words_1 {
dir I
width 32
depth 1
mode ap_none
offset 24
offset_end 31
}
in_words_2 {
dir I
width 32
depth 1
mode ap_none
offset 32
offset_end 39
}
in_words_3 {
dir I
width 32
depth 1
mode ap_none
offset 40
offset_end 47
}
out_words_0 {
dir O
width 32
depth 1
mode ap_vld
offset 48
offset_end 55
}
out_words_1 {
dir O
width 32
depth 1
mode ap_vld
offset 64
offset_end 71
}
out_words_2 {
dir O
width 32
depth 1
mode ap_vld
offset 80
offset_end 87
}
out_words_3 {
dir O
width 32
depth 1
mode ap_vld
offset 96
offset_end 103
}
ap_start { }
ap_done { }
ap_ready { }
ap_idle { }
interrupt {
}
}
dict set axilite_register_dict AXILiteS $port_AXILiteS

View File

@@ -0,0 +1,160 @@
# This script segment is generated automatically by AutoPilot
# clear list
if {${::AESL::PGuard_autoexp_gen}} {
cg_default_interface_gen_dc_begin
cg_default_interface_gen_bundle_begin
AESL_LIB_XILADAPTER::native_axis_begin
}
set axilite_register_dict [dict create]
set port_AXILiteS {
in_words_0 {
dir I
width 32
depth 1
mode ap_none
offset 16
offset_end 23
}
in_words_1 {
dir I
width 32
depth 1
mode ap_none
offset 24
offset_end 31
}
in_words_2 {
dir I
width 32
depth 1
mode ap_none
offset 32
offset_end 39
}
in_words_3 {
dir I
width 32
depth 1
mode ap_none
offset 40
offset_end 47
}
out_words_0 {
dir O
width 32
depth 1
mode ap_vld
offset 48
offset_end 55
}
out_words_1 {
dir O
width 32
depth 1
mode ap_vld
offset 64
offset_end 71
}
out_words_2 {
dir O
width 32
depth 1
mode ap_vld
offset 80
offset_end 87
}
out_words_3 {
dir O
width 32
depth 1
mode ap_vld
offset 96
offset_end 103
}
ap_start { }
ap_done { }
ap_ready { }
ap_idle { }
interrupt {
}
}
dict set axilite_register_dict AXILiteS $port_AXILiteS
# Native S_AXILite:
if {${::AESL::PGuard_simmodel_gen}} {
if {[info proc ::AESL_LIB_XILADAPTER::s_axilite_gen] == "::AESL_LIB_XILADAPTER::s_axilite_gen"} {
eval "::AESL_LIB_XILADAPTER::s_axilite_gen { \
id 1 \
corename game_of_life_step_AXILiteS_axilite \
name game_of_life_step_AXILiteS_s_axi \
ports {$port_AXILiteS} \
op interface \
interrupt_clear_mode TOW \
interrupt_trigger_type default \
is_flushable 0 \
is_datawidth64 0 \
is_addrwidth64 1 \
enable_mem_auto_widen 1 \
} "
} else {
puts "@W \[IMPL-110\] Cannot find AXI Lite interface model in the library. Ignored generation of AXI Lite interface for 'AXILiteS'"
}
}
if {${::AESL::PGuard_rtl_comp_handler}} {
::AP::rtl_comp_handler game_of_life_step_AXILiteS_s_axi BINDTYPE interface TYPE interface_s_axilite
}
# Adapter definition:
set PortName ap_clk
set DataWd 1
if {${::AESL::PGuard_autoexp_gen}} {
if {[info proc cg_default_interface_gen_clock] == "cg_default_interface_gen_clock"} {
eval "cg_default_interface_gen_clock { \
id -1 \
name ${PortName} \
reset_level 0 \
sync_rst true \
corename apif_ap_clk \
data_wd ${DataWd} \
op interface \
}"
} else {
puts "@W \[IMPL-113\] Cannot find bus interface model in the library. Ignored generation of bus interface for '${PortName}'"
}
}
# Adapter definition:
set PortName ap_rst_n
set DataWd 1
if {${::AESL::PGuard_autoexp_gen}} {
if {[info proc cg_default_interface_gen_reset] == "cg_default_interface_gen_reset"} {
eval "cg_default_interface_gen_reset { \
id -2 \
name ${PortName} \
reset_level 0 \
sync_rst true \
corename apif_ap_rst_n \
data_wd ${DataWd} \
op interface \
}"
} else {
puts "@W \[IMPL-114\] Cannot find bus interface model in the library. Ignored generation of bus interface for '${PortName}'"
}
}
# merge
if {${::AESL::PGuard_autoexp_gen}} {
cg_default_interface_gen_dc_end
cg_default_interface_gen_bundle_end
AESL_LIB_XILADAPTER::native_axis_end
}

View File

@@ -0,0 +1,12 @@
set clock_constraint { \
name clk \
module game_of_life_step \
port ap_clk \
period 10 \
uncertainty 2.7 \
}
set all_path {}
set false_path {}

View File

@@ -0,0 +1,282 @@
<profile>
<RTLDesignHierarchy>
<TopModule>
<ModuleName>game_of_life_step</ModuleName>
</TopModule>
</RTLDesignHierarchy>
<ModuleInformation>
<Module>
<Name>game_of_life_step</Name>
<PerformanceEstimates>
<SummaryOfTimingAnalysis>
<TargetClockPeriod>10.00</TargetClockPeriod>
<ClockUncertainty>2.70</ClockUncertainty>
<EstimatedClockPeriod>6.928</EstimatedClockPeriod>
</SummaryOfTimingAnalysis>
<SummaryOfOverallLatency>
<Best-caseLatency>1</Best-caseLatency>
<Average-caseLatency>1</Average-caseLatency>
<Worst-caseLatency>1</Worst-caseLatency>
<Best-caseRealTimeLatency>10.000 ns</Best-caseRealTimeLatency>
<Average-caseRealTimeLatency>10.000 ns</Average-caseRealTimeLatency>
<Worst-caseRealTimeLatency>10.000 ns</Worst-caseRealTimeLatency>
<PipelineInitiationInterval>2</PipelineInitiationInterval>
<PipelineType>no</PipelineType>
<PerformancePragma>-</PerformancePragma>
</SummaryOfOverallLatency>
<SummaryOfViolations>
<IssueType>-</IssueType>
<ViolationType>-</ViolationType>
<SourceLocation>gameoflife.cpp:5</SourceLocation>
</SummaryOfViolations>
</PerformanceEstimates>
<AreaEstimates>
<Resources>
<BRAM_18K>0</BRAM_18K>
<AVAIL_BRAM>120</AVAIL_BRAM>
<UTIL_BRAM>0</UTIL_BRAM>
<FF>844</FF>
<AVAIL_FF>35200</AVAIL_FF>
<UTIL_FF>2</UTIL_FF>
<LUT>9696</LUT>
<AVAIL_LUT>17600</AVAIL_LUT>
<UTIL_LUT>55</UTIL_LUT>
<DSP>0</DSP>
<AVAIL_DSP>80</AVAIL_DSP>
<UTIL_DSP>0</UTIL_DSP>
<URAM>0</URAM>
<AVAIL_URAM>0</AVAIL_URAM>
<UTIL_URAM>0</UTIL_URAM>
</Resources>
</AreaEstimates>
<InterfaceSummary>
<RtlPorts>
<name>s_axi_AXILiteS_AWVALID</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>in</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_AWREADY</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>out</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_AWADDR</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>in</Dir>
<Bits>7</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_WVALID</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>in</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_WREADY</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>out</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_WDATA</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>in</Dir>
<Bits>32</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_WSTRB</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>in</Dir>
<Bits>4</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_ARVALID</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>in</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_ARREADY</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>out</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_ARADDR</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>in</Dir>
<Bits>7</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_RVALID</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>out</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_RREADY</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>in</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_RDATA</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>out</Dir>
<Bits>32</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_RRESP</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>out</Dir>
<Bits>2</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_BVALID</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>out</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_BREADY</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>in</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>s_axi_AXILiteS_BRESP</name>
<Object>AXILiteS</Object>
<Type>pointer</Type>
<IOProtocol>s_axi</IOProtocol>
<Dir>out</Dir>
<Bits>2</Bits>
<Attribute>unknown</Attribute>
<CType>int</CType>
<HasCtrl>1</HasCtrl>
</RtlPorts>
<RtlPorts>
<name>ap_clk</name>
<Object>game_of_life_step</Object>
<Type>return value</Type>
<Scope></Scope>
<IOProtocol>ap_ctrl_hs</IOProtocol>
<IOConfig></IOConfig>
<Dir>in</Dir>
<Bits>1</Bits>
<Attribute>control</Attribute>
</RtlPorts>
<RtlPorts>
<name>ap_rst_n</name>
<Object>game_of_life_step</Object>
<Type>return value</Type>
<Scope></Scope>
<IOProtocol>ap_ctrl_hs</IOProtocol>
<IOConfig></IOConfig>
<Dir>in</Dir>
<Bits>1</Bits>
<Attribute>control</Attribute>
</RtlPorts>
<RtlPorts>
<name>interrupt</name>
<Object>game_of_life_step</Object>
<Type>return value</Type>
<Scope></Scope>
<IOProtocol>ap_ctrl_hs</IOProtocol>
<IOConfig></IOConfig>
<Dir>out</Dir>
<Bits>1</Bits>
<Attribute>unknown</Attribute>
</RtlPorts>
</InterfaceSummary>
</Module>
</ModuleInformation>
<FIFOInformation>
</FIFOInformation>
</profile>

View File

@@ -0,0 +1,19 @@
{
"version": "1.0",
"modules": {
"game_of_life_step": {
"proto_instances": {
"/AESL_inst_game_of_life_step_activity": {
"interface": "xilinx.com:interface:internal_hls_dataflow:1.0",
"ports": {
"AP_CLK": { "actual": "ap_clk"},
"AP_DONE": { "actual": "ap_done"},
"AP_READY": { "actual": "ap_ready"},
"AP_RESET": { "actual": "ap_rst_n"},
"AP_START": { "actual": "ap_start"}
}
}
}
}
}
}

View File

@@ -0,0 +1,114 @@
set lang "C"
set moduleName "game_of_life_step"
set moduleIsExternC "1"
set rawDecl ""
set globalVariable ""
set PortList ""
set PortName "in_words_0"
set BitWidth "32"
set ArrayOpt ""
set Const "0"
set Volatile "1"
set Pointer "1"
set Reference "0"
set Dims [list 0]
set Interface "wire"
set DataType "void"
set Port [list $PortName $Interface $DataType $Pointer $Dims $Const $Volatile $ArrayOpt]
lappend PortList $Port
set PortName "in_words_1"
set BitWidth "32"
set ArrayOpt ""
set Const "0"
set Volatile "1"
set Pointer "1"
set Reference "0"
set Dims [list 0]
set Interface "wire"
set DataType "void"
set Port [list $PortName $Interface $DataType $Pointer $Dims $Const $Volatile $ArrayOpt]
lappend PortList $Port
set PortName "in_words_2"
set BitWidth "32"
set ArrayOpt ""
set Const "0"
set Volatile "1"
set Pointer "1"
set Reference "0"
set Dims [list 0]
set Interface "wire"
set DataType "void"
set Port [list $PortName $Interface $DataType $Pointer $Dims $Const $Volatile $ArrayOpt]
lappend PortList $Port
set PortName "in_words_3"
set BitWidth "32"
set ArrayOpt ""
set Const "0"
set Volatile "1"
set Pointer "1"
set Reference "0"
set Dims [list 0]
set Interface "wire"
set DataType "void"
set Port [list $PortName $Interface $DataType $Pointer $Dims $Const $Volatile $ArrayOpt]
lappend PortList $Port
set PortName "out_words_0"
set BitWidth "32"
set ArrayOpt ""
set Const "0"
set Volatile "1"
set Pointer "1"
set Reference "0"
set Dims [list 0]
set Interface "wire"
set DataType "void"
set Port [list $PortName $Interface $DataType $Pointer $Dims $Const $Volatile $ArrayOpt]
lappend PortList $Port
set PortName "out_words_1"
set BitWidth "32"
set ArrayOpt ""
set Const "0"
set Volatile "1"
set Pointer "1"
set Reference "0"
set Dims [list 0]
set Interface "wire"
set DataType "void"
set Port [list $PortName $Interface $DataType $Pointer $Dims $Const $Volatile $ArrayOpt]
lappend PortList $Port
set PortName "out_words_2"
set BitWidth "32"
set ArrayOpt ""
set Const "0"
set Volatile "1"
set Pointer "1"
set Reference "0"
set Dims [list 0]
set Interface "wire"
set DataType "void"
set Port [list $PortName $Interface $DataType $Pointer $Dims $Const $Volatile $ArrayOpt]
lappend PortList $Port
set PortName "out_words_3"
set BitWidth "32"
set ArrayOpt ""
set Const "0"
set Volatile "1"
set Pointer "1"
set Reference "0"
set Dims [list 0]
set Interface "wire"
set DataType "void"
set Port [list $PortName $Interface $DataType $Pointer $Dims $Const $Volatile $ArrayOpt]
lappend PortList $Port
set globalAPint ""
set returnAPInt ""
set hasCPPAPInt 0
set argAPInt ""
set hasCPPAPFix 0
set hasSCFix 0
set hasCBool 0
set hasCPPComplex 0
set isTemplateTop 0
set hasHalf 0
set dataPackList ""
set module [list $moduleName $PortList $rawDecl $argAPInt $returnAPInt $dataPackList]

View File

@@ -0,0 +1,129 @@
set moduleName game_of_life_step
set isTopModule 1
set isCombinational 0
set isDatapathOnly 0
set isPipelined 0
set isPipelined_legacy 0
set pipeline_type none
set FunctionProtocol ap_ctrl_hs
set isOneStateSeq 0
set ProfileFlag 0
set StallSigGenFlag 0
set isEnableWaveformDebug 1
set hasInterrupt 0
set DLRegFirstOffset 0
set DLRegItemOffset 0
set svuvm_can_support 1
set cdfgNum 2
set C_modelName {game_of_life_step}
set C_modelType { void 0 }
set ap_memory_interface_dict [dict create]
set C_modelArgList {
{ in_words_0 int 32 regular {axi_slave 0} }
{ in_words_1 int 32 regular {axi_slave 0} }
{ in_words_2 int 32 regular {axi_slave 0} }
{ in_words_3 int 32 regular {axi_slave 0} }
{ out_words_0 int 32 regular {axi_slave 1} }
{ out_words_1 int 32 regular {axi_slave 1} }
{ out_words_2 int 32 regular {axi_slave 1} }
{ out_words_3 int 32 regular {axi_slave 1} }
}
set hasAXIMCache 0
set l_AXIML2Cache [list]
set AXIMCacheInstDict [dict create]
set C_modelArgMapList {[
{ "Name" : "in_words_0", "interface" : "axi_slave", "bundle":"AXILiteS","type":"ap_none","bitwidth" : 32, "direction" : "READONLY", "offset" : {"in":16}, "offset_end" : {"in":23}} ,
{ "Name" : "in_words_1", "interface" : "axi_slave", "bundle":"AXILiteS","type":"ap_none","bitwidth" : 32, "direction" : "READONLY", "offset" : {"in":24}, "offset_end" : {"in":31}} ,
{ "Name" : "in_words_2", "interface" : "axi_slave", "bundle":"AXILiteS","type":"ap_none","bitwidth" : 32, "direction" : "READONLY", "offset" : {"in":32}, "offset_end" : {"in":39}} ,
{ "Name" : "in_words_3", "interface" : "axi_slave", "bundle":"AXILiteS","type":"ap_none","bitwidth" : 32, "direction" : "READONLY", "offset" : {"in":40}, "offset_end" : {"in":47}} ,
{ "Name" : "out_words_0", "interface" : "axi_slave", "bundle":"AXILiteS","type":"ap_vld","bitwidth" : 32, "direction" : "WRITEONLY", "offset" : {"out":48}, "offset_end" : {"out":55}} ,
{ "Name" : "out_words_1", "interface" : "axi_slave", "bundle":"AXILiteS","type":"ap_vld","bitwidth" : 32, "direction" : "WRITEONLY", "offset" : {"out":64}, "offset_end" : {"out":71}} ,
{ "Name" : "out_words_2", "interface" : "axi_slave", "bundle":"AXILiteS","type":"ap_vld","bitwidth" : 32, "direction" : "WRITEONLY", "offset" : {"out":80}, "offset_end" : {"out":87}} ,
{ "Name" : "out_words_3", "interface" : "axi_slave", "bundle":"AXILiteS","type":"ap_vld","bitwidth" : 32, "direction" : "WRITEONLY", "offset" : {"out":96}, "offset_end" : {"out":103}} ]}
# RTL Port declarations:
set portNum 20
set portList {
{ ap_clk sc_in sc_logic 1 clock -1 }
{ ap_rst_n sc_in sc_logic 1 reset -1 active_low_sync }
{ s_axi_AXILiteS_AWVALID sc_in sc_logic 1 signal -1 }
{ s_axi_AXILiteS_AWREADY sc_out sc_logic 1 signal -1 }
{ s_axi_AXILiteS_AWADDR sc_in sc_lv 7 signal -1 }
{ s_axi_AXILiteS_WVALID sc_in sc_logic 1 signal -1 }
{ s_axi_AXILiteS_WREADY sc_out sc_logic 1 signal -1 }
{ s_axi_AXILiteS_WDATA sc_in sc_lv 32 signal -1 }
{ s_axi_AXILiteS_WSTRB sc_in sc_lv 4 signal -1 }
{ s_axi_AXILiteS_ARVALID sc_in sc_logic 1 signal -1 }
{ s_axi_AXILiteS_ARREADY sc_out sc_logic 1 signal -1 }
{ s_axi_AXILiteS_ARADDR sc_in sc_lv 7 signal -1 }
{ s_axi_AXILiteS_RVALID sc_out sc_logic 1 signal -1 }
{ s_axi_AXILiteS_RREADY sc_in sc_logic 1 signal -1 }
{ s_axi_AXILiteS_RDATA sc_out sc_lv 32 signal -1 }
{ s_axi_AXILiteS_RRESP sc_out sc_lv 2 signal -1 }
{ s_axi_AXILiteS_BVALID sc_out sc_logic 1 signal -1 }
{ s_axi_AXILiteS_BREADY sc_in sc_logic 1 signal -1 }
{ s_axi_AXILiteS_BRESP sc_out sc_lv 2 signal -1 }
{ interrupt sc_out sc_logic 1 signal -1 }
}
set NewPortList {[
{ "name": "s_axi_AXILiteS_AWADDR", "direction": "in", "datatype": "sc_lv", "bitwidth":7, "type": "signal", "bundle":{"name": "AXILiteS", "role": "AWADDR" },"address":[{"name":"game_of_life_step","role":"start","value":"0","valid_bit":"0"},{"name":"game_of_life_step","role":"continue","value":"0","valid_bit":"4"},{"name":"game_of_life_step","role":"auto_start","value":"0","valid_bit":"7"},{"name":"in_words_0","role":"data","value":"16"},{"name":"in_words_1","role":"data","value":"24"},{"name":"in_words_2","role":"data","value":"32"},{"name":"in_words_3","role":"data","value":"40"}] },
{ "name": "s_axi_AXILiteS_AWVALID", "direction": "in", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "AWVALID" } },
{ "name": "s_axi_AXILiteS_AWREADY", "direction": "out", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "AWREADY" } },
{ "name": "s_axi_AXILiteS_WVALID", "direction": "in", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "WVALID" } },
{ "name": "s_axi_AXILiteS_WREADY", "direction": "out", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "WREADY" } },
{ "name": "s_axi_AXILiteS_WDATA", "direction": "in", "datatype": "sc_lv", "bitwidth":32, "type": "signal", "bundle":{"name": "AXILiteS", "role": "WDATA" } },
{ "name": "s_axi_AXILiteS_WSTRB", "direction": "in", "datatype": "sc_lv", "bitwidth":4, "type": "signal", "bundle":{"name": "AXILiteS", "role": "WSTRB" } },
{ "name": "s_axi_AXILiteS_ARADDR", "direction": "in", "datatype": "sc_lv", "bitwidth":7, "type": "signal", "bundle":{"name": "AXILiteS", "role": "ARADDR" },"address":[{"name":"game_of_life_step","role":"start","value":"0","valid_bit":"0"},{"name":"game_of_life_step","role":"done","value":"0","valid_bit":"1"},{"name":"game_of_life_step","role":"idle","value":"0","valid_bit":"2"},{"name":"game_of_life_step","role":"ready","value":"0","valid_bit":"3"},{"name":"game_of_life_step","role":"auto_start","value":"0","valid_bit":"7"},{"name":"out_words_0","role":"data","value":"48"}, {"name":"out_words_0","role":"valid","value":"52","valid_bit":"0"},{"name":"out_words_1","role":"data","value":"64"}, {"name":"out_words_1","role":"valid","value":"68","valid_bit":"0"},{"name":"out_words_2","role":"data","value":"80"}, {"name":"out_words_2","role":"valid","value":"84","valid_bit":"0"},{"name":"out_words_3","role":"data","value":"96"}, {"name":"out_words_3","role":"valid","value":"100","valid_bit":"0"}] },
{ "name": "s_axi_AXILiteS_ARVALID", "direction": "in", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "ARVALID" } },
{ "name": "s_axi_AXILiteS_ARREADY", "direction": "out", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "ARREADY" } },
{ "name": "s_axi_AXILiteS_RVALID", "direction": "out", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "RVALID" } },
{ "name": "s_axi_AXILiteS_RREADY", "direction": "in", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "RREADY" } },
{ "name": "s_axi_AXILiteS_RDATA", "direction": "out", "datatype": "sc_lv", "bitwidth":32, "type": "signal", "bundle":{"name": "AXILiteS", "role": "RDATA" } },
{ "name": "s_axi_AXILiteS_RRESP", "direction": "out", "datatype": "sc_lv", "bitwidth":2, "type": "signal", "bundle":{"name": "AXILiteS", "role": "RRESP" } },
{ "name": "s_axi_AXILiteS_BVALID", "direction": "out", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "BVALID" } },
{ "name": "s_axi_AXILiteS_BREADY", "direction": "in", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "BREADY" } },
{ "name": "s_axi_AXILiteS_BRESP", "direction": "out", "datatype": "sc_lv", "bitwidth":2, "type": "signal", "bundle":{"name": "AXILiteS", "role": "BRESP" } },
{ "name": "interrupt", "direction": "out", "datatype": "sc_logic", "bitwidth":1, "type": "signal", "bundle":{"name": "AXILiteS", "role": "interrupt" } },
{ "name": "ap_clk", "direction": "in", "datatype": "sc_logic", "bitwidth":1, "type": "clock", "bundle":{"name": "ap_clk", "role": "default" }} ,
{ "name": "ap_rst_n", "direction": "in", "datatype": "sc_logic", "bitwidth":1, "type": "reset", "bundle":{"name": "ap_rst_n", "role": "default" }} ]}
set ArgLastReadFirstWriteLatency {
game_of_life_step {
in_words_0 {Type I LastRead 0 FirstWrite -1}
in_words_1 {Type I LastRead 0 FirstWrite -1}
in_words_2 {Type I LastRead 0 FirstWrite -1}
in_words_3 {Type I LastRead 0 FirstWrite -1}
out_words_0 {Type O LastRead -1 FirstWrite 1}
out_words_1 {Type O LastRead -1 FirstWrite 1}
out_words_2 {Type O LastRead -1 FirstWrite 1}
out_words_3 {Type O LastRead -1 FirstWrite 1}}}
set hasDtUnsupportedChannel 0
set PerformanceInfo {[
{"Name" : "Latency", "Min" : "1", "Max" : "1"}
, {"Name" : "Interval", "Min" : "2", "Max" : "2"}
]}
set PipelineEnableSignalInfo {[
]}
set Spec2ImplPortList {
}
set maxi_interface_dict [dict create]
# RTL port scheduling information:
set fifoSchedulingInfoList {
}
# RTL bus port read request latency information:
set busReadReqLatencyList {
}
# RTL bus port write response latency information:
set busWriteResLatencyList {
}
# RTL array port load latency information:
set memoryLoadLatencyList {
}

Some files were not shown because too many files have changed in this diff Show More