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

Subversion Repositories core_arm

[/] [core_arm/] [trunk/] [vhdl/] [peripherals/] [mem/] [config.pl] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 tarookumic
#!/usr/bin/perl
2
 
3
%peri_mem_cfg = (
4
 
5
# Memory controller config
6
 
7
    CONFIG_MCTRL_8BIT => 0,
8
    CONFIG_MCTRL_16BIT => 0,
9
    CONFIG_MCTRL_5CS => 0,
10
    CONFIG_MCTRL_WFB => 0,
11
    CONFIG_MCTRL_SDRAM => 0,
12
    CONFIG_MCTRL_SDRAM_INVCLK => 0,
13
 
14
    # Boot 
15
    CFG_BOOT_SOURCE =>  "perimem_memory",
16
    CONFIG_BOOT_RWS =>  0,
17
    CONFIG_BOOT_WWS =>  0,
18
    CONFIG_BOOT_SYSCLK =>  25000000,
19
    CONFIG_BOOT_BAUDRATE =>  19200,
20
    CONFIG_BOOT_EXTBAUD =>  0,
21
    CONFIG_BOOT_PROMABITS =>  11,
22
 
23
    # Peripherals 
24
    CONFIG_PERI_WPROT => 0
25
 
26
);
27
 
28
%peri_mem_map =
29
   (
30
     # Memory controller 
31
    CONFIG_MCTRL_8BIT => [CONFIG_MCTRL_8BIT => 1],
32
    CONFIG_MCTRL_16BIT => [CONFIG_MCTRL_16BIT => 1],
33
    CONFIG_MCTRL_5CS => [CONFIG_MCTRL_5CS => 1],
34
    CONFIG_MCTRL_WFB => [CONFIG_MCTRL_WFB => 1],
35
    CONFIG_MCTRL_SDRAM => [CONFIG_MCTRL_SDRAM => 1],
36
    CONFIG_MCTRL_SDRAM_INVCLK => [CONFIG_MCTRL_SDRAM_INVCLK => 1],
37
 
38
    # Boot 
39
    CFG_BOOT_SOURCE => [
40
        CONFIG_BOOT_EXTPROM => "perimem_memory",
41
        CONFIG_BOOT_INTPROM => "perimem_prom",
42
        CONFIG_BOOT_MIXPROM => "perimem_dual"
43
        ],
44
 
45
    CONFIG_BOOT_RWS => [CONFIG_BOOT_RWS => sub { my ($v) = @_; $v = hex ($v) & 0x3;  return $v;} ],
46
    CONFIG_BOOT_WWS => [CONFIG_BOOT_WWS => sub { my ($v) = @_; $v = hex ($v) & 0x3;  return $v;} ],
47
    CONFIG_BOOT_SYSCLK => [CONFIG_BOOT_SYSCLK => sub { my ($v) = @_; return $v;} ],
48
    CONFIG_BOOT_BAUDRATE => [CONFIG_BOOT_BAUDRATE => sub { my ($v) = @_; $v = hex ($v) & 0x3fffff;  return $v;} ],
49
    CONFIG_BOOT_EXTBAUD => [CONFIG_BOOT_EXTBAUD => 1],
50
    CONFIG_BOOT_PROMABITS => [CONFIG_BOOT_PROMABITS => sub { my ($v) = @_; $v = hex ($v) & 0x3f;  return $v;} ],
51
 
52
    # Peripherals 
53
    CONFIG_PERI_WPROT => [CONFIG_PERI_WPROT => 1]
54
 
55
);
56
 
57
sub peri_mem_config_file {
58
 
59
    my ($pericfg) = @_;
60
    my %pericfg = %{$pericfg};
61
    my $fn = "vhdl/peripherals/mem/peri_mem_config.vhd";
62
 
63
    if (-f $fn) {
64
        print STDERR ("Making backup of $fn\n");
65
        `cp $fn $fn.bck`;
66
    }
67
 
68
    foreach $k (keys %pericfg) {
69
        $v = $pericfg{$k};
70
        $peri_mem_config_file_data = cfg_replace ($k,$v,$peri_mem_config_file_data);
71
    }
72
 
73
    if (open(FILEH, ">$fn")) {
74
        print FILEH $peri_mem_config_file_data;
75
    } else {
76
        die ("opening \"$fn\": $!\n");
77
    }
78
}
79
 
80
$peri_mem_config_file_data=<<PERI_MEM_CONFIG_END;
81
 
82
library IEEE;
83
use IEEE.std_logic_1164.all;
84
use IEEE.std_logic_arith.all;
85
 
86
package peri_mem_config is
87
 
88
-----------------------------------------------------------------------------
89
-- Automatically generated by vhdl/peripherals/mem/config.pl from of .config
90
-----------------------------------------------------------------------------
91
 
92
constant CFG_PERIMEM_BUS8EN : boolean := %CONFIG_MCTRL_8BIT%[b]; -- enable 8-bit bus operation
93
constant CFG_PERIMEM_BUS16EN : boolean := %CONFIG_MCTRL_16BIT%[b]; -- enable 16-bit bus operation
94
constant CFG_PERIMEM_WENDFB : boolean := %CONFIG_MCTRL_WFB%[b]; -- enable wen feed-back to data bus drivers
95
constant CFG_PERIMEM_RAMSEL5 : boolean := %CONFIG_MCTRL_5CS%[b]; -- enable 5th ram select
96
constant CFG_PERIMEM_SDRAMEN : boolean := %CONFIG_MCTRL_SDRAM%[b]; -- enable sdram controller
97
constant CFG_PERIMEM_SDINVCLK : boolean := %CONFIG_MCTRL_SDRAM_INVCLK%[b]; -- invert sdram clock
98
 
99
type cfg_perimem_boottype is (perimem_memory, perimem_prom, perimem_dual);
100
 
101
constant CFG_PERIMEM_BOOT :  cfg_perimem_boottype := %CFG_BOOT_SOURCE%; -- select boot source
102
constant CFG_PERIMEM_BRAMRWS    : unsigned(3 downto 0) := conv_unsigned(%CONFIG_BOOT_RWS%, 4);   -- ram read waitstates
103
constant CFG_PERIMEM_BRAMWWS    : unsigned(3 downto 0) := conv_unsigned(%CONFIG_BOOT_WWS%, 4);   -- ram write waitstates
104
constant CFG_PERIMEM_SYSCLK     : integer := %CONFIG_BOOT_SYSCLK%;      -- cpu clock
105
constant CFG_PERIMEM_BAUD       : positive := %CONFIG_BOOT_BAUDRATE%;   -- UART baud rate
106
constant CFG_PERIMEM_EXTBAUD    : boolean := %CONFIG_BOOT_EXTBAUD%[b];  -- use external baud rate setting
107
constant CFG_PERIMEM_PABITS     : positive := %CONFIG_BOOT_PROMABITS%;  -- internal boot-prom address bits
108
 
109
constant CFG_PERIMEM_WPROTEN    : boolean := %CONFIG_PERI_WPROT%[b]; -- enable RAM write-protection unit
110
 
111
-----------------------------------------------------------------------------
112
-- end of automatic configuration
113
-----------------------------------------------------------------------------
114
 
115
end peri_mem_config;
116
 
117
PERI_MEM_CONFIG_END
118
 
119
1;
120
 
121
 
122
 
123
 
124
 
125
 
126
 
127
 
128
 
129
 
130
 
131
 

powered by: WebSVN 2.1.0

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