Menu
  • Design Services Directory Open submenu
  • Get Price Quotes From Vendors Open submenu
  • Emerging ICs Directory Open submenu
  • Get IC Prices
  • WikiBee
  • Resources Open submenu
  • Pricing Open submenu
Close submenuDesign Services Directory
  • FPGA Design Services
  • Electronic Design Services
  • Embedded Software Companies
  • Add your company
Close submenuGet Price Quotes From Vendors
  • Electronic Design Companies
  • FPGA Design Companies
  • Embedded Software Companies
  • Design & Manufacturing Companies
  • Get IC Device Prices
Close submenuEmerging ICs Directory
  • UWB Open submenu
  • FPGA Open submenu
  • Radar Open submenu
  • Add your IC
Close submenuUWB
  • Spark Microsystems
Close submenuFPGA
  • Colonge Chip
  • Rapid Silicon
Close submenuRadar
  • Acconeer
Close submenuResources
  • FPGA Academy
  • Embedded Academy
  • FPGA vs ASIC Calculator
  • Watt to dBm Converter
  • dBm to Watt Converter
Close submenuPricing
  • Get Your Company Listed
  • Book a Demo
  • Get a Monthly Lead List
Menu
HardwareBee
https://www.nuvation.com/
  • Find ASIC Vendors
  • Design Services Directory
    • FPGA Design Services
    • Electronic Design Services
    • Embedded Software Companies
    • Add your company
  • Get Price Quotes From Vendors
    • Electronic Design Companies
    • FPGA Design Companies
    • Embedded Software Companies
    • Design & Manufacturing Companies
    • Get IC Device Prices
  • Emerging ICs Directory
    • UWB
      • Spark Microsystems
    • FPGA
      • Colonge Chip
      • Rapid Silicon
    • Radar
      • Acconeer
    • Add your IC
  • Get IC Prices
  • WikiBee
  • Resources
    • FPGA Academy
    • Embedded Academy
    • FPGA vs ASIC Calculator
    • Watt to dBm Converter
    • dBm to Watt Converter
  • Pricing
    • Get Your Company Listed
    • Book a Demo
    • Get a Monthly Lead List
HardwareBee
8814 Views

FPGA Power-On-Reset Design and Implementation

08/06/2019, hardwarebee

Get a Price Quote

Power-On Reset is an electronic circuit that generates a reset pulse, which sets the entire design to an initial and well-known state after the power supply is detected. In Vivado the Xilinx’s Processor System Reset LogiCORE IP provides this functionality.


If a synchronous reset is executed at system startup, it is possible that there is no clock signal at this time, since the clock source itself may be subject to a reset. Therefore, the synchronous reset can be ineffective.

 

Often the Power-On Reset (POR) is generated by an external device, for example the watchdog, which monitors the supply voltage or the activity of a microprocessor. Then the POR is also not synchronous to the system clock.

 

The following circuit generates a reset signal from the external POR (in this example low active) which becomes active high for at least 3 clock cycles and then becomes inactive synchronously with the clock. It is crucial that the reset signal is not deactivated within the setup time of a memory, ie shortly before a clock edge!!!

 

The external POR signal sets the 3 flip-flops of the shift register asynchronous to ‘0’ (= reset). Since it is asynchronous to the system clock, it is called reset_a and is active low.

 

After the POR signal has been deactivated, its inactive value ‘1’ is clocked into the shift register as soon as the system clock is present. The first two flip-flops prevent a possible metastable state from affecting the synchronized reset_s signal, otherwise the entire system would be put into an undefined metastable state. After 3 clocks all outputs of the 3 flip flops are set to the value ‘1’, which means that the triple NAND gate changes from the value ‘1’ (active reset_s level) to the value ‘0’ (inactive reset_s level ) changes.

 

Code implementation in HDL

 

With FlipFlops in series:

 

 

Verilog

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
`timescale 1ns / 1ps
module aufgabe2_1(
      input reset_a,
      input clk,    
      output reset_s
);
reg q0,q1,q2;
//Always beschreibt die 3 FlipFlop Speicherelemente
always@(posedge clk, reset_a)
begin
if (reset_a == 1‘b0)    //reset_a ist asynchron zu clk
begin
     q0 <= 1′b0;
     q1 <= 1‘b0;
     q2 <= 1′b0;
end    
else if (clk == 1‘b1)
begin
     q0 <= reset_a;
     q1 <= q0;
     q2 <= q1;
end    
end
//nebenläufige kombinatorische Logik
assign reset_s = !(q0 & q1 & q2);
endmodule

 

 

VHDL

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity por is
  port(
    reset_a: in std_logic;
    clk:     in std_logic;
    reset_s: out std_logic
    );
end entity por;
—
architecture rtl of por is
   signal q0,q1,q2: std_logic;
begin
—process beschreibt die 3 FlipFlop Speicherelemente———–
process(clk,reset_a)
begin
   if reset_a = ‘0’ then   — reset_a ist asynchron zu clk
       q0 <= ‘0’;
       q1 <= ‘0’;
       q2 <= ‘0’;
   elsif clk=’1’ and clk’event then
       q0 <= reset_a;
       q1 <= q0;
       q2 <= q1;
   end if;
end process;
—nebenläufige kombinatorische Logik——
reset_s <= not (q0 and q1 and q2);
end architecture rtl;

The waveform after the simulation looks like:

 

 

Using a shift register

 

 

Verilog

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
`timescale 1ns / 1ps
module aufgabe2_1b(
    input reset_a,
    input clk,
    output reset_s
    );
reg [3:0] q;
always@(posedge clk,reset_a) //auch reset_a muss in der Sensitivity–Liste stehen!!!
begin
//process beschreibt die 3 FlipFlop Speicherelemente
begin
   if(reset_a == 1‘b0) //reset_a ist asynchron zu clk
       q <= 3′b000; //alle Elemente des Vektors q auf ‘0’ setzen
   else if( clk == 1‘b1)
       q  <= {reset_a , q[2:1]}; //Schieberegister, rechts schiebend
   end
end
//nebenläufige kombinatorische Logik
assign reset_s = (q == 3′b111) ? 1‘b0 : 1’b1;
endmodule

 

 

VHDL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity por is
port(
reset_a: in std_logic;
clk:in std_logic;
reset_s: out std_logic
);
end entity por;
—
architecture rtl of por is
signal q: std_logic_vector(2 downto 0);
begin
—process beschreibt die 3 FlipFlop Speicherelemente———–
process(clk,reset_a) –– auch reset_a muss in der Sensitivity–Liste stehen!!!
begin
if reset_a = ‘0’ then— reset_a ist asynchron zu clk
q <= (others => ‘0’); — alle Elemente des Vektors q auf ‘0’ setzen
elsif clk=’1’ and clk’event then
q<= reset_a & q(2 downto 1); —Schieberegister, rechts schiebend
end if;
end process;
—nebenläufige kombinatorische Logik——
reset_s <= ‘0’ when q = “111” else ‘1’;
end architecture rtl;

 

 

 

______________________________________________________________

This is a guest post by Alberto Lopez which was originally published on Mis Circuitos

linked in icon
Sign up for HardwareBee
* = required field

Recent Stories

Low Noise Amplifier: Ultimate Guide
Low Noise Amplifier: Ultimate Guide
ASIC Prototyping
FPGA Prototyping Services
FPGA Prototyping Services
QFN Socket
QFN Socket
FPGA in Medical and Healthcare
FPGA in Medical and Healthcare
The Ultimate Guide to Logic Chips
The Ultimate Guide to Logic Chips
FPGA Manufacturers: A Comprehensive Overview
FPGA Manufacturers: A Comprehensive Overview
FPGA for AI (Artificial Intelligence): Ultimate Guide
FPGA for AI (Artificial Intelligence): Ultimate Guide
Get 3 Quotes from Electronic Design Companies
Get 3 Quotes from FPGA Design Companies
Get 3 Quotes from Embedded SW Services
Get 3 Quotes from EMS Companies

Find Design Services

All

Get IC Prices

Get Price Offers From
  • Electronic Design Services
  • FPGA Design Services
  • Embedded Software Companies
  • PCB Layout Services
  • Printed Circuit Board Manufacturers
  • Design & Manufacturing Services
Welcome New Vendors
  • Spark Product Innovation
  • QBayLogic
  • Fidus Systems
  • nao.design
  • HQ NextPCB
Browse Vendor Directories
  • Electronic Design Companies
  • FPGA Design Companies
  • Embedded Software Services
  • Manufacturing Companies
Featured Vendor

Spark Product Innovation

Recent Posts
  • Low Noise Amplifier: Ultimate Guide
  • ASIC Prototyping
  • FPGA Prototyping Services
  • QFN Socket
  • FPGA in Medical and Healthcare
Most Popular Blog Posts
  • The Ultimate Guide to: Variable Gain Amplifier
  • FPGA for AI (Artificial Intelligence): Ultimate Guide
  • PCB Stackup: Ultimate Guide and Examples
  • The Ultimate Guide to Logic Chips
  • FPGA Video Processing: Ultimate Guide

Never miss an update!

Follow us on LinkedIn

Do you need any price
information?

(Electronic design, FPGA design, Embedded SW services, PCB design, Turnkey)

Yes
No
This page is sponsored by
HardwareBee

Copyright 2017-2024, HardwareBee. All rights reserved.

  • About Us
  • Contact
  • Subscribe
  • News
  • Get Free Support
  • Get listed
  • Send a wiki/article
  • Advertise

Follow Us

Be sure to follow our LinkedIn company page where we share our latest updates LinkedIn
Partner with us Partner with us

Design and Manufacturing Services

  • Engineering Design Services
  • Electronic Design and Manufacturing
  • Electronic Product Development
  • Electronic Product Design
  • Electronic Consulting Services
  • Electronic Engineering Companies
  • Electronic Engineering Services
  • Electronic Product Design and Development
  • Electronics Design Services
  • Electronics Design Company
  • Electronic Design Consultants
  • Electronic Design Company
  • FPGA Design Company
  • FPGA Consultant
  • FPGA Design Services UK
  • Electronics Manufacturing services
  • Electronics Manufacturing Companies
  • Electronic Contract Manufacturing Companies
  • Electronic Manufacturing Services Companies
  • EMS Companies Directory
  • Electronic Design Services
  • FPGA Design Services
  • Embedded Software Companies
  • PCB Layout Services
  • Printed Circuit Board Manufacturers
  • Design and Manufacturing Services
X

Don’t miss anything, follow us on LinkedIn

https://www.linkedin.com/company/hardwarebee/

We are using cookies to give you the best experience on our website.

You can find out more about which cookies we are using or switch them off in .

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.

3rd Party Cookies

This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.

Keeping this cookie enabled helps us to improve our website.

Please enable Strictly Necessary Cookies first so that we can save your preferences!

Additional Cookies

This website uses the following additional cookies:

(List the cookies that you are using on the website here.)

Please enable Strictly Necessary Cookies first so that we can save your preferences!

Close menu