2338|1

6892

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

急求高手编程指教 [复制链接]

library ieee;
USE ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
entity div_out is
port( din,clk:in std_logic;
chk:in std_logic_vector(7 downto 0);
en,reset:in std_logic;
div_clkut std_logic_vector(11 downto 0);
smut std_logic_vector(3 downto 0);  --A或0
qut std_logic_vector(7 downto 0));
end div_out;
architecture behav of div_out is
signal temp:std_logic_vector(7 downto 0);
signal count:integer range 0 to 7 :=0;
signal num: std_logic;
signal y:std_logic_vector(7 downto 0);
signal D:std_logic_vector(7 downto 0);
SIGNAL c :INTEGER RANGE 0 TO 8;
  signal m:STD_LOGIC_VECTOR(11 DOWNTO 0);
begin
p1:process(clk)
begin
if(clk'event and clk='1')then
m<="000000000000";
if(m="110000110100")then
m<= (OTHERS =>'0');
num <=NOT num;
else
m<=m+1;
end if;
end if;
end process p1;
div_clk<=num;
p2:process(en,reset,clk,din)
begin
if reset='0'then
count<=0;
temp<="00000000";
q<="00000000";
else if(en='1')
then if(clk'event and clk='1')then
if(count=7)then
temp(count)<=din;
y(count)<=din;
q<=temp;
count<=count-1;
else if(count<7and count>0)then
temp(count)<=din;
y(count)<=din;
count<=count-1;
else
temp(0)<=din;
y(0)<=din;
count<=7;
end if;
end if;
end if;
end if;
end if;
end process p2;
p3:process(clk,reset)
begin
D<=chk;
    if reset='0' then
       c<=0;
    elsif clk'event and clk='1' then  --时钟到来时,判断并处理当前输入的位
        CASE c IS
WHEN 0 =>   IF DIN =D(7) THEN c<= 1 ;ELSE c<=0;END IF;
WHEN 1 =>   IF DIN =D(6) THEN c<= 2 ;ELSE c<=0;END IF;
WHEN 2 =>   IF DIN =D(5) THEN c<= 3 ;ELSE c<=0;END IF;
WHEN 3 =>   IF DIN =D(4) THEN c<= 4 ;ELSE c<=0;END IF;
WHEN 4 =>   IF DIN =D(3) THEN c<= 5 ;ELSE c<=0;END IF;
WHEN 5 =>   IF DIN =D(2) THEN c<= 6 ;ELSE c<=0;END IF;
WHEN 6 =>   IF DIN =D(1) THEN c<= 7 ;ELSE c<=0;END IF;
WHEN 7 =>   IF DIN =D(0) THEN c<= 8 ;ELSE c<=0;END IF;
WHEN OTHERS => c<=0;
END CASE;
END IF;
END PROCESS ;
PROCESS(c)
BEGIN
      IF c=8  THEN sm<= "1010";      
      ELSE          sm<= "0000";              
      END IF ;
END PROCESS;
END behav;
在这个程序中,我在编译时,发现那个H<=H+1,总是出现不能定义加法操作,这是咋回事呀?求高手指教。
此帖出自FPGA/CPLD论坛

最新回复

 报错的原因:编译器不能识别这个“+”,原因是的你的程序开头没有包括IEEE的算术运算符号库。 添加下面三个文件应该解决你的问题:    library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;use ieee.std_logic_signed.all;  详情 回复 发表于 2012-1-29 15:24
点赞 关注
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 

回复
举报

569

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

 报错的原因:编译器不能识别这个“+”,原因是的你的程序开头没有包括IEEE的算术运算符号库。

添加下面三个文件应该解决你的问题:
    library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_signed.all;

此帖出自FPGA/CPLD论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表