[J-core] Fun with nvc.

Rob Landley rob at landley.net
Fri Jun 3 13:35:26 EDT 2016


On 06/02/2016 11:52 PM, D. Jeff Dionne wrote:
> On Jun 3, 2016, at 6:25, Rob Landley <rob at landley.net> wrote:
>>
>> Now that it more or less works (there are a bunch of asserts and
>> the timing is weird, but it passes its internal diagnostics and
>> runs the gdb stub),
> 
> There is one more thing: something causes the CPU to take more cycles.
> This is only slightly weird, it surely has something to do with memory
> access adding wait states.  It's an odd bug that would cause that!
> 
>> the next question is how to attach it to
>> yosys? (Again, discussed in the above message, but since Nick's been
>> traveling and Jeff's been busy with other stuff, I'm poking a bit
>> to see what the next steps would be.)
> 
> There are 2 (big picture) issues:
> 
> You need to walk the NVC syntax tree, and translate it into a yosys
> tree.  Or, more likely, code a thing to write out a syntax tree from
> nvc, and write a reader for yosys that reads that into yosys internal
> syntax tree.
> 
> The second issue is yosys trees look a little different than an nvc
> tree, with the yosys tree expected to be post elaboration (e.g. Post
> constant folding including evaluation of functions that result in
> constants, application of generics, instantiation of blocks...)
> 
> There is a mismatch between nvc and yosys about the structures.
> If you want constant folding, etc, including things like tables
> of sin() and cos() for DSP applications, or reading a files
> (like rom contents) into constants (which we do use some places),
> then obviously the vhdl code that evaluates these constants
> including file IO must run.   For NVC, that means you need the llvm
> generated binary to be executed, no?   This is a complication, and
> I don't yet understand enough about how nvc works to do that.

That last part sounds like a question for Nick. :)

>>
>> Alas, I don't have the Lattice board the resulting bitstream
>> would run on.
> 
> Ok, simple :)
> http://www.latticestore.com/searchresults/tabid/463/searchid/1/searchvalue/ice40hx1k-stick-evn/default.aspx
> 
> And/Or
> 
> http://www.latticestore.com/products/tabid/417/categoryid/59/productid/6117/searchid/1/searchvalue/ice40hx8k/default.aspx
> 
>> I should probably try to get the xilinx toolchain
>> to build that source blob for a numato board and see what would
>> be involved in porting the arduino tools to it.
> 
> Cheers,
> J.
> 

Rob


More information about the J-core mailing list