From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
Subject: Re: [libre-riscv-dev] Successful subscription
Date: Sun, 7 Jun 2020 01:27:02 +0100
Message-ID: <CAPweEDx=_zxrjbnU1qeCabFirCPViOCtwTakxU=6AxZ0LvTXUQ@mail.gmail.com> (raw)
In-Reply-To: <CAE_rhwY8Z3L_iO0Qu0qH6Uw4WnJH+whAjgLrBbY6CYMBmyTrqg@mail.gmail.com>
On Sun, Jun 7, 2020 at 1:01 AM Sanjay Menon <sanjayamenon.mec@gmail.com> wrote:
>
> Hi,
>
> I did finally manage to get myself subscribed to the mailing list.
hooray! :) bear in mind that this is considered a high-traffic list.
you may wish to look at setting up filters (gmail can do that) - in
particular i recommend creating a special folder for anything that
comes from the bugzilla libre-soc address.
> Thanks to a little help from Yehowshua.
>
> I would be checking out the nMigen tool.
robert baruch's tutorial is extremely good to get started, yehowshua
sent the link.
the main thing that you need to get your head round for nmigen is that
unlike MyHDL, you *use* python to construct an in-memory Abstract
Syntax Tree. this AST is then passed to a nmigen function, which
simply walks that AST and outputs yosys ILANG files (or verilog files,
if you ask it to).
MyHDL is a *language translator* (not a compiler) that actually takes
the actual python code and transliterates into VHDL. thus, in MyHDL,
you absolutely cannot use python exceptions, or many OO techniques,
because those concepts simply do not exist at the Gate Level, in
hardware.
in nmigen we are entirely at liberty to use the *full* capabilities of
python OO programming, and we do so extensively.
the closest that Verilog has to even the most basic capability that we
use all the time in nmigen: parameters in modules. we also pass
parameters to the class constructor (or a python function) which
changes the size of the array, or the width of the signals, and so on.
> As for my SHA256 IP, I currently have done 2 implementations of the same.
> 1. Using the Vivado HLS environment
> 2. Using Verilog
oh good. so you're used to working "indirectly", so to speak. that's
very good. that experience - writing in C i presume? - then comparing
the same implementation in Verilog - this will stand you in good stead
when working with nmigen.
when you follow robert baruch's tutorial, i recommend you also explore
generating verilog output from the examples, and have a look at what
is produced. it's... sort-of readable, and you will quickly get used
to seeing how there is a direct equivalence between the nmigen and
verilog.
> Currently working on an implementation of a SHA256 cracker using HLS.
nice :)
l.
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
prev parent reply index
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-07 0:01 Sanjay Menon
2020-06-07 0:27 ` Luke Kenneth Casson Leighton [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAPweEDx=_zxrjbnU1qeCabFirCPViOCtwTakxU=6AxZ0LvTXUQ@mail.gmail.com' \
--to=lkcl@lkcl.net \
--cc=libre-riscv-dev@lists.libre-riscv.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Libre RISC-V Mailing list Archives (accessible via public-inbox)
Archives are clonable: git clone --mirror https://inbox.libre-soc.org/libre-riscv-dev
Example config snippet for mirrors
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git