Asi trapna chyba - verilog HDL

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Čtvrtek Březen 26 17:08:18 CET 2015


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



---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150326/d0815fac/attachment.html>
------------- další část ---------------
A non-text attachment was scrubbed...
Name: jbcdciie.png
Type: image/png
Size: 4060 bytes
Desc: [žádný popis není k dispozici]
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150326/d0815fac/attachment.png>
------------- další část ---------------
A non-text attachment was scrubbed...
Name: diehfigf.png
Type: image/png
Size: 5741 bytes
Desc: [žádný popis není k dispozici]
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150326/d0815fac/attachment-0001.png>


Další informace o konferenci Hw-list