Comments for initial design
Questions + Answers
- Why does the timer need a button? Isn't this more for the FSM controller than the timer?
- Answer: It doesn't?
- Is the clock frequency from the prof's timer the same as what we use (in other words, it relates to the frequency of the board, not the frequency of the dht thingy?)? Also, right now timer outputs pulse every 50 microseconds. Is this a good number for the FSM?
- What does timer connect to? Must be something. (ANSWERED: FSM)
- Should checksum (and other blocks in diagram) be squares or circle? Is this related to whether it's a process or not? Or whether it has a clock?
- Where does reset come from? All synchronous resets? Any need for asynchronous reset? What was the deal with the lb example? Why were there both?
- Potential answer: SRST comes from simulation environment/board as pure input to dht, like in accumulator.vhd
- Does anyone understand what he keeps saying about the programmable logic and how that differs? I guess we can worry about this after he lectures on it.
- Question about timer in timer.vhd - basically, count starts not exactly when the resets are all cleared, but the first cs after that. Is that OK?
Assumptions
- SRST is active low
- SIPO preserves order of bits in the 32 bits it outputs to the datamux. That is, the MSB of the relevant data that came in is the MSB of the relevant data that is passed on. I think this means: make sure the shift shifts left.
Notes from prof
- FSM Controller feeds the SIPO.
- IN FSM:
at each edge of data line, store val of timer, and reinit timer at 0. compare the old val of the timer witht he new val you got and decide whether to shift 0 or 1. synchronise everything on edges of data line and do comparisons with successive vals of timer.
use debouncer to debounce and resynchronise what comes from the button.
for what comes from the dataline, you need something that generates a pulse - 1 clock cycle pulse at each edge of the data line. every time data line goes from 1 to 0 or 0 to 1 you have to generate a pulse, and this pulse drives global state machine and also tells u to compare curr val of timer with reference and decide whether its 1 or 0 from sensor.
imagine that in front of data line there is something that generates pulses when there is value change on data line. `
- Should use MOORE state machine(s)