3318|1

6892

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

程序中多个实钟带来的问题分享给大家,警醒后来者 [复制链接]

FPGA程序设计者,最后是全同步设计,这样所有程序都在主时钟同一个节拍下工作,系统时序分析和统计都有参照,程序稳定不容易出问题。

但是很多初学者由于对这个问题不了解或研究不深入经常写下面的程序:

LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_signed.all;
ENTITY tongbu  IS
        PORT(        
        CLK                        : IN   std_logic;        --晶振时钟
                clks                : IN   std_logic;        --秒脉冲输入
                reset                : IN   std_logic;       
                clk_tb                : OUT STD_LOGIC ;--同步信号输出
                right                : OUT STD_LOGIC ;
                fault                : OUT STD_LOGIC );

END tongbu ;
ARCHITECTURE a OF tongbu IS
SIGNAL s0        : STD_LOGIC ;
SIGNAL s1        : STD_LOGIC ;
SIGNAL s2        : STD_LOGIC ;
signal count :integer range 0 to 255;
signal pps_count :integer range 0 to 8;
signal low_count :integer range 0 to 8;

BEGIN
process(clks,s0)
begin
if(clks'event and clks='1')then
s1<='1';
end if;
if(s0='1')then
s1<='0';
end if;
end process;

process(CLK,clks,s1,count,reset)
begin
if(s1='1')then
if(CLK'event and CLK='1')then
  if(count=255 or (clks='1' and count>25)or reset='0')then
   count<=0;
  else count<=count+1;
end if;
end if;
end if;
end process;

process(clks,count)
begin
if(clks'event and clks='0')then
if(count<25 and s2='0')then
low_count<=low_count+1;
end if;
end if;
end process;

process(low_count)
begin
if(low_count>1)then
s0<='1';
else s2<='1';
end if;
end process;

process(clks,count,pps_count)
begin
if(count>248 and count<252 and pps_count<4)then
if(clks'event and clks='1')then
pps_count<=pps_count+1;
end if;
end if;
end process;

process(pps_count)
begin
if(pps_count>2)then
right<='1';
fault<='0';
elsif(pps_count<3)then
fault<='1';
right<='0';
end if;
end process;

END a;

 

上面程序写法对器件中D触发器结构和硬件实现非常不了解,产生了门控时钟(GATED CLOCK)。所谓门控时钟就是时钟信号通过逻辑门后去驱动D触发器,这样电路,软件经常不能准确评估延时和建立时间等路径参数。

如果对上面的电路仿真,就会出现下面告警:

  Warning: No clock transition on "count[0]" register due to stuck clock or clock enable

此帖出自FPGA/CPLD论坛

最新回复

多谢分享  详情 回复 发表于 2010-6-10 10:45
点赞 关注
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 

回复
举报

245

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
多谢分享
此帖出自FPGA/CPLD论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表