Posts

  • Sorting arrays in SystemVerilog

    Today, I ran across a problem where I had to compare two arrays, but the order did not matter. To further complicate things, each array was made up of structs.

  • SystemVerilog Sudoku Solver

    Sudoku is a logic-based counting game, where the objective is to fill a grid with numbers such that each column, row, and block contain each number exactly once. Normally, Sudoku uses a 9-by-9 grid, but variants exist of smaller and larger grid sizes.

  • Perl Objects

    The following post shows how I create objects in Perl. As with all things in Perl TMTOWTDI – this is just my preferred way.

  • AutoHotkey Always On Top

    This script will toggle whether a window will always be on top when the Ctrl + Space key is pressed. It will also display a ToolTip.

  • AutoHotkey Alt-Click Window Resize

    Similar to the AutoHotkey Alt-Click Window Drag post, I was used to resizing a window by pressing Alt + Right mouse button to resize a window.

  • AutoHotkey Alt-Click Window Drag

    AutoHotkey is an automation scripting language for Windows. It can be used to create macros and hotkeys, create autocorrect replacements, and even GUIs.

  • LSF Introduction

    IBM Spectrum LSF (load sharing facility) is software to distribute work across heterogeneous resources.

  • Delaying a signal by some number of clocks

    There can be many reasons for delaying a signal by some number of clocks – it could be to match a pipeline delay, or to form a synchronizer.

  • Reading an XLSX with Perl

    There have been many times where I needed to extract information from an Excel spreadsheet for use in other tools, such as SoC register maps, test cases, or even information from specification. For this, I go to Spreadsheet::XLSX. This Perl module provides functions for reading from an XLSX spreadsheet in Perl.

  • Perl Getopt::Long

    For Perl command line programs, Getopt::Long is the de facto standard. It is used to capture command line options for use within the program.

  • Perk/Tk

    Whenever I want to create a GUI, I normally go to Perl/Tk. This toolkit if full of widgets to make a full-fledged GUI.

  • Verilator

    Verilator is a Verilog simulator that translates synthesizable Verilog to C++ or SystemC. That translated code can then be compiled with a C++/SystemC testbench, and run in lieu of a commercial simulator.

  • Verilog-Perl

    I’ve come across numerous times where I needed to read in a Verilog file, and extract some features from it. For example, once I read in the top-level digital module and generated glitch checkers modules for each output port. Another time, I simply wanted to lint-check a generated module for obvious errors.

  • List Installed Perl Modules

    What Perl modules are installed for a given Perl installation? Here’s a neat one-liner from Stack Overflow.

  • SVN Color Diff

    Perhaps you wanted to view your differences between your local modifications in your working copy in an SVN repository. You’d use svn diff for that, obviously. But what if you wanted to make that better?

  • Verilog Plusargs

    In Verilog, plusargs can be used to change the behavior of a program without recompiling. This can be great if there are a lot of tests to run with the same testbench.

  • SystemVerilog Parse Function

    This function will parse through a string in, and separate out terms separated by separated, returning the resulting terms in the out array.

  • Jekyll Blog

    Jekyll is a fantastic site generator for blogging. In fact, this blog is powered by it.