为什么这个文件用textio读不进来

[复制链接]
 楼主| edacsoft 发表于 2011-12-15 16:49 | 显示全部楼层 |阅读模式
本帖最后由 edacsoft 于 2011-12-15 16:51 编辑

TB源码:
process
file input_file: text open read_mode is "E:\median_filter_test\raw_data.raw";
file output_file: text open write_mode is "E:\median_filter_test\output_tb.dat";
variable inline, outline : line;
variable input : std_logic_vector(7 downto 0);
variable output : std_logic_vector(7 downto 0);
begin
  while not endfile(input_file) loop
if (reset = '1') then
   data_in <= (others => '0');
else
   readline(input_file, inline);
   read(inline, input);
   data_in <= input;
   --data_valid <= '1';
   output := data_out;
      write(outline, output);
      writeline(output_file, outline);
end if;
  wait until clk = '1';
  end loop;
end process;

raw_data.raw是一幅1600*1200 Bayer图像(用photoshop可看),我将它上传到附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
GoldSunMonkey 发表于 2011-12-15 20:52 | 显示全部楼层
library ieee;
    use std.textio.all;
    use ieee.std_logic_textio.all;

在上面加上这个库试一试~
 楼主| edacsoft 发表于 2011-12-16 09:16 | 显示全部楼层
有的。modelsim中报错:
# ** Error: (vsim-3550) TEXTIO procedure READ (STD_ULOGIC_VECTOR) : Cannot get value from "‡".
整个tb文件见附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ty新气象 发表于 2011-12-16 10:17 | 显示全部楼层
:handshake
GoldSunMonkey 发表于 2011-12-16 20:23 | 显示全部楼层
3# edacsoft 我生气了,什么testbench,
抽出空来,我下下来,一看,几乎没有任何信息。生气了。
 楼主| edacsoft 发表于 2011-12-19 09:53 | 显示全部楼层
3# edacsoft 我生气了,什么testbench,
抽出空来,我下下来,一看,几乎没有任何信息。生气了。
GoldSunMonkey 发表于 2011-12-16 20:23

猴哥,sorry。
我svn用的不好,现在可以了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
GoldSunMonkey 发表于 2011-12-19 10:50 | 显示全部楼层
兄弟,没看出来你的tb有读TEXTIO的语句啊。
 楼主| edacsoft 发表于 2011-12-19 12:37 | 显示全部楼层
兄弟,没看出来你的tb有读TEXTIO的语句啊。
GoldSunMonkey 发表于 2011-12-19 10:50

着急发错了,是这个

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
GoldSunMonkey 发表于 2011-12-19 13:55 | 显示全部楼层
哦。好的。不错~
 楼主| edacsoft 发表于 2011-12-20 18:23 | 显示全部楼层
猴哥,有时间帮我看看
GoldSunMonkey 发表于 2011-12-20 20:18 | 显示全部楼层
:)好的
GoldSunMonkey 发表于 2011-12-20 21:29 | 显示全部楼层
这个试一下。我简化了一下,看能出数么?
如果有语法错误就自己改一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
jakfens 发表于 2011-12-21 08:42 | 显示全部楼层
表示关注
 楼主| edacsoft 发表于 2011-12-21 09:24 | 显示全部楼层
错误一样:
# ** Error: (vsim-3550) TEXTIO procedure READ (STD_ULOGIC_VECTOR) : Cannot get value from "‡".
#    Time: 0 ps  Iteration: 1  Instance: /tb_med
 楼主| edacsoft 发表于 2011-12-21 09:25 | 显示全部楼层
我换个自己用UE写的文件在原代码上是可以的
GoldSunMonkey 发表于 2011-12-21 11:29 | 显示全部楼层
我终于明白你的问题了。你不能如此读数据,你必须使用text文件
你使用的是非text文件,我打开你的原始文件发现你根本无法读出text.
 楼主| edacsoft 发表于 2011-12-21 12:04 | 显示全部楼层
那怎么办?
UE打开那个raw文件,然后点“16进制显示”就是实际数据,难道这个不是text文件吗?
GoldSunMonkey 发表于 2011-12-21 15:27 | 显示全部楼层
是的,那内存数据。可以用C语言完成转换工作
 楼主| edacsoft 发表于 2011-12-22 10:31 | 显示全部楼层
18# GoldSunMonkey
谢谢猴哥,
如果写成16进制数,该如何读入呢?
我试了,不改tb不行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
GoldSunMonkey 发表于 2011-12-22 11:50 | 显示全部楼层
Hread即可。哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

246

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部