Skip to main content

ShellControl

Struct ShellControl 

Source
pub struct ShellControl {
Show 66 fields pub run_state: RunState, pub config: LaunchConfig, pub ap_done: bool, pub gier: bool, pub ier: b2, pub isr: b2, pub terminal_code: b8, pub error_flags: b16, pub first_error_job: b32, pub first_error_detail: b32, pub summary_aw_handshake: bool, pub summary_w_handshake: bool, pub summary_b_handshake: bool, pub summary_b_canonical: bool, pub axil_aw_pending: bool, pub axil_awaddr: b8, pub axil_aw_locked_at_accept: bool, pub axil_w_pending: bool, pub axil_wdata: b32, pub axil_wstrb: b4, pub axil_w_locked_at_accept: bool, pub axil_bvalid: bool, pub axil_bresp: b2, pub axil_rvalid: bool, pub axil_rdata: b32, pub axil_rresp: b2, pub axil_r_ap_ctrl: bool, pub reader_state: ReaderState, pub reader_job: b32, pub input_job_valid: bool, pub scoreboard: [JobEntry; 12], pub ingress_valid: bool, pub capture_active: bool, pub capture_slot: b1, pub capture_beat: b6, pub capture_job: b32, pub capture_cluster: b2, pub frame_queue: FrameQueue, pub writer_state: WriterState, pub writer_slot: b1, pub writer_job: b32, pub writer_beat: b6, pub read_issue_beat: b6, pub read_pending: bool, pub prefetch_count: b2, pub writer_early_b_drained: bool, pub abort_cleaned: bool, pub input_ar_count: b16, pub input_r_count: b16, pub core_admission_count: b16, pub frame_capture_count: b16, pub core_error_count: b16, pub payload_aw_count: b16, pub payload_b_count: b16, pub payload_w_count: b32, pub memory_completed_count: b16, pub memory_completion_timing: MemoryCompletionTiming, pub run_cycle: b64, pub payload_cycles: b64, pub output_stall_cycles: b64, pub first_admission_seen: bool, pub first_admission_cycle: b64, pub first_capture_seen: bool, pub first_capture_cycle: b64, pub core_latency_cycles: b64, pub capture_span_cycles: b64,
}
Expand description

Resettable shell ownership and audit state.

Fields§

§run_state: RunState

Whole-run state.

§config: LaunchConfig

Host launch arguments.

§ap_done: bool

HLS-compatible sticky completion bit.

§gier: bool

Global interrupt enable.

§ier: b2

Done/error interrupt mask.

§isr: b2

Toggle-on-write sticky done/error status.

§terminal_code: b8

Most recent terminal code.

§error_flags: b16

Sticky union of run error causes.

§first_error_job: b32

First job associated with an error.

§first_error_detail: b32

First error detail.

§summary_aw_handshake: bool

Terminal summary address was accepted.

§summary_w_handshake: bool

Terminal summary data was accepted.

§summary_b_handshake: bool

Terminal summary response was drained.

§summary_b_canonical: bool

Terminal summary response was exact ID-zero OKAY.

§axil_aw_pending: bool

Independently retained AXI4-Lite write address.

§axil_awaddr: b8

Retained AXI4-Lite write address.

§axil_aw_locked_at_accept: bool

Configuration/run lock state sampled when the write address transferred.

§axil_w_pending: bool

Independently retained AXI4-Lite write data.

§axil_wdata: b32

Retained AXI4-Lite write data.

§axil_wstrb: b4

Retained AXI4-Lite byte strobes.

§axil_w_locked_at_accept: bool

Configuration/run lock state sampled when the write data transferred.

§axil_bvalid: bool

Retained AXI4-Lite write response.

§axil_bresp: b2

Retained AXI4-Lite write response code.

§axil_rvalid: bool

Retained AXI4-Lite read response.

§axil_rdata: b32

Retained AXI4-Lite read data.

§axil_rresp: b2

Retained AXI4-Lite read response code.

§axil_r_ap_ctrl: bool

The retained read response came from AP_CTRL.

§reader_state: ReaderState

HBM0 single-outstanding state.

§reader_job: b32

Sequential job currently owned by the reader.

§input_job_valid: bool

A checked HBM0 line is retained.

§scoreboard: [JobEntry; 12]

Signer ownership table.

§ingress_valid: bool

One registered signer beat is retained before validation.

§capture_active: bool

A frame currently owns one BRAM slot.

§capture_slot: b1

BRAM slot owned by capture.

§capture_beat: b6

Next capture beat in 0..=34.

§capture_job: b32

Frame job identity retained from beat zero.

§capture_cluster: b2

Frame source cluster retained from beat zero.

§frame_queue: FrameQueue

Oldest-first queue of complete BRAM frames.

§writer_state: WriterState

HBM1 payload writer state.

§writer_slot: b1

Committed writer slot.

§writer_job: b32

Committed writer job.

§writer_beat: b6

Next data beat to transfer.

§read_issue_beat: b6

Next BRAM beat to request.

§read_pending: bool

The current BRAM output belongs to the writer prefetch.

§prefetch_count: b2

Registered write-prefetch occupancy in 0..=2.

§writer_early_b_drained: bool

A protocol-invalid payload B was drained before final W acceptance.

§abort_cleaned: bool

Abort-mode uncommitted-state cleanup has occurred.

§input_ar_count: b16

Accepted HBM0 addresses.

§input_r_count: b16

Checked HBM0 responses.

§core_admission_count: b16

Signer admissions.

§frame_capture_count: b16

Complete canonical frames captured.

§core_error_count: b16

Explicit signer error completions.

§payload_aw_count: b16

Accepted payload write addresses.

§payload_b_count: b16

Drained payload write responses.

§payload_w_count: b32

Accepted payload data beats.

§memory_completed_count: b16

Payloads retired by exact ID-zero OKAY B responses.

§memory_completion_timing: MemoryCompletionTiming

Canonical payload B retirement timing, excluding the summary response.

§run_cycle: b64

Execute/abort cycle cursor.

§payload_cycles: b64

Execute/abort payload interval.

§output_stall_cycles: b64

Cycles the signer output was unable to enter the ingress register.

§first_admission_seen: bool

At least one signer admission has occurred.

§first_admission_cycle: b64

Cycle of first signer admission.

§first_capture_seen: bool

At least one complete frame has reached BRAM.

§first_capture_cycle: b64

Cycle of first complete frame capture.

§core_latency_cycles: b64

First admission through last complete frame, inclusive.

§capture_span_cycles: b64

First-to-last complete-frame span.

Trait Implementations§

Source§

impl Clone for ShellControl

Source§

fn clone(&self) -> ShellControl

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ShellControl

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ShellControl

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Digital for ShellControl

Source§

const BITS: usize

Associated constant that gives the total number of bits needed to represent the value.
Source§

fn static_kind() -> Kind

Returns the [Kind] (run time type descriptor) of the value as a static method
Source§

fn bin(self) -> Box<[BitX]>

Returns the binary representation of the value as a vector of [BitX].
Source§

fn dont_care() -> Self

Returns a “don’t care” value for the type.
§

fn bits() -> usize

Returns the number of bits needed to represent the value.
§

fn kind(&self) -> Kind

Returns the [Kind] (run time type descriptor) of the value.
§

fn typed_bits(self) -> TypedBits

Returns the value as a [TypedBits], which includes both the bits and the kind.
§

fn discriminant(self) -> TypedBits

Returns the discriminant of the value as a [TypedBits].
§

fn variant_kind(self) -> Kind

Returns the [Kind] of the variant if the value is an enum with variants.
§

fn binary_string(self) -> String

Returns the binary representation of the value as a string of ‘0’, ‘1’, and ‘X’.
Source§

impl PartialEq for ShellControl

Source§

fn eq(&self, other: &ShellControl) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for ShellControl

Source§

impl Eq for ShellControl

Source§

impl StructuralPartialEq for ShellControl

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either [OwoColorize::fg] or a color-specific method, such as [OwoColorize::green], Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either [OwoColorize::bg] or a color-specific method, such as [OwoColorize::on_yellow], Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<I, P, O> SynchronousProbeExt<I, P, O> for I

§

fn synchronous_sample(self) -> SynchronousSample<I>
where I: Iterator<Item = TracedSample<(ClockReset, P), O>>, P: Digital, O: Digital,

Create a probe that samples values from the supplied stream just before a positive edge of the clock
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> Traceable for T
where T: Digital,

§

fn bits(&self) -> usize

Get the number of bits for the stored value
§

fn kind(&self) -> Kind

Get the [Kind] of the stored value
§

fn bin(&self) -> Box<[BitX]>

Get the binary representation of the stored value as a vector of [BitX]
§

fn typed_bits(&self) -> TypedBits

Get the [TypedBits] representation of the stored value
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,