Ring Counter is composed of Shift Registers. The data pattern will recirculate as long as clock pulses are applied. For example, if we talk about 4-bit Ring Counter, then the data pattern will repeat every four clock pulses. If pattern is 1000, then it will generate 0100, 0010, 0001, 1000 and so on. Find out Verilog Code here.
![]() |
| Ring Counter |
Sr. No.
|
Name of the Pin
|
Direction
|
Width
|
Description
|
1
|
Clk
|
Input
|
1
|
Clock Signal
|
2
|
Rst
|
Input
|
1
|
Reset Signal
|
3
|
Op
|
Output
|
4
|
Output Signal
|
library ieee;
use ieee.std_logic_1164.all;
entity ring_counter is
port(clk : in std_logic;
rst : in std_logic;
op : out std_logic_vector(3 downto 0));
end entity;
architecture beh of ring_counter is
signal opt : std_logic_vector(3 downto 0);
begin
process (clk,rst)
begin
if (rst = '1') then
opt <= "1000";
elsif (rising_edge(clk)) then
opt <= opt(0) & opt(3 downto 1);
end if;
end process;
op <= opt;
end beh;

No comments:
Post a Comment