- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Why is that sometimes, a register forgets to increment? Any causes for this? (at the attached picture, it the 'addr' should count up, but it didn't). Does a 100Mhz clock have something to do with it? Its strange
https://www.alteraforum.com/forum/attachment.php?attachmentid=8716Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Because some conditions occured that meant it didnt count?
Or is your sample clock different from the clock that clocks addr?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Because some conditions occured that meant it didnt count? Or is your sample clock different from the clock that clocks addr? --- Quote End --- I double check the signal tap data, and the condition is there.. its just that the 'addr' forgot to change.. :(
initial
begin
address <= 0;
chipselect <= 1'b1;
byteenable <= 2'b00;
reset <= 1'b1;
read <= 1'b1;
write <= 1'b1;
state <= wzero;
writedata <= 0;
end
parameter rzero=4'b0000, rone=4'b0001, rtwo=4'b0010, rthree=4'b0011, rfour=4'b0100, rfive=4'b0101;
parameter wzero=4'b1000, wone=4'b1001, wtwo=4'b1010, wthree=4'b1011, wfour=4'b1100, wfive=4'b1101, woneone=4'b1110;
always @(posedge ramclk)
begin
case (state)
wzero:
begin
address <= address + 0;
if(address == 999999)
lastread <= writedata;
if(address == 1000000)
state <= rzero;
else if(pclk)
begin
state <= wone;
write <= 1;
address <= address + 1'b1;
writedata <= writedata + 1;
end
else
state <= wzero;
end
wone:
begin
address <= address + 0;
state <= wtwo;
write <= 0;
end
wtwo:
begin
address <= address + 0;
if(pclk)
begin
state <= wthree;
write <= 1;
end
if(!pclk)
begin
state <= wzero;
write <= 1;
end
end
wthree:
begin
address <= address + 0;
if(!pclk)
begin
state <= wzero;
end
else
state <= wzero;
end
rzero:
begin
read <= 0;
address <= 999999;
state <= rone;
end
rone:
begin
read <= 1;
state <= rone;
end
default:
state <= wzero;
endcase
end

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page