Vhdl “如何修复”;内部编译器错误“;论模拟启动
我正在使用分频器,可以选择输出频率,但我无法让它工作。语法检查每次都通过,但当我开始模拟时,我会收到以下错误:“致命错误:模拟器:compilerasert.h:40:1.20-文件中的内部编译器错误../src/VhdlTreeTransform.cpp第296行有关此问题的技术支持,请访问。” 我已经在寻找这个问题,但找不到任何解决方案。我是新来的,这可能是一些老生常谈的问题,如果你能帮我解决这个问题,我会很高兴的 主要代码如下:Vhdl “如何修复”;内部编译器错误“;论模拟启动,vhdl,xilinx,Vhdl,Xilinx,我正在使用分频器,可以选择输出频率,但我无法让它工作。语法检查每次都通过,但当我开始模拟时,我会收到以下错误:“致命错误:模拟器:compilerasert.h:40:1.20-文件中的内部编译器错误../src/VhdlTreeTransform.cpp第296行有关此问题的技术支持,请访问。” 我已经在寻找这个问题,但找不到任何解决方案。我是新来的,这可能是一些老生常谈的问题,如果你能帮我解决这个问题,我会很高兴的 主要代码如下: library IEEE; use IEEE.STD_LOG
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;
use IEEE.NUMERIC_STD.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
entity Freq4Sel is
Port ( cp : in STD_LOGIC;
sel : in STD_LOGIC_VECTOR (1 downto 0);
outcp : buffer STD_LOGIC:= '0');
end Freq4Sel;
architecture Behavioral of Freq4Sel is
begin
process(cp)
variable selects : integer range 0 to 50000000;
variable temp: integer range 0 to 50000000 := 0;
begin
with sel select
selects := 50000000 when "11",
5000000 when "10",
2000000 when "01",
1000000 when others;
if (cp'event and cp = '1') then
temp := temp+1;
if(temp>=selects) then
outcp <= not outcp;
end if;
end if;
end process;
end Behavioral;
IEEE库;
使用IEEE.STD_LOGIC_1164.ALL;
使用ieee.std_logic_unsigned.all;
使用IEEE.NUMERIC_STD.ALL;
使用IEEE.STD_LOGIC_ARITH.ALL;
实体Freq4Sel是
端口(cp:STD_逻辑中;
sel:标准逻辑向量(1到0);
outcp:缓冲区标准逻辑:=“0”);
结束频率4SEL;
Freq4Sel的结构是
开始
过程(cp)
变量选择:整数范围0到50000000;
变量温度:整数范围0到50000000:=0;
开始
使用sel select
当“11”时选择:=50000000,
5000000当“10”,
2000000当“01”,
100万,其他人;
如果(cp'event和cp='1'),则
温度:=温度+1;
如果(温度>=选择),则
outcp,
sel=>sel,
outcp=>outcp
);
cp_过程:过程
开始
cp这是Xilinx工具的崩溃,您需要通过支持或在他们的论坛上向他们提出一个案例。不过,您的代码具有VHDL 2008功能,所以您是否在文件属性中启用了2008?Xilinx Vivado模拟器通常会在最简单的VHDL文件上崩溃。。。您可以使用免费的模拟器[GHDL]()。不要并行使用包std\u logic\u unsigned
、numeric\u std
和std\u logic\u arith
。仅使用numeric\u std
。这是Xilinx工具的崩溃,您需要通过支持或他们的论坛向他们提出案例。不过,您的代码具有VHDL 2008功能,所以您是否在文件属性中启用了2008?Xilinx Vivado模拟器通常会在最简单的VHDL文件上崩溃。。。您可以使用免费的模拟器[GHDL]()。不要并行使用包std\u logic\u unsigned
、numeric\u std
和std\u logic\u arith
。仅使用数字\u std
。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
ENTITY Freq4Sel_w IS
END Freq4Sel_w;
ARCHITECTURE behavior OF Freq4Sel_w IS
COMPONENT Freq4Sel
PORT(
cp : IN std_logic;
sel : IN std_logic_vector(1 downto 0);
outcp : BUFFER std_logic
);
END COMPONENT;
signal cp : std_logic := '0';
signal sel : std_logic_vector(1 downto 0) := "00";
signal outcp : std_logic;
constant cp_period : time := 10 ns;
BEGIN
uut: Freq4Sel PORT MAP (
cp => cp,
sel => sel,
outcp => outcp
);
cp_process :process
begin
cp <= '0';
wait for cp_period/2;
cp <= '1';
wait for cp_period/2;
end process;
stim_proc: process
begin
wait for 100 ns;
sel <= "10";
wait for cp_period*10;
wait;
end process;
END;