Code Monkey home page Code Monkey logo

frequency_counter's Introduction

Frequency counter

This repository is a template for project 2.2 that takes you through:

  • Building an edge detector
  • Building a seven segment driver
  • Counting edges
  • State machines

License

This repo is part of the Zero to ASIC course and licensed with Apache 2.

Resources

frequency_counter's People

Contributors

mattvenn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

frequency_counter's Issues

Assertion side effect in test when NOASSERT=1 is used

I'll submit a PR for this shortly, but this is just a long write-up for a very short change :)

An intended use of NOASSERT=1 with the various make test_* tests is to capture VCD waveforms of the design so far, even though it might not yet be passing the formal tests. These waveforms help with learning and debugging. When using NOASSERT=1 in this project, an unintended side effect emerges. An otherwise required state-advancing call to read_segments gets masked out here:

assert await read_segments(dut) == tens * 10 + units

...and here:
assert await read_segments(dut) == input_freq

This alters the internal timing of the test, and corrupts the waveform data. For example, this is a valid result with assertions being executed:

make test_seven_segment && make show_seven_segment

wave-good

...while the result is corrupted when using NOASSERT=1:

NOASSERT=1 make test_seven_segment && make show_seven_segment

wave-bad

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.