2021-05-09 by kbeckmann
These are my notes of how I interpret how the clock tree works in Caravel. It might be inaccurate.
caravel:| Program terminated with signal SIGSEGV, Segmentation fault. | |
| #0 0x0000561db819718a in std::vector<Yosys::hashlib::dict<Yosys::RTLIL::IdString, Yosys::RTLIL::Const, Yosys::hashlib::hash_ops<Yosys::RTLIL::IdString> >::entry_t, std::allocator<Yosys::hashlib::dict<Yosys::RTLIL::IdString, Yosys::RTLIL::Const, Yosys::hashlib::hash_ops<Yosys::RTLIL::IdString> >::entry_t> >::size (this=<optimized out>) | |
| at /usr/include/c++/10.2.0/bits/stl_vector.h:919 | |
| 919 { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } | |
| (gdb) bt | |
| #0 0x0000561db819718a in std::vector<Yosys::hashlib::dict<Yosys::RTLIL::IdString, Yosys::RTLIL::Const, Yosys::hashlib::hash_ops<Yosys::RTLIL::IdString> >::entry_t, std::allocator<Yosys::hashlib::dict<Yosys::RTLIL::IdString, Yosys::RTLIL::Const, Yosys::hashlib::hash_ops<Yosys::RTLIL::IdString> >::entry_t> >::size (this=<optimized out>) | |
| at /usr/include/c++/10.2.0/bits/stl_vector.h:919 | |
| #1 Yosys::hashlib::dict<Yosys::RTLIL::IdString, Yosys::RTLIL::Const, Yosys::hashlib::hash_ |
| from nmigen import * | |
| from nmigen._toolchain.yosys import * | |
| from nmigen.back.cxxrtl import rtlil | |
| import os, subprocess | |
| def _convert_rtlil_text(rtlil_text, black_boxes, verilog_boxes, *, src_loc_at=0): | |
| if black_boxes is not None: | |
| if not isinstance(black_boxes, dict): | |
| raise TypeError("CXXRTL black boxes must be a dictionary, not {!r}" |
| from nmigen import * | |
| from enum import IntEnum | |
| from nmigen.utils import bits_for | |
| class AccessFlags(IntEnum): | |
| R = 1 << 0 | |
| W = 1 << 1 | |
| RW = R | W |
| from nmigen import * | |
| from nmigen.build import * | |
| from nmigen_boards.tang_nano import TangNanoPlatform | |
| class Blinky(Elaboratable): | |
| def elaborate(self, platform): | |
| m = Module() | |
| platform.add_resources([ |
| from nmigen import * | |
| from nmigen.build import * | |
| import itertools | |
| from nmigen_boards.tang_nano import TangNanoPlatform | |
| class Blinky(Elaboratable): | |
| def elaborate(self, platform): | |
| m = Module() |
| import time | |
| import psutil | |
| import multiprocessing as mp | |
| from multiprocessing import Process | |
| def f(thread, duty, freq, q): | |
| p = psutil.Process() | |
| p.cpu_affinity([thread]) | |
| while True: |
| [NetDev] | |
| Name=bond1 | |
| Kind=bond | |
| [Bond] | |
| Mode=802.3ad | |
| MIIMonitorSec=1s | |
| LACPTransmitRate=fast | |
| UpDelaySec=2s | |
| DownDelaySec=8s |
| import sys | |
| import struct | |
| import binascii | |
| # See https://github.com/f4exb/sdrangel/tree/master/plugins/samplesource/filesource | |
| data = open(sys.argv[1], "rb").read() | |
| out = open(sys.argv[2], "wb") | |
| w = bytearray() |
| /* | |
| $ AFL_USE_ASAN=1 afl-clang-fast fuzzer.c -o fuzzer | |
| $ afl-launch -i in_dir -o out_dir -m none -n $(nproc --all) -- ./fuzzer @@ | |
| $ afl-whatsup -s out_dir | |
| */ | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #define BUF_SIZE 1024*1024 |