FPGA OpenRISC (bylo Verilog a FPGA (bylo FPGA Altera a NIOS))

Jan Smrz jan.smrz na email.cz
Pondělí Únor 16 14:52:55 CET 2015


Podle toho, co popisujete jsou problemem zakmity na TCK pinu.
Privedeni TCK pres bezny pin neni problem, pokud stihate casovani. Pokud je 
zapotrebi, signal se pripoji na globalni rozvod hodin, ale zpozdeni cesty mezi 
pinem a vnitrnim globalnim bufrem muze byt nekdy moc velke. Pro pomale hodiny 
casto staci jen lokalni rozvod hodin.

Presamplovani vam pomohlo zrejme proto, ze zakmity na pinu jsou jen kratke a 
hodiny registru se zatim "netrefily" do zakmitu.
Pozn. pro prechod mezi domenami se doporucuje pouzit dvojnasobny registr. Moc se 
mi tohle reseni nelibi.


J.S.



On 02/16/2015 02:40 PM, Jaroslav Buchta wrote:
> Tak dneska s log. analyzatorem se situace vyjasnila, problem byl s hodinovym 
> signalem TCK/JTAG
> Ale potrebuju objasnit, proc...
>
> Signal se pouziva jako hodinovy, byl ale priveden pres bezny PIN - software 
> nijak neprotestoval.
> Kupodivu vsechno celkem fungovalo, az na posuvne registry pro cteni  - tam se 
> stav menil vetsinou s nabeznou ale i sestupnou hranou. Logicky je to 
> predpokladam spravne (prevzato):
>
>   always @ (posedge tck_i or posedge rst_i)
>      begin
>     if(rst_i)
>             data_out_shift_reg <= 32'h0;
>     else if(out_reg_ld_en)
>             data_out_shift_reg <= out_reg_data;
>     else if(out_reg_shift_en)
>             data_out_shift_reg <= {1'b0, data_out_shift_reg[31:1]};
>      end
>
> Na 100% pomohlo synchronizovat hodinovy signal intenim signalem z PLL - 
> nejdrive 50MHz, pak i 200MHz takto:
>
> always @(posedge syn_clk)
> begin
>   tck_int <= jt_clk;
> end
>
> Byla pricina v tom, ze na fyzickem vstupu dochazelo pri sestupne hrane k 
> zakmitu, nebo ve zpozdeni rozvodu internich hodin? To by ale po synchronizaci 
> snad bylo stejne?
> v sdc jsou vsechny signaly definovany jako hodiny
>
> create_clock -period 40.000 -name clk clk
> create_clock -period 20.000 -name jt_clk jt_clk
> create_clock -period 20.000 -name tck_int tck_int
> derive_pll_clocks
> derive_clock_uncertainty
>
>



Další informace o konferenci Hw-list