集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2500|回复: 7

求助!!(VHDL)

[复制链接]
donlimao 发表于 2011-8-25 11:35:56 | 显示全部楼层 |阅读模式
本帖最后由 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 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-10 11:05 , Processed in 0.079705 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表