From 85b407fa65a3adf80f6248328006724395e0b4bc Mon Sep 17 00:00:00 2001 From: xeovalyte Date: Mon, 10 Feb 2025 15:16:23 +0100 Subject: [PATCH] Added counter --- .gitignore | 5 +++++ README.md | 12 ++++++++++++ ch4/timebase.sv | 11 +++++++---- ch4/timebase.sv.bak | 5 ----- ch4/timebase_tb.sv | 10 +++++++--- devenv.nix | 11 ----------- 6 files changed, 31 insertions(+), 23 deletions(-) create mode 100644 README.md delete mode 100644 ch4/timebase.sv.bak diff --git a/.gitignore b/.gitignore index 4d058db..4f52289 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,10 @@ devenv.local.nix # direnv .direnv +*.bak +obj_dir +output.vcd + + # pre-commit .pre-commit-config.yaml diff --git a/README.md b/README.md new file mode 100644 index 0000000..72145be --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# DSB course + +## Chapter 4 + +Minimum number for counter: +$$ +N(t_{PWM}) = t_{PWM} * f +$$ +Number of required bits: +$$ +N = ^2log(N + 1) +$$ diff --git a/ch4/timebase.sv b/ch4/timebase.sv index d04bc37..57a8ab1 100644 --- a/ch4/timebase.sv +++ b/ch4/timebase.sv @@ -1,8 +1,11 @@ -module timebase +`timescale 1ns/1ps + +module timebase #(parameter N = 18) (input logic clk, input logic reset, - output logic [?:0] count); - - + output logic [N-1:0] count); + always_ff @(posedge clk, posedge reset) + if(reset) count <= 0; + else count <= count + 1; endmodule diff --git a/ch4/timebase.sv.bak b/ch4/timebase.sv.bak deleted file mode 100644 index 219e656..0000000 --- a/ch4/timebase.sv.bak +++ /dev/null @@ -1,5 +0,0 @@ -`timescale 1ns/1ps - -Aanpassing van lasse - -Aanpassing van Timo diff --git a/ch4/timebase_tb.sv b/ch4/timebase_tb.sv index 0e374f4..70d8f03 100644 --- a/ch4/timebase_tb.sv +++ b/ch4/timebase_tb.sv @@ -4,7 +4,7 @@ module timebase_tb(); logic clk; logic reset; - logic [20:0] count; + logic [17:0] count; timebase test (clk, reset, count); @@ -14,8 +14,12 @@ module timebase_tb(); clk = 0; initial begin - reset = 1; - #10; reset = 0; + $dumpfile("output.vcd"); + $dumpvars; + + reset = 0; + #200; reset = 1; + $finish; end endmodule diff --git a/devenv.nix b/devenv.nix index fe01561..71c391f 100644 --- a/devenv.nix +++ b/devenv.nix @@ -1,22 +1,11 @@ { pkgs, lib, config, inputs, ... }: { - # https://devenv.sh/basics/ env.GREET = "devenv"; # https://devenv.sh/packages/ packages = [ pkgs.verilator pkgs.gtkwave ]; - # https://devenv.sh/languages/ - # languages.rust.enable = true; - - # https://devenv.sh/processes/ - # processes.cargo-watch.exec = "cargo-watch"; - - # https://devenv.sh/services/ - # services.postgres.enable = true; - - # https://devenv.sh/scripts/ scripts.hello.exec = '' echo hello from $GREET '';