forked from libre-chip/fayalite
WIP adding VCD output
This commit is contained in:
parent
09aa9fbc78
commit
c4b5d00419
6 changed files with 801 additions and 14 deletions
|
@ -1,6 +1,11 @@
|
|||
// SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
// See Notices.txt for copyright information
|
||||
use fayalite::{int::UIntValue, prelude::*, sim::Simulation};
|
||||
use fayalite::{
|
||||
int::UIntValue,
|
||||
prelude::*,
|
||||
sim::{time::SimDuration, vcd::VcdWriterDecls, Simulation},
|
||||
util::RcWriter,
|
||||
};
|
||||
|
||||
#[hdl_module(outline_generated)]
|
||||
pub fn connect_const() {
|
||||
|
@ -177,14 +182,25 @@ pub fn mod1() {
|
|||
connect(o, child);
|
||||
}
|
||||
|
||||
#[cfg(todo)]
|
||||
#[hdl]
|
||||
#[test]
|
||||
fn test_mod1() {
|
||||
let _n = SourceLocation::normalize_files_for_tests();
|
||||
let mut sim = Simulation::new(mod1());
|
||||
sim.write_bool_or_int(sim.io().o.i, 0xA_hdl_u4);
|
||||
let mut writer = RcWriter::default();
|
||||
sim.add_trace_writer(VcdWriterDecls::new(writer.clone()));
|
||||
sim.write_bool_or_int(sim.io().o.i, 0x3_hdl_u4);
|
||||
sim.write_bool_or_int(sim.io().o.i2, -2_hdl_i2);
|
||||
sim.settle_step();
|
||||
sim.advance_time(SimDuration::from_micros(1));
|
||||
sim.write_bool_or_int(sim.io().o.i, 0xA_hdl_u4);
|
||||
sim.advance_time(SimDuration::from_micros(1));
|
||||
let vcd = String::from_utf8(writer.take()).unwrap();
|
||||
println!("####### VCD:\n{vcd}\n#######");
|
||||
todo!("generated vcd is incorrect");
|
||||
if vcd != r#""# {
|
||||
panic!();
|
||||
}
|
||||
let sim_debug = format!("{sim:#?}");
|
||||
println!("#######\n{sim_debug}\n#######");
|
||||
if sim_debug
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue