永发信息网

VHDL type和subtype的一个小问题

答案:2  悬赏:60  手机版
解决时间 2021-03-04 12:37
  • 提问者网友:缘字诀
  • 2021-03-04 06:00
VHDL type和subtype的一个小问题
最佳答案
  • 五星知识达人网友:逃夭
  • 2021-03-04 07:21
子类型SUBTYPE 只是由TYPE 所定义的原数据类型的一个子集。子类型的定义只在基本数据类型上作一些约束,并没有定义新的数据类型。TYPE 定义的类型包括已在VHDL 预定义程序包中用TYPE 定义过的类型。第2 句是错误的因为不能用SUBTYPE来定义一种新的数据类型。
全部回答
  • 1楼网友:琴狂剑也妄
  • 2021-03-04 08:40
首先你要弄清系统的硬件原理,你是想用六个数码管显示时,分,秒对吧,其次你要明白明白七段数码管显示的原理,要么是静态输出驱动电平,要么是动态扫描,我看了你的code感觉你是想静态输出6个数码管的段码,所以你的Packet里对于显示的数组应该定义成6个成员的8位数组,而对时间位码的定义应该是0到9的整形数,也是6个,对应时分秒,所以你在code里用case把显示的时间映射为数码管的七段显示码应该要用6次的LOOP。代码我改好了,你要有问题可以HI找我。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE WORK.PACK_CLOCK.ALL;
ENTITY C_DISPLAY IS
PORT(ALARM_TIME,CURRENT_TIME,NEW_TIME:IN T_CLOCK_TIME;
SHOW_NEW_TIME,SHOW_ALARM:IN STD_LOGIC;
SOUND_ALARM :OUT STD_LOGIC;
DISPLAY:OUT T_DISPLAY);
END ENTITY C_DISPLAY;
ARCHITECTURE ART OF C_DISPLAY IS
SIGNAL A:T_CLOCK_TIME;
BEGIN
CTRL:PROCESS(ALARM_TIME,CURRENT_TIME,NEW_TIME,SHOW_ALARM,SHOW_NEW_TIME)
BEGIN
SOUND_LP: FOR I IN ALARM_TIME'RANGE LOOP
IF NOT(ALARM_TIME(I) = CURRENT_TIME(I)) THEN
SOUND_ALARM
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯