当前位置:网站首页>[Digital IC hand tearing code] Verilog edge detection circuit (rising edge, falling edge, double edge) | topic | principle | design | simulation
[Digital IC hand tearing code] Verilog edge detection circuit (rising edge, falling edge, double edge) | topic | principle | design | simulation
2022-07-05 01:41:00 【myhhhhhhhh】
Preface
This series aims to provide 100% Accurate numbers IC Design / Verify the title of the hand tearing code link , principle ,RTL Design ,Testbench And reference simulation waveform , The content of each article is checked by simulation . The quick navigation links are as follows :
Odd frequency division
Even frequency division
Semi integer batch
decimal / Fractional frequency division
Sequence detector
Mode three detector
Beverage machine
Asynchronous reset , Simultaneous release
Edge detection ( Rising edge , Falling edge , On both sides )
Full adder , Half adder
Gray code to binary
single bit Cross clock domain ( Two beats , Edge synchronization , Pulse synchronization )
Sync FIFO
Ought to say , The hand tearing code link is in the interview process Both important and simple A part of , Compared with software jobs , Numbers IC Hand tear code Fixed topic , Limited number , It belongs to a link that must be scored in the whole interview , Outside this series , I also recommend numbers IC Job seekers use “HdlBits” Code Training
Links are as follows
HDLBits — Verilog Practice
Edge detection circuit problem
1. Use Verilog Language , Design the rising edge detection circuit .
2. Use Verilog Language , Design the falling edge detection circuit .
3. Use Verilog Language , Design double edge detection circuit .
Principle of edge detection circuit
Here is to explain the principle , We need to analyze the characteristics of the edge circuit
For a rising edge circuit , If used clk Signals and registers are sampled , The previous shot was picked 0, The input result of the last beat is 1, Then through the operation of combinatorial logic , For the previous shot A Express , For the next shot B Express ,“!A & B” It is the rising edge detection we need .
Empathy , For the falling edge , The previous shot was taken 1, The input result of the last beat is 0,A&!B, It is the falling edge detection circuit we need .
For bilateral edges , The output is ** “!A & B + A&!B” **, namely A^B Exclusive or operation
The specific sequence diagram is as follows
RTL Design
module edge_detect(clk,rst_n,signal,up_edge,down_edge,both_edge);
input clk;
input signal;
input rst_n;
output up_edge;
output down_edge;
output both_edge;
reg signal_r;
[email protected](posedge clk or negedge rst_n)
begin
if(!rst_n)
signal_r <= 1'b0;
else
signal_r <= signal;
end
assign up_edge = !signal_r & signal;
assign down_edge = signal_r & !signal;
assign both_edge = signal_r ^ signal;
endmodule
Testbench Design
`timescale 1ns / 1ps
module edge_detect_tb () ;
reg clk;
reg rst_n;
reg signal;
wire up_edge;
wire down_edge;
wire both_edge;
edge_detect u1(.clk(clk),
.rst_n(rst_n),
.signal(signal),
.up_edge(up_edge),
.down_edge(down_edge),
.both_edge(both_edge));
always #5 clk = !clk;
initial
begin
clk = 0;
rst_n = 1;
signal = 0;
#10
rst_n = 0;
#23
rst_n = 1;
#16
signal = 1;
#50
signal = 0;
#40
$stop;
end
endmodule
Result analysis
As shown in the figure, the rising and falling edges , Electric circuit output Edge arrival detected , Displayed in three wire type output On , The circuit design meets the expectation .
边栏推荐
- Can financial products be redeemed in advance?
- ROS command line tool
- 85.4% mIOU! NVIDIA: using multi-scale attention for semantic segmentation, the code is open source!
- Four pits in reentrantlock!
- 如果消费互联网比喻成「湖泊」的话,产业互联网则是广阔的「海洋」
- To sort out messy header files, I use include what you use
- Interesting practice of robot programming 15- autoavoidobstacles
- [swagger]-swagger learning
- Exploration and practice of integration of streaming and wholesale in jd.com
- [development of large e-commerce projects] performance pressure test - Performance Monitoring - heap memory and garbage collection -39
猜你喜欢
[development of large e-commerce projects] performance pressure test - Performance Monitoring - heap memory and garbage collection -39
Introduction to redis (1)
Actual combat simulation │ JWT login authentication
Express routing, express middleware, using express write interface
Blue Bridge Cup Square filling (DFS backtracking)
Take you ten days to easily complete the go micro service series (IX. link tracking)
The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety
Hedhat firewall
流批一體在京東的探索與實踐
PHP wechat official account development
随机推荐
Wechat applet: the latest WordPress black gold wallpaper wechat applet two open repair version source code download support traffic main revenue
Win: enable and disable USB drives using group policy
Nebula Importer 数据导入实践
Package What is the function of JSON file? What do the inside ^ angle brackets and ~ tilde mean?
PHP 基础篇 - PHP 中 DES 加解密详解
流批一体在京东的探索与实践
Classification of performance tests (learning summary)
C语音常用的位运算技巧
Global and Chinese markets of radiation linear accelerators 2022-2028: Research Report on technology, participants, trends, market size and share
Valentine's Day flirting with girls to force a small way, one can learn
如何搭建一支搞垮公司的技術團隊?
One plus six brushes into Kali nethunter
Es uses collapsebuilder to de duplicate and return only a certain field
Phpstrom setting function annotation description
Win: use PowerShell to check the strength of wireless signal
[development of large e-commerce projects] performance pressure test - Performance Monitoring - heap memory and garbage collection -39
Outlook:总是提示输入用户密码
Wechat applet; Gibberish generator
Summary of regularization methods
PHP wechat official account development