Asi trapna chyba - verilog HDL
Jan Smrz
jan.smrz na email.cz
Čtvrtek Březen 26 17:39:55 CET 2015
Nevidim, ze by se ldcntr jakkoliv inicializoval. Pri startu simulace bude mit
stav undefined a pak se odvolava na jeho predchozi hodnotu.
Spise se divim, ze s jinymi cisly to funguje.
J.S.
On 03/26/2015 05:08 PM, Jaroslav Buchta wrote:
> Narazil jsem na zahadu ktera je predpokladam zpusobena jen tim, ze mi neco
> nedochazi... Mam cast designu, kde inicializuji cas pameti a registr, je to
> jen pro ucely ladeni, tato cast je na konci textu vypsana.
>
> Hacek je v
> ldcntr <= ldcntr == 4'd15 ? ldcntr : ldcntr + 4'd1; // takto to
> nefunguje, projde to jen nektere stavy (asi 1/3) a celkove to v simulaci nefunguje
>
>
>
> Pokud je
> ldcntr <= ldcntr == 4'd14 ? ldcntr : ldcntr + 4'd1; // nebo 13, takto
> to funguje, projde vsechny stavy v simulaci dle ocekavani...
>
>
>
> Ma nekdo nejaky napad, v cem je chyba?
> Chapu, ze to syntezator optimalizuje a muze nefunkcni stavy vyhazet, ale
> jednak tady jsou funkcni i ty prodlevy a hlavne proc to se 14 funguje a s 15
> ne, co jsem sakra prehlidnul?
> -------------------------- Vypis inicializace --------------------------------
>
> reg [3:0] ldcntr;
> reg [7:0] regDevSel;
> reg [4:0] regRegSel;
> reg [31:0] regDo32;
> reg regDw32;
>
> assign devSelect = regDevSel;
> assign devRegSel = regRegSel;
> assign do32 = regDo32;
>
> always @(posedge clk)
> begin
> ldcntr <= ldcntr == 4'd15 ? ldcntr : ldcntr + 4'd1;
> dw32 <= 1'b0;
> case (ldcntr)
> 1: begin
> regDevSel <= 8'b00000001;
> regRegSel <= 5'd0;
> regDo32 <= 32'h80000000;
> dw32 <= 1'b1;
> end
> 2:;
> 3:;
> 4: begin
> regDevSel <= 8'b00000001;
> regRegSel <= 5'd16;
> regDo32 <= 32'hfff00010; // steps, speed [19:8]
> dw32 <= 1'b1;
> end
> 5: begin
> regDevSel <= 8'b00000001;
> regRegSel <= 5'd17;
> regDo32 <= 32'h00030003; // acc, dec steps
> dw32 <= 1'b1;
> end
> 6: begin
> regDevSel <= 8'b00000001;
> regRegSel <= 5'd18;
> regDo32 <= 32'h0000000; // M1,accl
> dw32 <= 1'b1;
> end
> 7: begin
> regDevSel <= 8'b00000001;
> regRegSel <= 5'd19;
> regDo32 <= 32'h01000000; // M2, acch
> dw32 <= 1'b1;
> end
> 8: begin
> regDevSel <= 8'b00000001;
> regRegSel <= 5'd20;
> regDo32 <= 32'h00000000; // M3, decl
> dw32 <= 1'b1;
> end
> 9: begin
> regDevSel <= 8'b00000001;
> regRegSel <= 5'd21;
> regDo32 <= 32'h03000000; // M4, dech
> dw32 <= 1'b1;
> end
> 10: begin
> regDevSel <= 8'b00000001;
> regRegSel <= 5'd22;
> regDo32 <= 32'h3f000000; // M5, speed [25:20]
> dw32 <= 1'b1;
> end
> 11: begin
> regDevSel <= 8'b00000001;
> regRegSel <= 5'd23;
> regDo32 <= 32'h1f000000; // M6, speed [31:26]
> dw32 <= 1'b1;
> end
> 12: begin
> regDevSel <= 8'b00000001;
> regRegSel <= 5'd0;
> regDo32 <= 32'h01000000; // start
> dw32 <= 1'b1;
> end
>
>
> endcase
>
>
>
>
> end
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150326/16f186dc/attachment-0001.html>
------------- další část ---------------
A non-text attachment was scrubbed...
Name: [žádný popis není k dispozici]
Type: image/png
Size: 4060 bytes
Desc: [žádný popis není k dispozici]
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150326/16f186dc/attachment-0002.png>
------------- další část ---------------
A non-text attachment was scrubbed...
Name: [žádný popis není k dispozici]
Type: image/png
Size: 5741 bytes
Desc: [žádný popis není k dispozici]
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150326/16f186dc/attachment-0003.png>
Další informace o konferenci Hw-list