mirror of https://github.com/YosysHQ/yosys.git
49 lines
873 B
Plaintext
49 lines
873 B
Plaintext
|
# Create stimulus file
|
||
|
read_verilog <<EOT
|
||
|
module top (clk, reset, cnt);
|
||
|
|
||
|
input clk;
|
||
|
input reset;
|
||
|
output [7:0] cnt;
|
||
|
|
||
|
reg [7:0] cnt;
|
||
|
|
||
|
endmodule
|
||
|
EOT
|
||
|
prep -top top;
|
||
|
sim -clock clk -reset reset -fst stimulus.fst -n 10
|
||
|
design -reset
|
||
|
|
||
|
# Counter implementation
|
||
|
read_verilog <<EOT
|
||
|
module top (clk, reset, cnt);
|
||
|
|
||
|
input clk;
|
||
|
input reset;
|
||
|
output [7:0] cnt;
|
||
|
|
||
|
reg [7:0] cnt;
|
||
|
|
||
|
always @(posedge clk)
|
||
|
if (!reset)
|
||
|
cnt = cnt + 1;
|
||
|
else
|
||
|
cnt = 0;
|
||
|
|
||
|
endmodule
|
||
|
EOT
|
||
|
prep -top top;
|
||
|
|
||
|
# Simulate with stimulus
|
||
|
sim -clock clk -scope top -r stimulus.fst
|
||
|
|
||
|
# Stimulus does not have counter values
|
||
|
# x in FST can match any value in simulation
|
||
|
sim -clock clk -scope top -r stimulus.fst -sim-gate
|
||
|
|
||
|
# Stimulus does not have counter values
|
||
|
# x in simulation can match any value in FST
|
||
|
# so we expect error
|
||
|
logger -expect error "Signal difference" 1
|
||
|
sim -clock clk -scope top -r stimulus.fst -sim-gold
|