[Libre-soc-dev] PLL integration
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Thu May 27 10:30:59 BST 2021
On Thu, May 27, 2021 at 10:05 AM Jean-Paul Chaput <Jean-Paul.Chaput at lip6.fr>
wrote:
>
> Ha. No, I was meaning "in the rest of the test issuer"...
>
> The PLL may be one of the most safe part of the chip. It has been
> completely simulated at spice level (and proved ok). And Dimitri has
> a long experience in those kind of design.
>
which is fantastic to hear
> Now that I also have manually and one by one checked the connexions
> I'm pretty confident that it is working.
>
ok, so what i mean is: testing its connections in simulation is tricky
(needing to use a VBE model not the actual SPICE in e.g. verilator
simulations)
it's not Dimitri's work that is of concern, it's yosys handling of
blackboxes.
i currently have this in the output from the build:
o Protect external components not useds as RoutingPads.
o Running global routing.
o Back annotate global routing graph.
[ 0] nets:[ERROR] Diskstra::load(): Net
"core.subckt_12347_test_issuer.ti_coresync_clk" do not have a driver.
which, oink, i'm reviewing the...
ahhh, the wrapped PLL has had the outputs all turned into inputs:
component cmpt_wrappll
port ( clk_24_i : in bit
; clk_pll_o : in bit
; pll_test_o : in bit
; pll_vco_o : in bit
; clk_sel_i : in bit_vector(1 downto 0)
; vdd : linkage bit
; vss : linkage bit
);
end component;
this is despite the blackbox clearly saying they are outputs:
(* blackbox = 1 *)
module pll(ref , div_out_test, a0, a1, vco_test_ana, out);
input a0;
input a1;
output div_out_test;
output out;
input ref ;
output vco_test_ana;
endmodule
and in the verilog (libresoc.v) they are clearly outputs:
(* \nmigen.hierarchy = "test_issuer.wrappll" *)
(* generator = "nMigen" *)
module wrappll(clk_24_i, pll_test_o, pll_vco_o, clk_sel_i, clk_pll_o);
input clk_24_i;
output clk_pll_o;
input [1:0] clk_sel_i;
output pll_test_o;
output pll_vco_o;
pll real_pll (
.a0(clk_sel_i[0]),
.a1(clk_sel_i[1]),
.div_out_test(pll_test_o),
.out_v(clk_pll_o),
.\ref (clk_24_i),
.vco_test_ana(pll_vco_o)
);
endmodule
More information about the Libre-soc-dev
mailing list