Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20705 Discussions

how to turn seconds into h:m:s???

Altera_Forum
Honored Contributor II
1,124 Views

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&#65306;can I find another way to realize the function ,not using the "<" and ">"? 

Thank U !
0 Kudos
7 Replies
Altera_Forum
Honored Contributor II
294 Views

in what? what language?

0 Kudos
Altera_Forum
Honored Contributor II
294 Views

verilog.......

0 Kudos
Altera_Forum
Honored Contributor II
294 Views

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;
0 Kudos
Altera_Forum
Honored Contributor II
294 Views

We don't expect to use the "/=" ,it causes delay. 

when the value of seconds is big,it may need several clocks.
0 Kudos
Altera_Forum
Honored Contributor II
294 Views

It is a comparator either way (= checks all bits, /= checks all bits). Any difference in implementation or length of paths is target/tool dependant

0 Kudos
Altera_Forum
Honored Contributor II
294 Views

ok 

thank u a lot!
0 Kudos
Altera_Forum
Honored Contributor II
294 Views

 

--- 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.
0 Kudos
Reply