微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于Quartus II的几个新手问题请教!

关于Quartus II的几个新手问题请教!

时间:10-02 整理:3721RD 点击:
第一个问题:
定义一个输入:inter:in std_logic;如果我想在inter的上升沿进行动作,那么上升沿怎么写啊?
是这样么? if(inter'event and inter='1') then  .....................
还是 if(rising_edge(inter)) then ........................
请指教!谢谢!
第二个问题
如果我在两个进程里都有同一个条件判断的话,那么是否会产生并行信号冲突的问题呢,如下,data 和ot是否会产生语法错误:error(10028):can't resolve multiple constant drivers for net data/ot ..........
addr:in std_logic;
cs:in std_logic;
data:in std_logic_vector(7 downto 0);
otut std_logic_vector(7 downto 0);
process(addr,cs)
begin
      if(addr<='0' and cs<='0') then
        if data<="00001111" then ot<="11110000"
        else null;
         end if;
     else null;
     end if;
end process;
process(addr,cs)
begin
      if(addr<='1' and cs<='0') then
        if data<="00001111" then ot<="00001111"
        else null;
         end if;
     else null;
     end if;
end process;
请多多指教,谢谢!

第一个问题:
如果inter是一个时钟信号, if(inter'event and inter='1') then  .....................
和if(rising_edge(inter)) then ........................都可以

若不是时钟,嘿嘿,自己判断inter的上升沿巴

第二个问题
同一个信号不允许在多个进程中赋值,否则则为多驱动

第一个问题:个人的经验,不同的综合器平台会有不同的生成结果。
第二个问题:进程的并行性决定了多进程不同能对同一个对象进行赋值。

多谢2位的回复,那么我想问:如果INTER是一个电平信号而不是时钟信号的话,那么上升沿该怎么写啊~~~~谢谢

时钟、或者电平,都是信号(Signal),可以利用信号类属性函数,'event, =1等等

有收获 第一个问题 我以为还是用第一个方式

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top