OpenCores
URL https://opencores.org/ocsvn/simple_fm_receiver/simple_fm_receiver/trunk

Subversion Repositories simple_fm_receiver

[/] [simple_fm_receiver/] [tags/] [okinawa_1/] [modelsim-bench/] [chipscope_modelsim_view.vhdl] - Blame information for rev 7

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 7 arif_endro
-- $Id: chipscope_modelsim_view.vhdl,v 1.1 2005-01-11 03:52:22 arif_endro Exp $
2
-------------------------------------------------------------------------------
3
-- Title      :  Viewer Chipscope output to modelsim
4
-- Project    :  FM Receiver
5
-------------------------------------------------------------------------------
6
-- File        : chipscope_modelsim_view.vhdl
7
-- Author      : Arif E. Nugroho
8
-- Created     : 2005/01/10
9
-- Last update : 
10
-- Simulators  : Modelsim 6.0
11
-- Synthesizers: 
12
-- Target      : 
13
-------------------------------------------------------------------------------
14
-- Description : To analyze exported ASCII output of ChipScope Analyser to 
15
--               Modelsim
16
-------------------------------------------------------------------------------
17
-- Copyright (c) 2005 Arif E. Nugroho
18
-- This VHDL design file is an open design; you can redistribute it and/or
19
-- modify it and/or implement it after contacting the author
20
-------------------------------------------------------------------------------
21
 
22
library IEEE;
23
use IEEE.STD_LOGIC_1164.ALL;
24
use IEEE.STD_LOGIC_arith.ALL;
25
use IEEE.STD_LOGIC_unsigned.ALL;
26
 
27
 
28
library IEEE;
29
library STD;
30
use IEEE.STD_LOGIC_1164.ALL;
31
use IEEE.STD_LOGIC_arith.ALL;
32
use IEEE.STD_LOGIC_unsigned.ALL;
33
use STD.TEXTIO.ALL;
34
 
35
entity chip_view is
36
   port (
37
   clock_out        : out bit;
38
   DMOUT_FM         : out bit_vector (11 downto 0);
39
   DMOUT_FMTRI      : out bit_vector (11 downto 0);
40
   DMOUT_FM_BIT     : out bit;
41
   DMOUT_FMTRI_BIT  : out bit
42
   );
43
end chip_view;
44
 
45
architecture viewer of chip_view is
46
 
47
type char_to_stdlogic_t is array (character) of std_logic;
48
file file_pointer_fm    : text open read_mode is "fm_square_fpga.txt";
49
file file_pointer_fmTri : text open read_mode is "fm_triangular_fpga.txt";
50
 
51
constant to_std_logic   : char_to_stdlogic_t := (
52
        'U' => 'U',
53
        'X' => 'X',
54
        '0' => '0',
55
        '1' => '1',
56
        'Z' => 'Z',
57
        'W' => 'W',
58
        'L' => 'L',
59
        'H' => 'H',
60
        '-' => '-',
61
        others => 'X'
62
        );
63
 
64
signal signal_fm_bit     : std_logic;
65
signal signal_fmTri_bit  : std_logic;
66
signal clock             : std_logic;
67
 
68
begin
69
        process
70
 
71
        variable line_input_fm      : line;
72
        variable line_input_fmTri   : line;
73
        variable vector_fm          : string(1 to 12) := "            ";
74
        variable vector_fmTri       : string(1 to 12) := "            ";
75
        variable input_length_fm    : integer;
76
        variable input_length_fmTri : integer;
77
        variable delay_time         : time := 1 ns;
78
        variable var_fm             : std_logic_vector (11 downto 0);
79
        variable var_fmTri          : std_logic_vector (11 downto 0);
80
 
81
        begin
82
                while not (endfile(file_pointer_fm) and endfile(file_pointer_fmTri)) loop
83
 
84
                readline(file_pointer_fm, line_input_fm);
85
                readline(file_pointer_fmTri, line_input_fmTri);
86
 
87
                if (line_input_fm /= NULL) and (line_input_fm'length > 0) and (line_input_fmTri /= NULL) and (line_input_fmTri'length > 0) then
88
 
89
                        read(line_input_fm, vector_fm);
90
                        read(line_input_fmTri, vector_fmTri);
91
                        input_length_fm    := vector_fm'length - 1;
92
                        input_length_fmTri := vector_fmTri'length - 1;
93
 
94
                                for a in vector_fm'range loop
95
                                  var_fm(input_length_fm)       := to_std_logic(vector_fm(a));
96
                                  signal_fm_bit                 <= to_std_logic(vector_fm(a));
97
                                  input_length_fm               := input_length_fm - 1;
98
                                end loop;
99
 
100
                                for a in vector_fmTri'range loop
101
                                  var_fmTri(input_length_fmTri) := to_std_logic(vector_fmTri(a));
102
                                  signal_fmTri_bit              <= to_std_logic(vector_fmTri(a));
103
                                  input_length_fmTri            := input_length_fmTri - 1;
104
                                end loop;
105
 
106
                        DMOUT_FM    <= to_bitvector(var_fm);
107
                        DMOUT_FMTRI <= to_bitvector(var_fmTri);
108
                        clock <= '1';
109
 
110
                        wait for delay_time;
111
                        clock <= '0';
112
 
113
                        wait for delay_time;
114
                end if;
115
 
116
                end loop;
117
 
118
                wait;
119
        end process;
120
 
121
DMOUT_FM_BIT     <= to_bit(signal_fm_bit);
122
DMOUT_FMTRI_BIT  <= to_bit(signal_fmTri_bit);
123
clock_out        <= to_bit(clock);
124
 
125
end viewer;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.