forked from M-Labs/artiq-zynq
ident CSR demo
This commit is contained in:
parent
7607c48956
commit
506e537f77
|
@ -5,15 +5,31 @@ extern crate alloc;
|
||||||
|
|
||||||
use libboard_zynq::println;
|
use libboard_zynq::println;
|
||||||
use libsupport_zynq::ram;
|
use libsupport_zynq::ram;
|
||||||
|
use core::{cmp, str};
|
||||||
|
|
||||||
|
mod pl;
|
||||||
|
|
||||||
|
fn identifier_read(buf: &mut [u8]) -> &str {
|
||||||
|
unsafe {
|
||||||
|
pl::csr::identifier::address_write(0);
|
||||||
|
let len = pl::csr::identifier::data_read();
|
||||||
|
let len = cmp::min(len, buf.len() as u8);
|
||||||
|
for i in 0..len {
|
||||||
|
pl::csr::identifier::address_write(1 + i);
|
||||||
|
buf[i as usize] = pl::csr::identifier::data_read();
|
||||||
|
}
|
||||||
|
str::from_utf8_unchecked(&buf[..len as usize])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub fn main_core0() {
|
pub fn main_core0() {
|
||||||
println!("hello world 000");
|
println!("[CORE0] hello world {}", identifier_read(&mut [0; 64]));
|
||||||
loop {}
|
loop {}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub fn main_core1() {
|
pub fn main_core1() {
|
||||||
println!("hello world 111");
|
println!("[CORE1] hello world {}", identifier_read(&mut [0; 64]));
|
||||||
loop {}
|
loop {}
|
||||||
}
|
}
|
||||||
|
|
5
zc706.py
5
zc706.py
|
@ -1,6 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
import os
|
||||||
|
|
||||||
from migen import *
|
from migen import *
|
||||||
|
|
||||||
|
@ -18,7 +19,7 @@ class ZC706(SoCCore):
|
||||||
platform.toolchain.bitstream_commands.extend([
|
platform.toolchain.bitstream_commands.extend([
|
||||||
"set_property BITSTREAM.GENERAL.COMPRESS True [current_design]",
|
"set_property BITSTREAM.GENERAL.COMPRESS True [current_design]",
|
||||||
])
|
])
|
||||||
SoCCore.__init__(self, platform=platform)
|
SoCCore.__init__(self, platform=platform, ident="RTIO_ZC706")
|
||||||
|
|
||||||
platform.add_platform_command("create_clock -name clk_fpga_0 -period 8 [get_pins \"PS7/FCLKCLK[0]\"]")
|
platform.add_platform_command("create_clock -name clk_fpga_0 -period 8 [get_pins \"PS7/FCLKCLK[0]\"]")
|
||||||
platform.add_platform_command("set_input_jitter clk_fpga_0 0.24")
|
platform.add_platform_command("set_input_jitter clk_fpga_0 0.24")
|
||||||
|
@ -67,7 +68,7 @@ def main():
|
||||||
if action == "gateware":
|
if action == "gateware":
|
||||||
soc.build()
|
soc.build()
|
||||||
elif action == "rustif":
|
elif action == "rustif":
|
||||||
write_csr_file(soc, "pl.rs")
|
write_csr_file(soc, os.path.join("runtime", "src", "pl.rs"))
|
||||||
else:
|
else:
|
||||||
raise ValueError("invalid action", action)
|
raise ValueError("invalid action", action)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue