c17199c00fef0f085f43628b8cf4260ee7c0813a
[hwmod.git] / src / calc.vhd
1 -- TODO: dient im moment nur als "fake top entity"
2 library ieee;
3 use ieee.std_logic_1164.all;
4 use ieee.numeric_std.all;
5 use work.gen_pkg.all;
6
7 entity calc is
8         port
9         (
10                 sys_clk : in std_logic;
11                 sys_res_n : in std_logic
12         );
13 end entity calc;
14
15 architecture top of calc is
16         component alu is
17                 port
18                 (
19                         sys_clk : in std_logic;
20                         sys_res_n : in std_logic;
21                         opcode : in alu_ops;
22                         op1 : in csigned;
23                         op2 : in csigned;
24                         op3 : out csigned;
25                         do_calc : in std_logic;
26                         calc_done : out std_logic
27                 );
28         end component alu;
29
30         signal do_calc, calc_done : std_logic;
31         signal opcode : alu_ops;
32         signal op1, op2, op3 : csigned;
33 begin
34         aluc : alu
35         port map
36         (
37                 sys_clk => sys_clk,
38                 sys_res_n => sys_res_n,
39                 do_calc => do_calc,
40                 calc_done => calc_done,
41                 op1 => op1,
42                 op2 => op2,
43                 op3 => op3,
44                 opcode => opcode
45         );
46
47         process
48         begin
49                 op1 <= op3;
50                 opcode <= DIV;
51                 op2 <= to_signed(2,CBITS);
52
53                 do_calc <= calc_done;
54                 wait until sys_clk = '1';
55         end process;
56 end architecture top;
57