für das folgende Codefragment in VerilogWarum ist dies in Verilog nicht richtig?
////////////////////////////
reg[0:7] fat[0:511]= {'hF8, 'hFF, 'hFF , 'hFF , 'hFF , 'hFF , 'hFF , 'hFF , hFF , 'hFF , 'h06 , 'h00 , 'h07 , 'h00 , 'h08 ...); // resembles fat 1 region on a sd card, read using hex editor.
reg[0:32] fat_counter2 ;
reg[0:31] music_stop_add[0:1];
reg music_counter = 0;
task stop_address;
begin
if((fat[fat_counter2] == 'hFF)&& (fat[fat_counter2+1] == 'hFF) && (b==0))begin
music_stop_add[music_counter] <= ((((fat_counter2/2)-2)*64)+509)*512; //
b <= 1;
end else begin
fat_counter2 <= fat_counter2 + 1;
end
always @ (posedge clk_100mhz) begin
repeat(256)begin
stop_address;
end
end
////////////////////////////////
wenn i das Fett Arrayelement für einen Wert, der gleich zu suchen ‚hFF, das oben unter Verwendung des Ausdrucks (FAT [fat_counter2] ==‘ HFF) berechnet sie nie wahr . aber wenn ich es ändere (fat [counter2]! = 'hFF), wird es für jeden Wert wahr.
irgendwelche Vorschläge, was hier passiert?
music_stop_add [Musikzähler] < = ((((fat_counter2/2) -2) * 64) +509) * 512; // konvertiert den Fat-Counter-Wert in der Sektor-Startnummer in Bytes, die ich füttere, um den SD-Karten-Controller zu lesen.
Ich lese über die Initialisierung von Fett mit Ausdruck = '{}; aber es zeigt Fehler wegen '
mit vivado Arbeits 2.016,3 Nexys zu programmieren 4
Ihr Snippet kompiliert nicht. http://stackoverflow.com/help/mcve – toolic