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

Subversion Repositories simple_fm_receiver

[/] [simple_fm_receiver/] [trunk/] [modelsim-bench/] [chipscope_modelsim_view.vhdl] - Blame information for rev 46

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 46 arif_endro
-- ------------------------------------------------------------------------
2
-- Copyright (C) 2004 Arif Endro Nugroho
3
-- All rights reserved.
4
-- 
5
-- Redistribution and use in source and binary forms, with or without
6
-- modification, are permitted provided that the following conditions
7
-- are met:
8
-- 
9
-- 1. Redistributions of source code must retain the above copyright
10
--    notice, this list of conditions and the following disclaimer.
11
-- 2. Redistributions in binary form must reproduce the above copyright
12
--    notice, this list of conditions and the following disclaimer in the
13
--    documentation and/or other materials provided with the distribution.
14
-- 
15
-- THIS SOFTWARE IS PROVIDED BY ARIF ENDRO NUGROHO "AS IS" AND ANY EXPRESS
16
-- OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
-- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
-- DISCLAIMED. IN NO EVENT SHALL ARIF ENDRO NUGROHO BE LIABLE FOR ANY
19
-- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21
-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22
-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23
-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
24
-- ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25
-- POSSIBILITY OF SUCH DAMAGE.
26
-- 
27
-- End Of License.
28
-- ------------------------------------------------------------------------
29 7 arif_endro
 
30
library IEEE;
31
use IEEE.STD_LOGIC_1164.ALL;
32
use IEEE.STD_LOGIC_arith.ALL;
33
use IEEE.STD_LOGIC_unsigned.ALL;
34
 
35
 
36
library IEEE;
37
library STD;
38
use IEEE.STD_LOGIC_1164.ALL;
39
use IEEE.STD_LOGIC_arith.ALL;
40
use IEEE.STD_LOGIC_unsigned.ALL;
41
use STD.TEXTIO.ALL;
42
 
43
entity chip_view is
44
   port (
45
   clock_out        : out bit;
46
   DMOUT_FM         : out bit_vector (11 downto 0);
47
   DMOUT_FMTRI      : out bit_vector (11 downto 0);
48
   DMOUT_FM_BIT     : out bit;
49
   DMOUT_FMTRI_BIT  : out bit
50
   );
51
end chip_view;
52
 
53
architecture viewer of chip_view is
54
 
55
type char_to_stdlogic_t is array (character) of std_logic;
56
file file_pointer_fm    : text open read_mode is "fm_square_fpga.txt";
57
file file_pointer_fmTri : text open read_mode is "fm_triangular_fpga.txt";
58
 
59
constant to_std_logic   : char_to_stdlogic_t := (
60
        'U' => 'U',
61
        'X' => 'X',
62
        '0' => '0',
63
        '1' => '1',
64
        'Z' => 'Z',
65
        'W' => 'W',
66
        'L' => 'L',
67
        'H' => 'H',
68
        '-' => '-',
69
        others => 'X'
70
        );
71
 
72
signal signal_fm_bit     : std_logic;
73
signal signal_fmTri_bit  : std_logic;
74
signal clock             : std_logic;
75
 
76
begin
77
        process
78
 
79
        variable line_input_fm      : line;
80
        variable line_input_fmTri   : line;
81
        variable vector_fm          : string(1 to 12) := "            ";
82
        variable vector_fmTri       : string(1 to 12) := "            ";
83
        variable input_length_fm    : integer;
84
        variable input_length_fmTri : integer;
85
        variable delay_time         : time := 1 ns;
86
        variable var_fm             : std_logic_vector (11 downto 0);
87
        variable var_fmTri          : std_logic_vector (11 downto 0);
88
 
89
        begin
90
                while not (endfile(file_pointer_fm) and endfile(file_pointer_fmTri)) loop
91
 
92
                readline(file_pointer_fm, line_input_fm);
93
                readline(file_pointer_fmTri, line_input_fmTri);
94
 
95
                if (line_input_fm /= NULL) and (line_input_fm'length > 0) and (line_input_fmTri /= NULL) and (line_input_fmTri'length > 0) then
96
 
97
                        read(line_input_fm, vector_fm);
98
                        read(line_input_fmTri, vector_fmTri);
99
                        input_length_fm    := vector_fm'length - 1;
100
                        input_length_fmTri := vector_fmTri'length - 1;
101
 
102
                                for a in vector_fm'range loop
103
                                  var_fm(input_length_fm)       := to_std_logic(vector_fm(a));
104
                                  signal_fm_bit                 <= to_std_logic(vector_fm(a));
105
                                  input_length_fm               := input_length_fm - 1;
106
                                end loop;
107
 
108
                                for a in vector_fmTri'range loop
109
                                  var_fmTri(input_length_fmTri) := to_std_logic(vector_fmTri(a));
110
                                  signal_fmTri_bit              <= to_std_logic(vector_fmTri(a));
111
                                  input_length_fmTri            := input_length_fmTri - 1;
112
                                end loop;
113
 
114
                        DMOUT_FM    <= to_bitvector(var_fm);
115
                        DMOUT_FMTRI <= to_bitvector(var_fmTri);
116
                        clock <= '1';
117
 
118
                        wait for delay_time;
119
                        clock <= '0';
120
 
121
                        wait for delay_time;
122
                end if;
123
 
124
                end loop;
125
 
126
                wait;
127
        end process;
128
 
129
DMOUT_FM_BIT     <= to_bit(signal_fm_bit);
130
DMOUT_FMTRI_BIT  <= to_bit(signal_fmTri_bit);
131
clock_out        <= to_bit(clock);
132
 
133
end viewer;

powered by: WebSVN 2.1.0

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