indianasan 发表于 2010-5-19 10:42:13

编译出错,请高手指教

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_SIGNED.ALL;

entity control_module is
port(
      wclk   :instd_logic;
      rclk   :instd_logic;
      wr_en:instd_logic;
      ce_1    :outstd_logic;
      ce_2    :outstd_logic;
      rce_1   :outstd_logic;
      rce_2   :outstd_logic);
endcontrol_module ;

architecture Behavioral ofcontrol_moduleis

signal wr_flag:std_logic_vector(10 downto 0):="00000000000";
signal rd_flag:std_logic_vector(10 downto 0):="00000000000";
signal ce1_reg:std_logic:='1';
signal ce2_reg:std_logic:='0';
signal rce1_reg :std_logic:='0';
signal rce2_reg :std_logic:='1';

begin
p1:process(wclk,rclk,wr_en)
begin
if(wr_en='1') then
if rising_edge(wclk) then
wr_flag(10 downto 0)<=wr_flag(10 downto 0)+1;
if rising_edge(rclk) then
rd_flag(10 downto 0)<=rd_flag(10 downto 0)+1;
   if wr_flag(10 downto 0)="01111111111" then
   if rd_flag(10 downto 0)="01111111111" then
      rce1_reg<='1';
      rce2_reg<='0';
      rce_1<=rce1_reg;
      rce_2<=rce2_reg;
      ce1_reg<='0';
      ce2_reg<='1';
      ce_1<=ce1_reg;
      ce_2<=ce2_reg;
   elsif wr_flag(10 downto 0)="11111111111" then
      if rd_flag(10 downto 0)="11111111111" then
      rce1_reg<='0';
      rce2_reg<='1';
      rce_1<=rce1_reg;
      rce_2<=rce2_reg;
      ce1_reg<='1';
      ce2_reg<='0';
      ce_1<=ce1_reg;
      ce_2<=ce2_reg;
   end if;
end if;
end if;
end if;
end if;
end if;
end process;

p2:process(wclk,rclk,wr_en)
begin
if(wr_en='1') then
if rising_edge(wclk) then
wr_flag(10 downto 0)<=wr_flag(10 downto 0)+1;
if rising_edge(rclk) then
rd_flag(10 downto 0)<=rd_flag(10 downto 0)+1;
   if wr_flag(9 downto 0)= "1111111111" then
   if rd_flag(9 downto 0)/="1111111111" then
      ce1_reg<='0';
      ce2_reg<='0';
      ce_1<=ce1_reg;
      ce_2<=ce2_reg;
   end if;
end if;
end if;
end if;
end if;
end process;

endBehavioral;






Error (10821): HDL error at control_module.vhd(65): can't infer register for "ce_2" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "ce_1" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "ce2_reg" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "ce1_reg" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "rd_flag" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "rd_flag" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "rd_flag" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "rd_flag" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "rd_flag" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "rd_flag" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "rd_flag" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "rd_flag" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "rd_flag" because its behavior does not match any supported register model
Error (10821): HDL error at control_module.vhd(65): can't infer register for "rd_flag" because its behavior does not match any supported register model

40130064 发表于 2010-5-19 16:58:26

rd_flag(10 downto 0)+1;

这个不能直接加1吧?

luan_dahai 发表于 2010-6-17 22:56:33

ZIRPON 发表于 2011-3-15 16:32:53

同问   后来 怎么改的
页: [1]
查看完整版本: 编译出错,请高手指教