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

Subversion Repositories mcu8

[/] [mcu8/] [trunk/] [src/] [processor_E.vhd] - Blame information for rev 2

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

Line No. Rev Author Line
1 2 dimo
LIBRARY IEEE;
2
USE IEEE.std_logic_1164.ALL;
3
USE work.components.ALL;
4
USE work.cpu_types.ALL;
5
 
6
ENTITY processor_E IS
7
  PORT(prog_adr        : OUT d_bus;
8
       prog_data       : IN  d_bus;
9
       datmem_data_in  : IN  d_bus;
10
       datmem_data_out : OUT d_bus;
11
       datmem_nrd      : OUT STD_LOGIC;
12
       datmem_nwr      : OUT STD_LOGIC;
13
       datmem_adr      : OUT d_bus;
14
       a               : OUT d_bus;
15
       b               : OUT d_bus;
16
       cflag           : OUT STD_LOGIC;
17
       zflag           : OUT STD_LOGIC;
18
       clk             : IN  STD_LOGIC;
19
       nreset          : IN  STD_LOGIC;
20
       nreset_int      : IN  STD_LOGIC;
21
       go_step         : IN  STD_LOGIC;
22
       one_step        : IN  STD_LOGIC);
23
END processor_E;
24
 
25
 
26
ARCHITECTURE rtl_A OF processor_E IS
27
  SIGNAL carry_reg_alu,zero_reg_alu,rst_int,carry_alu_reg,zero_alu_reg : STD_LOGIC; -- H-activ internal reset SIGNAL
28
  signal ram_data_reg,a_reg_alu,b_reg_alu,result_alu_reg : d_bus;
29
  SIGNAL control_int : opcode;
30
BEGIN
31
  rst_int <= (NOT nreset) OR (NOT nreset_int);
32
 
33
alu_i: alu
34
  port map(
35
    a => a_reg_alu,
36
    b => b_reg_alu,
37
    rom_data => prog_data,
38
    ram_data => ram_data_reg,
39
    control => control_int,
40
    carry => carry_reg_alu,
41
    zero => zero_reg_alu,
42
    result => result_alu_reg,
43
    carry_out => carry_alu_reg,
44
    zero_out => zero_alu_reg );
45
 
46
reg_i: reg
47
  port MAP(
48
    clk => clk,
49
    rst => rst_int,
50
    carry_in => carry_alu_reg,
51
    zero_in => zero_alu_reg,
52
    result_in => result_alu_reg,
53
    control => control_int,
54
    a_out => a_reg_alu,
55
    b_out => b_reg_alu,
56
    carry_out => carry_reg_alu,
57
    zero_out => zero_reg_alu );
58
 
59
control_i: control
60
  PORT MAP (
61
    clk    => clk,
62
    rst    => rst_int,
63
    carry  => carry_reg_alu,
64
    zero   => zero_reg_alu,
65
    input  => prog_data,
66
    output => control_int );
67
 
68
pc_i: pc
69
  PORT MAP (
70
    clk     => clk,
71
    rst     => rst_int,
72
    addr_in => prog_data,
73
    control => control_int,
74
    pc      => prog_adr );
75
 
76
ram_control_i: ram_control
77
  PORT MAP (
78
    clk       => clk,
79
    rst       => rst_int,
80
    input_a   => a_reg_alu,
81
    input_rom => prog_data,
82
    input_ram => datmem_data_in,
83
    control   => control_int,
84
    ram_data_reg => ram_data_reg,
85
    addr      => datmem_adr,
86
    data      => datmem_data_out,
87
    ce_nwr    => datmem_nwr,
88
    ce_nrd    => datmem_nrd );
89
END rtl_A;

powered by: WebSVN 2.1.0

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