Added synchronizer to reset

This commit is contained in:
David Harris 2021-10-25 10:05:41 -07:00
parent 110d9d3a15
commit 2bf51362e2
3 changed files with 10 additions and 7 deletions

View File

@ -7,7 +7,7 @@ verilator=`which verilator`
basepath=$(dirname $0)/..
for config in rv64g rv32g; do
echo "$config linting..."
if !($verilator --lint-only --Wall "$@" --top-module wallypipelinedsoc "-I$basepath/config/shared" "-I$basepath/config/$config" $basepath/src/*/*.sv $basepath/src/*/*/*.sv --relative-includes); then
if !($verilator --lint-only "$@" --top-module wallypipelinedsoc "-I$basepath/config/shared" "-I$basepath/config/$config" $basepath/src/*/*.sv $basepath/src/*/*/*.sv --relative-includes); then
echo "Exiting after $config lint due to errors or warnings"
exit 1
fi
@ -17,6 +17,5 @@ echo "All lints run with no errors or warnings"
# --lint-only just runs lint rather than trying to compile and simulate
# -I points to the include directory where files such as `include wally-config.vh are found
# For more exhaustive (and sometimes spurious) warnings, run:
# verilator --lint-only -Wall -Iconfig/rv64ic src/*
# For more exhaustive (and sometimes spurious) warnings, add --Wall to the Verilator command
# Unfortunately, this produces a bunch of UNUSED and UNDRIVEN signal warnings in blocks that are configured to not exist.

View File

@ -32,7 +32,8 @@
`include "wally-config.vh"
module wallypipelinedsoc (
input logic clk, reset,
input logic clk, reset_ext,
output logic reset,
// AHB Lite Interface
// inputs from external memory
input logic [`AHBW-1:0] HRDATAEXT,
@ -63,6 +64,9 @@ module wallypipelinedsoc (
logic [2:0] HADDRD;
logic [3:0] HSIZED;
logic HWRITED;
// synchronize reset to SOC clock domain
synchronizer resetsync(.clk, .d(reset_ext), .q(reset));
// instantiate processor and memories
wallypipelinedhart hart(.clk, .reset,

View File

@ -34,7 +34,7 @@ module testbench;
parameter TEST="none";
logic clk;
logic reset;
logic reset_ext, reset;
parameter SIGNATURESIZE = 5000000;
@ -209,7 +209,7 @@ logic [3:0] dummy;
ProgramAddrMapFile = {pathname, tests[test], ".elf.objdump.addr"};
ProgramLabelMapFile = {pathname, tests[test], ".elf.objdump.lab"};
$display("Read memfile %s", memfilename);
reset = 1; # 42; reset = 0;
reset_ext = 1; # 42; reset_ext = 0;
end
// generate clock to sequence tests
@ -290,7 +290,7 @@ logic [3:0] dummy;
ProgramAddrMapFile = {pathname, tests[test], ".elf.objdump.addr"};
ProgramLabelMapFile = {pathname, tests[test], ".elf.objdump.lab"};
$display("Read memfile %s", memfilename);
reset = 1; # 17; reset = 0;
reset_ext = 1; # 47; reset_ext = 0;
end
end
end // always @ (negedge clk)