[libre-riscv-dev] [Bug 178] first coriolis2 tutorial, workflow and "test project" page
    bugzilla-daemon at libre-riscv.org 
    bugzilla-daemon at libre-riscv.org
       
    Sun Feb 23 00:12:41 GMT 2020
    
    
  
http://bugs.libre-riscv.org/show_bug.cgi?id=178
--- Comment #73 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
okaaay, i have a sneaking suspicion i know what might be going on.
two things:
nmigen allows signals to be declared "zero width".  these
don't do anything, they don't get "actioned", and so on.
however they end up in the yosys output.
secondly: i fixed one of these, replacing it with a module
that assigns a constant to a Signal.  here's the yosys code:
module \sm3
  attribute \src
"/home/lkcl/ieee754fpu/src/ieee754/part_shift/part_shift_dynami
c.py:25"
  wire width 7 output 0 \mask
  wire width 1 $verilog_initial_trigger
  process $group_0
    assign \mask 7'0000000
    assign \mask 7'0000011
    assign $verilog_initial_trigger $verilog_initial_trigger
    sync init
      update $verilog_initial_trigger 1'0
  end
end
and here's the resultant vst:
entity sm3 is
  port ( vdd : linkage bit
       ; vss : linkage bit
       );
end sm3;
architecture structural of sm3 is
begin
end structural;
note how it's empty?  it also results in sm3.ap not being created.
further on, we end up with "EtesianEngine::toColoquinte() cannot manage
unplaced block, cell height is -2"
(because it's empty)
i also ran into this problem a number of times when i tried to cut out
code (for debugging purposes) by assigning a Const to an output Signal,
expecting the VHDL in that Cell to simply hard-set the output.
however it seems that the result is that no VHDL is generated at *all*.
-- 
You are receiving this mail because:
You are on the CC list for the bug.
    
    
More information about the libre-riscv-dev
mailing list