这VHDL代码什么意思,求大神给予详细说明!急!! 10

LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;USEIEEE.std_logic_arith.ALL;USEIEEE.std_logic_... LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_arith.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY clk_div10 IS
port(clk:IN std_logic;
clk_div:OUT std_logic);
END clk_div10;
ARCHITECTURE rtl OF clk_div10 IS
SIGNAL count:std_logic_vector(2 DOWNTO 0 );
SIGNAL clk_tmp:std_logic;
BEGIN
PROCESS(clk)
BEGIN
IF ( clk'event AND clk ='1') THEN ---上升沿触发;
IF ( count ="100" )THEN ----当count记过五个时钟周期时,clk_tmp反相;
count <= (OTHERS => '0' );
clk_tmp <= NOT clk_tmp;
ELSE
count <= count +1;
END IF;
END IF;
END PROCESS;
clk_div <= clk_tmp;
END rtl;
还没打完,下面还有,
展开
 我来答
碧血玉叶花
2015-05-24 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1655万
展开全部

你的问题在于对EVENT属性的运用,这个属性只对PS2INTERUPTION的变化沿敏感,而且不能同时和其他并列,因为沿是一个瞬间,其他可以等效成永远,这种选择关系本身就矛盾,所以无法综合。

你可以用你当前部分的时钟缓冲两拍PS2INTERUPTION,然后用时钟沿触发动作;

FL:PROCESS(clk)
BEGIN
IF (clk'EVENT AND clk='1') THEN
    PS2INTERUPTION2<=PS2INTERUPTION;
    PS2INTERUPTION_REG<=PS2INTERUPTION2;
    if PS2INTERUPTION_REG='0' and PS2INTERUPTION2='1' then
        LITTLED<='1';
    ELSif  PS2INTERUPTION_REG='1' and PS2INTERUPTION2='0' then
       LITTLED<='0';
    END IF;
END IF;
END PROCESS;



当然,针对你这种特殊情况,你也可以直接时钟下:LITTLED <= PS2INTERUPTION2;亦可避免亚稳态;

追问
接下来还有呢 你留下邮箱 我给你发 你帮帮忙呗
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
375629943
2015-05-24 · TA获得超过334个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:290万
展开全部
对输入的时钟进行分频吧。
追问
接下来还有呢 你留下邮箱 我给你发 你帮帮忙呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式