donlimao 发表于 2011-8-25 11:35:56

求助!!(VHDL)

本帖最后由 donlimao 于 2011-8-25 11:45 编辑

在下是新手,刚刚开始学FPGA,用的VHDL语言。
一个很简单的程序,就是设计了一个东西,只有输入和输出端口,输入端口数值为一个常数,然后经过输出端口到MSP430中去。可是经检测发现在输出端口的数值不是我想要的值,而且还被锁死了,始终是(10010110)二进制。下面程序:(请各各高手帮帮忙!小子感激涕零!)但用QuartusII仿真正常。
library ieee;
use ieee.std_logic_1164.all;
USE IEEE.Std_Logic_Unsigned.ALL;
USE IEEE.Std_Logic_Arith.ALL;

ENTITY abc IS
PORT
(

DataIN: IN Std_Logic_Vector(7 DOWNTO 0); --数据线
DataOUT: OUT Std_Logic_Vector(7 DOWNTO 0) --数据线
);
END abc;
ARCHITECTURE Action OF abc IS
BEGIN
        process (datain)
        begin
                DataOUT        <= DataIN;
        end process;
end Action;

liujilei311 发表于 2011-8-26 07:55:32

建议根据仿真波形好好检查一下源代码和测试代码!!!!!!!!!!

snowinmoon 发表于 2011-8-26 08:45:28

你要的是一个输入直接等于输出?如果这样没必要加IEEE.Std_Logic_Arith.ALL;和process进程,而且这么写的RTL图你看过嘛?建议你加时钟信号进行总体控制。

离场悲剧 发表于 2011-8-27 12:20:51

锁死的原因是你的进程写的有点儿问题。。
你肯定是第一次输入的数据就让锁在里面了,没法变,只有重启板子才行。。。
fpga 一般用时钟控制,复位键也可以弄上,所以管脚你自己加
建议改下进程
process(clk,datain)
begin
if rising_edge clk then
   data_out<=data_in;
end process;

donlimao 发表于 2011-8-28 12:51:42

谢谢,各位大大!!

liujilei311 发表于 2011-8-30 07:47:37

呵呵,互相学习嘛!!!!!!!!!

zhangsan 发表于 2011-10-21 17:35:02

高手云集啊 !!!!!

restary11 发表于 2011-11-2 20:07:19

对,要加时钟
页: [1]
查看完整版本: 求助!!(VHDL)