Added counter

This commit is contained in:
xeovalyte 2025-02-10 15:16:23 +01:00
parent 64d566d9c7
commit 85b407fa65
Signed by: xeovalyte
SSH Key Fingerprint: SHA256:kSQDrQDmKzljJzfGYcd3m9RqHi4h8rSwkZ3sQ9kBURo
6 changed files with 31 additions and 23 deletions

5
.gitignore vendored
View File

@ -5,5 +5,10 @@ devenv.local.nix
# direnv # direnv
.direnv .direnv
*.bak
obj_dir
output.vcd
# pre-commit # pre-commit
.pre-commit-config.yaml .pre-commit-config.yaml

12
README.md Normal file
View File

@ -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)
$$

View File

@ -1,8 +1,11 @@
module timebase `timescale 1ns/1ps
module timebase #(parameter N = 18)
(input logic clk, (input logic clk,
input logic reset, 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 endmodule

View File

@ -1,5 +0,0 @@
`timescale 1ns/1ps
Aanpassing van lasse
Aanpassing van Timo

View File

@ -4,7 +4,7 @@ module timebase_tb();
logic clk; logic clk;
logic reset; logic reset;
logic [20:0] count; logic [17:0] count;
timebase test (clk, reset, count); timebase test (clk, reset, count);
@ -14,8 +14,12 @@ module timebase_tb();
clk = 0; clk = 0;
initial begin initial begin
reset = 1; $dumpfile("output.vcd");
#10; reset = 0; $dumpvars;
reset = 0;
#200; reset = 1;
$finish;
end end
endmodule endmodule

View File

@ -1,22 +1,11 @@
{ pkgs, lib, config, inputs, ... }: { pkgs, lib, config, inputs, ... }:
{ {
# https://devenv.sh/basics/
env.GREET = "devenv"; env.GREET = "devenv";
# https://devenv.sh/packages/ # https://devenv.sh/packages/
packages = [ pkgs.verilator pkgs.gtkwave ]; 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 = '' scripts.hello.exec = ''
echo hello from $GREET echo hello from $GREET
''; '';