在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1954|回复: 3

[求助] 求助:VHDL实现30个周期的循环,如何实现

[复制链接]
发表于 2011-11-21 18:12:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
想实现30个周期的fa3信号循环,超过30个周期fa3恢复初始值0,程序不对,请高手指教,谢谢
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity a_team is
    Port ( clk : in  STD_LOGIC; --35M主时钟
           rst_n : in  STD_LOGIC;
           fa3 : out  STD_LOGIC);
end a_team;
architecture Behavioral of a_team is
signal cnt1:std_logic_vector(10 downto 0); --外层计数,想实现30个fa3信号周期循环
signal count1:std_logic_vector(4 downto 0);--内层计数,实现fa3,频率3.5M,占空比2:5
signal fa3_temp:std_logic;
begin
process(clk,rst_n)
begin
   if rst_n = '0' then
    cnt1 <= (others => '0');
      count1 <= (others => '0');
      fa3_temp <= '0';
   elsif clk'event and clk = '1' then
    cnt1 <=cnt1+1;
      count1 <= count1 + 1;
      if cnt1 = 30 then
        cnt1 <= (others => '0');
      elsif cnt1 < 30 then
     if count1 =9  then
    count1<= (others=>'0');
     elsif(count1<4) then   fa3_temp <= '1';
   else  fa3_temp <= '0';
   
   end if;
   end if;
end if;
end process;
  fa3 <= fa3_temp;
end Behavioral;
发表于 2011-11-21 22:11:12 | 显示全部楼层
楼主你能把你想要的输出波形画一个波形图么?我理解你的意思是不是只希望fa输出30个时钟周期以后就输出为零,以后这个状态就不变了,除非被复位?
发表于 2011-11-22 09:01:11 | 显示全部楼层
搞个计数器 就行了吧
发表于 2011-11-22 09:27:49 | 显示全部楼层
建议你分成两个process来写,第一个生成fa3;第二个监视fa3的次数,每跳一次cnt1++,到30次后反馈信号给第一个process,归零。反馈信号和归零的时序要安排好,防止fa3出现短脉冲。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-7-1 07:28 , Processed in 0.135143 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表