Hi Kyuhyun
Bpod records the time internally, and doesn't have a way to stream its clock to other devices.
Instead, it can send a TTL "sync" pulse to the other device at a known time. You can match the time of the event on both devices, to align Bpod events with the acquisition system's data stream.
The easiest way to send a sync pulse is using Bpod's configurable sync channel. From the Bpod console, select the wrench icon (Settings) and then the sync icon. You will see a UI with two drop menus. The first selects the channel to be used for sync (by default, none). The second selects when the logic pulses will be sent. You have two options:
Each_Trial (logic line goes high at time 0 when each trial begins, and low when the trial's last state ends)
Each_State (logic line switches levels with each state i.e. low-->high when entering state 1, high-->low when entering state 2...
I'm not sure which TDT device you're using, but most have BNC logic input channels - so the easiest thing would be to select one of Bpod's BNC [b]output channels, and use a BNC cable to connect the systems.
With a second BNC cable, you can use Bpod's BNC [b]input channels to make TDT start the trial - in state 1 of your state machine, wait for a BNC1_High event from TDT.
An example of this is provided in the repository, here.
I hope this helps!