打印

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

[复制链接]
6177|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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可看),我将它上传到附件 raw_data.rar (1.02 MB)

相关帖子

沙发
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文件见附件

Raw2RGB_wrapper_tb.rar

1.16 KB

使用特权

评论回复
地板
ty新气象| | 2011-12-16 10:17 | 只看该作者
:handshake

使用特权

评论回复
5
GoldSunMonkey| | 2011-12-16 20:23 | 只看该作者
3# edacsoft 我生气了,什么testbench,
抽出空来,我下下来,一看,几乎没有任何信息。生气了。

使用特权

评论回复
6
edacsoft|  楼主 | 2011-12-19 09:53 | 只看该作者
3# edacsoft 我生气了,什么testbench,
抽出空来,我下下来,一看,几乎没有任何信息。生气了。
GoldSunMonkey 发表于 2011-12-16 20:23

猴哥,sorry。
我svn用的不好,现在可以了
Raw2RGB_wrapper_tb.rar (1.38 KB)
sti_raw_data.rar (1.66 KB)

使用特权

评论回复
7
GoldSunMonkey| | 2011-12-19 10:50 | 只看该作者
兄弟,没看出来你的tb有读TEXTIO的语句啊。

使用特权

评论回复
8
edacsoft|  楼主 | 2011-12-19 12:37 | 只看该作者
兄弟,没看出来你的tb有读TEXTIO的语句啊。
GoldSunMonkey 发表于 2011-12-19 10:50

着急发错了,是这个

tb_med.rar

839 Bytes

使用特权

评论回复
9
GoldSunMonkey| | 2011-12-19 13:55 | 只看该作者
哦。好的。不错~

使用特权

评论回复
10
edacsoft|  楼主 | 2011-12-20 18:23 | 只看该作者
猴哥,有时间帮我看看

使用特权

评论回复
11
GoldSunMonkey| | 2011-12-20 20:18 | 只看该作者
:)好的

使用特权

评论回复
12
GoldSunMonkey| | 2011-12-20 21:29 | 只看该作者
这个试一下。我简化了一下,看能出数么?
如果有语法错误就自己改一下。

tb_med.rar

791 Bytes

使用特权

评论回复
13
jakfens| | 2011-12-21 08:42 | 只看该作者
表示关注

使用特权

评论回复
14
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

使用特权

评论回复
15
edacsoft|  楼主 | 2011-12-21 09:25 | 只看该作者
我换个自己用UE写的文件在原代码上是可以的

使用特权

评论回复
16
GoldSunMonkey| | 2011-12-21 11:29 | 只看该作者
我终于明白你的问题了。你不能如此读数据,你必须使用text文件
你使用的是非text文件,我打开你的原始文件发现你根本无法读出text.

使用特权

评论回复
17
edacsoft|  楼主 | 2011-12-21 12:04 | 只看该作者
那怎么办?
UE打开那个raw文件,然后点“16进制显示”就是实际数据,难道这个不是text文件吗?

使用特权

评论回复
18
GoldSunMonkey| | 2011-12-21 15:27 | 只看该作者
是的,那内存数据。可以用C语言完成转换工作

使用特权

评论回复
19
edacsoft|  楼主 | 2011-12-22 10:31 | 只看该作者
18# GoldSunMonkey
谢谢猴哥,
如果写成16进制数,该如何读入呢?
我试了,不改tb不行

input4tb_M.rar

91 Bytes

使用特权

评论回复
20
GoldSunMonkey| | 2011-12-22 11:50 | 只看该作者
Hread即可。哈哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

246

帖子

0

粉丝