当前位置:网站首页>[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 .
边栏推荐
- 流批一体在京东的探索与实践
- Phpstrom setting function annotation description
- [flutter topic] 64 illustration basic textfield text input box (I) # yyds dry goods inventory #
- 线上故障突突突?如何紧急诊断、排查与恢复
- Exploration and practice of integration of streaming and wholesale in jd.com
- Global and Chinese market of network connected IC card smart water meters 2022-2028: Research Report on technology, participants, trends, market size and share
- batchnorm. Py this file single GPU operation error solution
- Outlook: always prompt for user password
- Outlook:总是提示输入用户密码
- Wechat applet: Xingxiu UI v1.5 WordPress system information resources blog download applet wechat QQ dual end source code support WordPress secondary classification loading animation optimization
猜你喜欢
MySQL backup and recovery + experiment
ROS command line tool
Interesting practice of robot programming 16 synchronous positioning and map building (SLAM)
JS implementation determines whether the point is within the polygon range
【CTF】AWDP总结(Web)
Wechat applet: Xingxiu UI v1.5 WordPress system information resources blog download applet wechat QQ dual end source code support WordPress secondary classification loading animation optimization
微信小程序;胡言乱语生成器
流批一體在京東的探索與實踐
增量备份 ?db full
Nebula importer data import practice
随机推荐
Using openpyxl module to write the binary list into excel file
JS implementation determines whether the point is within the polygon range
Phpstrom setting function annotation description
Lsblk command - check the disk of the system. I don't often use this command, but it's still very easy to use. Onion duck, like, collect, pay attention, wait for your arrival!
Global and Chinese markets of radiation linear accelerators 2022-2028: Research Report on technology, participants, trends, market size and share
Yyds dry inventory swagger positioning problem ⽅ formula
A simple SSO unified login design
Exploration and practice of integration of streaming and wholesale in jd.com
Outlook:总是提示输入用户密码
142. Circular linked list II
ROS command line tool
To sort out messy header files, I use include what you use
Yyds dry inventory jetpack hit dependency injection framework Getting Started Guide
batchnorm. Py this file single GPU operation error solution
Complex, complicated and numerous: illustration of seven types of code coupling
Five ways to query MySQL field comments!
Jcenter () cannot find Alibaba cloud proxy address
Wechat applet: wechat applet source code download new community system optimized version support agent member system function super high income
力扣剑指offer——二叉树篇
When the industrial Internet era is truly developed and improved, it will witness the birth of giants in every scene