带测试平台的计数器的澳门在线代码

上次 ,几个4位 柜台 在Verilog中实现了包括递增计数器,递减计数器和递减计数器在内的功能。提供了计数器的Verilog代码。 

在这个 澳门在线项目 ,计数器是在澳门在线中实现的。计数器的测试台澳门在线代码也与仿真波形一起显示。 


带测试台的澳门在线代码

递增计数器的澳门在线代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- FPGA projects using Verilog code 澳门在线 code
-- fpga4student.com: FPGA projects, Verilog projects,  澳门在线项目 
--  澳门在线项目 : 带测试平台的计数器的澳门在线代码  
--  澳门在线项目 : 澳门在线 code for up counter   
entity UP_COUNTER is
    Port ( clk: in std_logic; -- clock input
           reset: in std_logic; -- reset input 
           counter: out std_logic_vector(3 downto 0) -- output 4-bit counter
     );
end UP_COUNTER;

architecture Behavioral of UP_COUNTER is
signal counter_up: std_logic_vector(3 downto 0);
begin
-- up counter
process(clk)
begin
if(rising_edge(clk)) then
    if(reset='1') then
         counter_up <= x"0";
    else
        counter_up <= counter_up + x"1";
    end if;
 end if;
end process;
 counter <= counter_up;

end Behavioral;

递增计数器的Testbench 澳门在线代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- FPGA projects using Verilog code 澳门在线 code
-- fpga4student.com: FPGA projects, Verilog projects,  澳门在线项目 
--  澳门在线项目 : 带测试平台的计数器的澳门在线代码  
--  澳门在线项目 : Testbench 澳门在线 code for up counter
entity tb_counters is
end tb_counters;

architecture Behavioral of tb_counters is

component UP_COUNTER 
    Port ( clk: in std_logic; -- clock input
           reset: in std_logic; -- reset input 
           counter: out std_logic_vector(3 downto 0) -- output 4-bit counter
     );
end component;
signal reset,clk: std_logic;
signal counter:std_logic_vector(3 downto 0);

begin
dut: UP_COUNTER port map (clk => clk, reset=>reset, counter => counter);
   -- Clock process definitions
clock_process :process
begin
     clk <= '0';
     wait for 10 ns;
     clk <= '1';
     wait for 10 ns;
end process;


-- Stimulus process
stim_proc: process
begin        
   -- hold reset state for 100 ns.
     reset <= '1';
   wait for 20 ns;    
    reset <= '0';
   wait;
end process;
end Behavioral;

仿真波形:
带测试台的澳门在线代码

递减计数器的澳门在线代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- FPGA projects using Verilog code 澳门在线 code
-- fpga4student.com: FPGA projects, Verilog projects,  澳门在线项目 
--  澳门在线项目 : 带测试平台的计数器的澳门在线代码  
--  澳门在线项目 : 澳门在线 code for down counter   
entity DOWN_COUNTER is
    Port ( clk: in std_logic; -- clock input
           reset: in std_logic; -- reset input 
           counter: out std_logic_vector(3 downto 0) -- output 4-bit counter
     );
end DOWN_COUNTER;

architecture Behavioral of DOWN_COUNTER is
signal counter_down: std_logic_vector(3 downto 0);
begin
-- down counter
process(clk)
begin
if(rising_edge(clk)) then
    if(reset='1') then
         counter_down <= x"F";
    else
        counter_down <= counter_down - x"1";
    end if;
 end if;
end process;
 counter <= counter_down;

end Behavioral;

递减计数器的Testbench 澳门在线代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- FPGA projects using Verilog code 澳门在线 code
-- fpga4student.com: FPGA projects, Verilog projects,  澳门在线项目 
--  澳门在线项目 : 带测试平台的计数器的澳门在线代码  
--  澳门在线项目 : Testbench 澳门在线 code for down counter
entity tb_counters is
end tb_counters;

architecture Behavioral of tb_counters is

component DOWN_COUNTER 
    Port ( clk: in std_logic; -- clock input
           reset: in std_logic; -- reset input 
           counter: out std_logic_vector(3 downto 0) -- output 4-bit counter
     );
end component;
signal reset,clk: std_logic;
signal counter:std_logic_vector(3 downto 0);

begin
dut: DOWN_COUNTER port map (clk => clk, reset=>reset, counter => counter);
   -- Clock process definitions
clock_process :process
begin
     clk <= '0';
     wait for 10 ns;
     clk <= '1';
     wait for 10 ns;
end process;


-- Stimulus process
stim_proc: process
begin        
   -- hold reset state for 100 ns.
     reset <= '1';
   wait for 20 ns;    
    reset <= '0';
   wait;
end process;
end Behavioral;
仿真波形:
带测试台的澳门在线代码

上下计数器的澳门在线代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- FPGA projects using Verilog code 澳门在线 code
-- fpga4student.com: FPGA projects, Verilog projects,  澳门在线项目 
--  澳门在线项目 : 带测试平台的计数器的澳门在线代码  
--  澳门在线项目 : 澳门在线 code for up-down counter   
entity UPDOWN_COUNTER is
    Port ( clk: in std_logic; -- clock input
           reset: in std_logic; -- reset input 
     up_down: in std_logic; -- up or down
           counter: out std_logic_vector(3 downto 0) -- output 4-bit counter
     );
end UPDOWN_COUNTER;

architecture Behavioral of UPDOWN_COUNTER is
signal counter_updown: std_logic_vector(3 downto 0);
begin
-- down counter
process(clk)
begin
if(rising_edge(clk)) then
    if(reset='1') then
         counter_updown <= x"0";
    elsif(up_down='1') then
         counter_updown <= counter_updown - x"1"; -- count down
  else 
   counter_updown <= counter_updown + x"1"; -- count up
    end if;
 end if;
end process;
 counter <= counter_updown;

end Behavioral;

上下计数器的Testbench 澳门在线代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- FPGA projects using Verilog code 澳门在线 code
-- fpga4student.com: FPGA projects, Verilog projects,  澳门在线项目 
--  澳门在线项目 : 带测试平台的计数器的澳门在线代码  
--  澳门在线项目 : Testbench 澳门在线 code for up-down counter
entity tb_counters is
end tb_counters;

architecture Behavioral of tb_counters is

component UPDOWN_COUNTER 
    Port ( clk: in std_logic; -- clock input
           reset: in std_logic; -- reset input 
     up_down: in std_logic; 
           counter: out std_logic_vector(3 downto 0) -- output 4-bit counter
     );
end component;
signal reset,clk,up_down: std_logic;
signal counter:std_logic_vector(3 downto 0);

begin
dut: UPDOWN_COUNTER port map (clk => clk, reset=>reset, up_down => up_down, counter => counter);
   -- Clock process definitions
clock_process :process
begin
     clk <= '0';
     wait for 10 ns;
     clk <= '1';
     wait for 10 ns;
end process;


-- Stimulus process
stim_proc: process
begin        
   -- hold reset state for 100 ns.
     reset <= '1';
   up_down <= '0';
    wait for 20 ns;    
    reset <= '0';
  wait for 300 ns;    
  up_down <= '1';
   wait;
end process;
end Behavioral;
仿真波形:
带测试台的澳门在线代码
推荐的 澳门在线项目 :
1. 什么是FPGA? 澳门在线如何在FPGA上工作
2. FIFO存储器的澳门在线代码
3. FIR滤波器的澳门在线代码
4. 8位微控制器的澳门在线代码
5. 矩阵乘法的澳门在线代码
6. 开关尾环计数器的澳门在线代码
7. FPGA上数字闹钟的澳门在线代码
8. 8位比较器的澳门在线代码
9. 如何使用澳门在线将文本文件加载到FPGA中
10。  D触发器的澳门在线代码
11。  完整加法器的澳门在线代码
12  具有可变占空比的澳门在线中的PWM发生器
13   ALU的澳门在线代码
14。  带测试平台的计数器的澳门在线代码
15  16位ALU的澳门在线代码
16。  澳门在线中的移位器设计
17。  澳门在线中的非线性查找表实现
18岁  澳门在线中的密码协处理器设计

19   Verilog和澳门在线 :通过示例解释
20  FPGA上时钟分频器的澳门在线代码
21  如何生成时钟使能信号而不是创建另一个时钟域
22  澳门在线代码,用于反跳FPGA上的按钮
23。  交通信号灯控制器的澳门在线代码
24  用于简单2位比较器的澳门在线代码
25岁  单端口RAM的澳门在线代码
22  澳门在线代码,用于反跳FPGA上的按钮
23。  交通信号灯控制器的澳门在线代码
24  用于简单2位比较器的澳门在线代码
25岁  单端口RAM的澳门在线代码
26  使用FSM的停车场系统的澳门在线代码
27。  澳门在线编码与软件编程
FPGA Verilog 澳门在线课程

1条评论:

热门FPGA项目