Forum Discussion
Altera_Forum
Honored Contributor
14 years agohow to turn seconds into h:m:s???
for example:
"56783"seconds turn into the format of "h:m:s" is "15:46:23". I used the method of comparasion,i.e.confirm the hours first, 15*3600 < 56783 < 16*3600,so I confim the hour is 15. Then,comfirm the minutes is 46... But the question is that the "<" or ">" is rather delayed,a long path generated. So ,I want to ask a advice:can I find another way to realize the function ,not using the "<" and ">"? Thank U !7 Replies
- Altera_Forum
Honored Contributor
--- Quote Start --- We don't expect to use the "/=" ,it causes delay. when the value of seconds is big,it may need several clocks. --- Quote End --- There is no big value for seconds. Its counter goes 0 ~ 59. You count on clock edge every 1sec time. - Altera_Forum
Honored Contributor
ok
thank u a lot! - Altera_Forum
Honored Contributor
It is a comparator either way (= checks all bits, /= checks all bits). Any difference in implementation or length of paths is target/tool dependant
- Altera_Forum
Honored Contributor
We don't expect to use the "/=" ,it causes delay.
when the value of seconds is big,it may need several clocks. - Altera_Forum
Honored Contributor
In vhdl, you can run multiple counters on the 1 sec clock edge:
if(Seconds /= 59) then Seconds <= Seconds + 1; else Seconds <= (others => '0'); if(Minutes /= 59) then Minutes <= Minutes + 1; else Minutes <= (others => '0'); if(Hours /=23) then Hours <= Hours + 1; else Hours <= (others => '0'); end if; end if; end if; - Altera_Forum
Honored Contributor
verilog.......
- Altera_Forum
Honored Contributor
in what? what language?