现场可编程门阵列上时钟分频器的VHDL代码

这个 甚高密度脂蛋白项目 提供完整的VHDL代码 时钟分频器 现场可编程门阵列。还提供了用于时钟分频器的Testbench 甚高密度脂蛋白代码。时钟分频器的VHDL代码可在以下位置进行合成和验证 现场可编程门阵列.

现场可编程门阵列上时钟分频器的VHDL代码

甚高密度脂蛋白 时钟分频器的代码 现场可编程门阵列:

-- fpga4student.com 现场可编程门阵列 projects, 甚高密度脂蛋白项目, Verilog projects
-- 甚高密度脂蛋白项目: 甚高密度脂蛋白 code for digital clock 上 现场可编程门阵列
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
entity clock_div is
port (
   clk_in: in std_logic; -- clock input 上 现场可编程门阵列
   clk_out: out std_logic -- clock output 
  );
结束 clock_div;

architecture Behavioral of clock_div is
signal divisor: std_logic_vector(27 downto 0):=(others =>'0');
begin
 process(clk_in)
 begin
 如果 (rising_edge(clk_in)) then
 divisor <= divisor + x"0000001";
 -- If(divisor>=x"2FAF07F") then -- for running 上 现场可编程门阵列 -- comment when running simulation
 -- Modify the divisor (x"2FAF07F"=49999999) above to get the clock frequency you want: 
 -- Frequency of clk_out = Frequency of (clk_in) divided by (divisor + 1)
 -- If the frequency of clk_in is 50MHz and the divisor is 49999999=x"2FAF07F", 
 -- the frequency of clk_out is 1Hz
 如果 (divisor>=x"0000001") then -- for running simulation -- comment when running 上 现场可编程门阵列 
 -- divisor = 1 => divide clock by half for simulation purposes
 divisor <= x"0000000";
 结束 如果 ;
 如果 (divisor<x"0000001") then -- replace x"0000001" by x"17D7840" when running 上 现场可编程门阵列  
 clk_out <= '1';
 else 
 clk_out <= '0';
结束 如果 ;
 结束 如果 ;
 结束 process;
结束 Behavioral;
 

现场可编程门阵列时钟分频器的VHDL Testbench代码:

-- fpga4student.com 现场可编程门阵列 projects, 甚高密度脂蛋白项目, Verilog projects
-- 甚高密度脂蛋白项目: 甚高密度脂蛋白 code for 时钟分频器 上 现场可编程门阵列
-- 甚高密度脂蛋白 Testbench code for 时钟分频器
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
 
ENTITY tb_clock_div IS
END tb_clock_div;
 
ARCHITECTURE behavior OF tb_clock_div IS 
    -- Clock divider 
    COMPONENT clock_div
    PORT(
         clk_in : IN  std_logic;
         clk_out : OUT  std_logic
        );
    END COMPONENT;
   --Inputs
   signal clk_50 : std_logic := '0';

  --Outputs
   signal clk_1s : std_logic;

   -- Clock period definitions
   constant clk_50_period : time := 20 ns;
 
BEGIN
 
 -- Instantiate the 甚高密度脂蛋白 时钟分频器 
   uut: clock_div PORT MAP (
          clk_in => clk_50,
          clk_out => clk_1s
        );

   -- creating clock
   clk_50_process :process
   begin
  clk_50 <= '0';
  wait for clk_50_period/2;
  clk_50 <= '1';
  wait for clk_50_period/2;
   结束 process;

   -- Stimulus process
   stim_proc: process
   begin  
      wait for 100 ns; 
      wait for clk_50_period*10;
      wait;
   结束 process;

END;

现场可编程门阵列时钟分频器的仿真波形:

现场可编程门阵列上时钟分频器的VHDL代码

在出于仿真目的的VHDL代码中,除数设置为1,因此clk_out的时钟频率通过将clk_in的频率除以2得到,如时钟分频器的主VHDL代码中所述。仿真波形还显示clk_in的频率是clk_in时钟频率的一半。在运行VHDL代码时 现场可编程门阵列,您可以在代码中修改时钟分频器,以从FPGA的时钟输入中获得所需的频率。 

注意,此代码将在您的设计中创建另一个时钟,因此,在时钟树综合过程中需要使用FPGA工具来照顾额外的内部生成时钟,这可能会导致FPGA时序问题,因为它不是由FPGA生成的。 专用FPGA时钟发生器 (PLL / DCM /等)。此外,您还必须照顾 多时钟域问题 在设计时,例如在不同时钟域之间连接信号(需要同步器等)。建议在FPGA上生成较慢的时钟使能信号,而不是驱动设计的另一部分。您可以访问 这里 有关如何在VHDL中执行此操作的更多详细信息。
现场可编程门阵列上时钟分频器的Verilog代码: 这里
推荐的 甚高密度脂蛋白项目:
1. 什么是FPGA? 甚高密度脂蛋白如何在FPGA上工作
2. FIFO存储器的VHDL代码
3. FIR滤波器的VHDL代码
4. 8位微控制器的VHDL代码
5. 矩阵乘法的VHDL代码
6. 开关尾环计数器的VHDL代码
7. 现场可编程门阵列上数字闹钟的VHDL代码
8. 8位比较器的VHDL代码
9. 如何使用VHDL将文本文件加载到FPGA中
10。 D触发器的VHDL代码
11。 完整加法器的VHDL代码
12 具有可变占空比的VHDL中的PWM发生器
13 ALU的VHDL代码
14。 带测试平台的计数器的VHDL代码
15 16位ALU的VHDL代码
16。 甚高密度脂蛋白中的移位器设计
17。 甚高密度脂蛋白中的非线性查找表实现
18岁 甚高密度脂蛋白中的密码协处理器设计

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

没意见:

发表评论

热门FPGA项目