dlock | DLock is a library to get an interval lock | Job Scheduling library
kandi X-RAY | dlock Summary
kandi X-RAY | dlock Summary
Interval Lock
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Build a try lock
- Returns the database table name
- Gets the schema
- Returns a safe name for the given name
- Register a tryLock
- Determines whether the lock should be executed
- Returns a new LockConfig object with default values for the given tryLock
- Get lock
- Build try lock statement
- Converts a string into a safe name
- Gets the value name
- Gets the owner
- Gets the hostname
- Gets owner
- Start the downloader
- Downloads a file from an URL
- Builds the SQL for locking a table
- The main test program
- The main entry point for running
- Set the IntervalLock
- Try to lock the database
- Attempt to lock the tables
dlock Key Features
dlock Examples and Code Snippets
Community Discussions
Trending Discussions on dlock
QUESTION
This is a simple exercise for a Hardware course that I am taking. We are required to use Altera Quartus II and ModelSim to test the implementation; tools that I've never used before, so I might be missing something, and my explanations, lacking.
The circuit has 3 inputs (Data, Clock and Reset) and 2 outputs (Locked, Error). The sequence used in this exercise is 10001
.
The problem ask to design a circuit that will recognize a sequence of bits. When the correct sequence is entered, you are granted access (the circuit enters the "UNLOCK" state; Locked output is 0). Otherwise, if at any point you enter the wrong bit, you trigger an alarm and you're supposed to remain in the "ERROR" state until the circuit is manually reset.
"Locked" is always 1 unless it gets to the "UNLOCK" state. "Error" is always 0 unless it gets to the "ERROR" state.
The circuit is supposed to always start out in a "RESET" state. Once it gets in the "UNLOCK" state, it stays there as long as the bits provided are 1, or goes to "RESET" if a 0 is encountered.
This is the state diagram that I've worked out:
Any help or ideas are welcome!
It turned out that almost all the logic behind my implementation is correct, the problem was a misunderstanding in using the CLRNs on the flip-flops and a typo in one of the assignments. As such, most of the images were removed to get rid of the clutter.
-- EDIT 1
With the following code (which should be correct), the waveform is not as expected (at least the lock
is not)
ANSWER
Answered 2017-Jan-05 at 22:42Your reset, as written in the VHDL, is active low. This means you're holding the circuit in reset most of the time. Your data pattern looks like you thought your reset was active high.
Your error signal, insofar as I can see in the image of the waveform posted, is behaving correctly. Every time you exit reset for a cycle, your data is 0, which sends you to the error state. Of course this only persists for one cycle since you immediately reset again.
These are just glitches, if you zoom in you'll see that the phantom unlocks are happening for 0 time (or very small time periods depending on your gate models). This is one reason why the output of combinational logic isn't used for clocking data. Passing the value through a flip-flop will remove glitches.
EDIT:
Furthermore, your state assignment table and your state output table disagree with each other. One lists the Q
values from Q2
downto Q0
and the other lists from Q0
to Q2
, but both list the unlocked
state as "110"
. This doesn't cause issues for the Error
state since "111"
reads the same forwards and backwards.
EDIT2: As far as avoiding glitches... glitches are the nature of combinational logic.
You could have locked
sourced directly from a flop without adding latency by having the input to a "locked" flop be dictated by the same preconditions of the unlocked state (i.e. locked_d = not((state=s4 or state=locked) and data=1)
and use locked_q
.
You could just avoiding having locked be a function of multiple state bits by converting the state machine machine encoding to a one-hot or hybrid one-hot (where there is a dedicated bit for the locked/error states because they drive output bits , but the other 5 states use 3 shared state bits).
Think of a state table like this:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install dlock
You can use dlock like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the dlock component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page