1. EDA关于vhdl程序仿真的问题
if clr='1'中的单引号应当是半角字符,从图上看好像有点不像;
elsif clk='event' and clk='1'描述不正确,应当是elsif clk'event AND clk='1'。
2. VHDL中仿真的一个问题
我看着好像意思是有一个同步的置位。
一般的reset信号都是异步的。很少用同步的复位。如果你确实是想要同步复位,那不用管这个warn。可能你的原本意思也是异步复位,但是你的代码中写错了。
一般的同步复位就是process的敏感变量中没有reset。
3. 用vhdl语言设计时遇到的一个问题。紧紧紧···
在VHDL中,每一个进程(process)都是一个电路模块,而所有的进程之间都是并行的,硬件上是同时工作的,没有先后顺序。
如果你在不同的进程中,对同一个信号进行赋值操作,就相当于在硬件上对同一个输出端同时赋予不同的信号值,这在硬件上是不可能实现的。所以,VHDL不允许在不同的进程中对同一个信号赋值。你只能将上面两个进程合并成为一个进程。
4. 关于VHDL语言的问题:
你可以定义成 out: std_logic_vector(3 downto 0). 这样就只有4个引脚了。
或者直接定义成 out: std_logic; 这样就只有一个引脚了。 根据不同的需要定义不同数量的引脚嘛。
5. 请指教一个关于VHDL语言的设计问题
你的“+”应当是逻辑+,也就是or,将表达式中的“+”改成“or”。
6. 关于VHDL语言中使用EVENT属性的问题,高手请进!
EVENT是表示当一个事件发生了,但是VHDL里面要求必须说明到底发生了什么事,VHDL才能根据发生的事情 来做判断!你只给出了一个EVENT VHDL不知道是发生什么事情,所以它不能判断!!! 换句通俗的话说,VHDL不支持无知的发生事件!
时钟变化有包括上升和下降,还有没变,if clk'event and clk='1' 表示上升
同样的 clk'event and clk='0'表示下降 再加个else 就表示没变化了
7. 关于用VHDL语言编写好程序后用modelsim进行仿真,所有的值都是U,波形都是红线的问题
我的代码也有红线,,,继续百度中,,
8. 求助!!用VHDL语言编写程序时,编译通过,但仿真的时候缺少一个输入引脚,这是由什么原因引起的???
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CRC IS
PORT(CODE1:IN STD_LOGIC_VECTOR(13 DOWNTO 0);
RESULT:OUT STD_LOGIC_VECTOR(13 DOWNTO 0));
END ENTITY CRC;
ARCHITECTURE behave OF CRC IS
BEGIN
PROCESS(CODE1) IS
VARIABLE NUM:STD_LOGIC_VECTOR(4 DOWNTO 0);
VARIABLE CODE2:STD_LOGIC_VECTOR(13 DOWNTO 0);
BEGIN
NUM:="10011";
CODE2<=CODE1;
FOR i IN 0 TO 9 LOOP
IF(CODE2(13-i)='1') THEN
FOR j IN 0 TO 4 LOOP
CODE2(9-i+j):=CODE2(9-i+j) XOR NUM(j);
END LOOP;
END IF;
END LOOP;
RESULT<=CODE2;
END PROCESS;
END ARCHITECTURE behave;