Compare commits

..

1 Commits

Author SHA1 Message Date
Egor Savkin 26a2bfacf5 Add grabber module
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-10-12 16:44:36 +08:00
2 changed files with 10 additions and 14 deletions

View File

@ -107,7 +107,6 @@ class GTPBootstrapClock(Module):
class GenericStandalone(SoCCore): class GenericStandalone(SoCCore):
def __init__(self, description, acpki=False): def __init__(self, description, acpki=False):
self.acpki = acpki self.acpki = acpki
clk_freq = description["rtio_frequency"]
platform = kasli_soc.Platform() platform = kasli_soc.Platform()
platform.toolchain.bitstream_commands.extend([ platform.toolchain.bitstream_commands.extend([
@ -140,7 +139,7 @@ class GenericStandalone(SoCCore):
] ]
fix_serdes_timing_path(platform) fix_serdes_timing_path(platform)
self.submodules.bootstrap = GTPBootstrapClock(self.platform, description["rtio_frequency"]) self.submodules.bootstrap = GTPBootstrapClock(self.platform, description["rtio_frequency"])
self.config["CLOCK_FREQUENCY"] = int(clk_freq) self.config["CLOCK_FREQUENCY"] = int(description["rtio_frequency"])
self.submodules.sys_crg = zynq_clocking.SYSCRG(self.platform, self.ps7, clk_synth_se_buf) self.submodules.sys_crg = zynq_clocking.SYSCRG(self.platform, self.ps7, clk_synth_se_buf)
platform.add_false_path_constraints( platform.add_false_path_constraints(
@ -231,7 +230,7 @@ class GenericMaster(SoCCore):
pads=data_pads, pads=data_pads,
clk_freq=clk_freq) clk_freq=clk_freq)
self.csr_devices.append("gt_drtio") self.csr_devices.append("gt_drtio")
self.config["CLOCK_FREQUENCY"] = int(clk_freq) self.config["CLOCK_FREQUENCY"] = int(description["rtio_frequency"])
txout_buf = Signal() txout_buf = Signal()
gtx0 = self.gt_drtio.gtxs[0] gtx0 = self.gt_drtio.gtxs[0]

View File

@ -11,10 +11,13 @@ extern crate alloc;
#[cfg(feature = "target_kasli_soc")] #[cfg(feature = "target_kasli_soc")]
use core::cell::RefCell; use core::cell::RefCell;
use embedded_hal::blocking::delay::DelayMs;
use ksupport; use ksupport;
use libasync::task; use libasync::task;
#[cfg(has_drtio_eem)] #[cfg(has_drtio_eem)]
use libboard_artiq::drtio_eem; use libboard_artiq::drtio_eem;
#[cfg(has_grabber)]
use libboard_artiq::grabber;
#[cfg(feature = "target_kasli_soc")] #[cfg(feature = "target_kasli_soc")]
use libboard_artiq::io_expander; use libboard_artiq::io_expander;
use libboard_artiq::{identifier_read, logger, pl}; use libboard_artiq::{identifier_read, logger, pl};
@ -58,16 +61,10 @@ async fn io_expanders_service(
} }
#[cfg(has_grabber)] #[cfg(has_grabber)]
mod grabber { async fn grabber_thread(mut timer: GlobalTimer) {
use libboard_artiq::grabber; loop {
use libboard_zynq::time::Milliseconds; grabber::tick();
use libasync::{delay}; timer.delay_ms(200);
pub async fn grabber_thread(mut timer: GlobalTimer) {
let mut countdown = timer.countdown();
loop {
grabber::tick();
delay(&mut countdown, Milliseconds(200)).await;
}
} }
} }
@ -129,7 +126,7 @@ pub fn main_core0() {
drtio_eem::init(&mut timer, &cfg); drtio_eem::init(&mut timer, &cfg);
#[cfg(has_grabber)] #[cfg(has_grabber)]
task::spawn(grabber::grabber_thread(timer)); task::spawn(grabber_thread(timer));
task::spawn(ksupport::report_async_rtio_errors()); task::spawn(ksupport::report_async_rtio_errors());