4368|9

25

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

基于FPGA的秒表的设计 [复制链接]

课程设计刚做完,发个秒表的程序分享下。
实验版是Altera公司的ep2c5q208c8,晶振为50Mhz。
功能为复位,启停,用6为数码管显示。精确到1/100s。
程序为:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
--------------实体----------------
ENTITY jishuqi IS
PORT(start_stop,res,clk:IN STD_LOGIC;
sel:OUT STD_LOGIC_VECTOR (2 DOWNTO 0);
data:OUT STD_LOGIC_VECTOR (6 DOWNTO 0));
END jishuqi;
--------------构造体-------------------------------------
ARCHITECTURE rtl OF jishuqi IS
SIGNAL clk_1:STD_LOGIC;
SIGNAL clk_2:STD_LOGIC;
SIGNAL Flag_1:STD_LOGIC:='0';
SIGNAL Flag_2:STD_LOGIC:='0';
BEGIN
---------------分频-----------------------------------
PROCESS(clk)
VARIABLE count:integer:=0;
BEGIN
IF(clk'event AND clk='1') THEN
count:=count+1;
IF(count <= 390) THEN
clk_1<='0';
END IF;
IF(count > 390 ) THEN
clk_1<='1';
END IF;
IF(count >= 790 ) THEN
count:=0;
END IF;
END IF;
END PROCESS;
--------------------------------------------------------
PROCESS(clk)
VARIABLE count_1:integer:=0;
BEGIN
IF(clk'event AND clk='1') THEN
count_1 := count_1 + 1;
IF(count_1 <= 159999) THEN
clk_2 <= '0';
END IF;
IF(count_1 > 159999) THEN
clk_2 <= '1';
END IF;
IF(count_1 >= 319999) THEN
count_1 := 0;
END IF;
END IF;
END PROCESS;
--------------------计数-----------------------------------
PROCESS(clk_1,clk_2,start_stop,res)
VARIABLE temp:integer:=0;
VARIABLE odata:integer:=0;
VARIABLE second_1:integer:=0;
VARIABLE second_2:integer:=0;
VARIABLE second_3:integer:=0;
VARIABLE second_4:integer:=0;
VARIABLE second_5:integer:=0;
VARIABLE second_6:integer:=0;
BEGIN
IF(clk_2'EVENT AND clk_2='1' AND Flag_1 = '1') THEN
second_1 := second_1 + 1;
IF(second_1 = 10) THEN
second_1 := 0;
second_2 := second_2 + 1;
END IF;
IF(second_2 = 10) THEN
second_2 := 0;
second_3 := second_3 + 1;
END IF;
IF(second_3 = 10) THEN
second_3 := 0;
second_4 := second_4 + 1;
END IF;
IF(second_4 = 6) THEN
second_4 := 0;
second_5 := second_5 + 1;
END IF;
IF(second_5 = 10) THEN
second_5 := 0;
second_6 := second_6 + 1;
END IF;
IF(second_6 = 6) THEN
second_6 := 0;
END IF;
END IF;

if (res='1')  then

second_1:=0;

second_2:=0;

second_3:=0;

second_4:=0;

second_5:=0;

second_6:=0;

end if;

 

-----------------------位选------------------------------------
IF(clk_1'EVENT AND clk_1='1') THEN
temp:= temp + 1;
IF(temp = 1) THEN
sel <= "010";
odata := second_6;
ELSIF(temp = 2) THEN
sel <= "011";
odata := second_5;
ELSIF(temp = 3) THEN
sel <= "100";
odata := second_4;
ELSIF(temp = 4) THEN
sel <= "101";
odata := second_3;
ELSIF(temp = 5) THEN
sel <= "110";
odata := second_2;
ELSIF(temp = 6) THEN
sel <= "111";
odata := second_1;
temp:= 0;
END IF;
END IF;
----------------------显示--------------------------------
IF(odata = 0) THEN data<="0111111";
ELSIF(odata = 1) THEN data<="0000110";
ELSIF(odata = 2) THEN data<="1011011";
ELSIF(odata = 3) THEN data<="1001111";
ELSIF(odata = 4) THEN data<="1100110";
ELSIF(odata = 5) THEN data<="1101101";
ELSIF(odata = 6) THEN data<="1111101";
ELSIF(odata = 7) THEN data<="0000111";
ELSIF(odata = 8) THEN data<="1111111";
ELSIF(odata = 9) THEN data<="1101111";
ELSE
data<="XXXXXXX";
END IF;
END PROCESS;
---------------------起停------------------------------------
PROCESS(start_stop)
BEGIN
IF(start_stop'EVENT AND start_stop='0') THEN
Flag_1 <= NOT Flag_1;
END IF;
END PROCESS;
END rtl;

此帖出自FPGA/CPLD论坛

最新回复

thanks!!!!  详情 回复 发表于 2011-5-8 10:25
点赞 关注
 

回复
举报

25

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

另一个秒表程序

太长,以压缩包形式发送。。。。

希望飘过的朋友们也可以发送自己的秒表程序分享下。还有模块化的写法有机会在发个吧。

秒表程序.rar

1.2 KB, 下载次数: 36

此帖出自FPGA/CPLD论坛
 
 

回复

25

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

网上的秒表资料,附几个程序。

压缩包内也有几个秒表程序,仅供参考。具体更具自己的题目要求改写即可!欢迎更多的秒表程序。。。。。

秒表资料.rar

1.95 MB, 下载次数: 81

此帖出自FPGA/CPLD论坛
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

4
 
收藏了 感谢楼主
此帖出自FPGA/CPLD论坛
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

5
 

楼主设计过程中D触发器时钟采用了分频时钟触发,对秒表的设计可能会出现抖动等问题,走时不准等问题。建议改用全同步设计。此外,用门控时钟设计,会造成整个电路不稳等问题

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

6
 

谢谢斑竹意见,好久没来转转啦。。。。。。。

  我的秒表程序是刚学写的,太多问题都没注意。 不好意思啦。会听取意见的的。。

此帖出自FPGA/CPLD论坛
 
 
 

回复

2万

帖子

74

TA的资源

管理员

7
 

回复 6楼 yz495849064 的帖子

期待楼主更完美的程序出炉:)
此帖出自FPGA/CPLD论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

8
 

好样的,程序更完善! 我期待你的大作!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

762

帖子

0

TA的资源

一粒金砂(中级)

9
 
谢谢版主,拿走了哈,很不错的程序
此帖出自FPGA/CPLD论坛
 
 
 

回复

45

帖子

0

TA的资源

一粒金砂(中级)

10
 
thanks!!!!
此帖出自FPGA/CPLD论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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