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

Subversion Repositories neo430

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /neo430
    from Rev 158 to Rev 159
    Reverse comparison

Rev 158 → Rev 159

/trunk/README.md
139,6 → 139,13
stnolting@gmail.com
 
 
## Citation
 
If you are using the NEO430 for some publication, please cite it as follows:
 
> S. Nolting, "The NEO430 Processor", github.com/stnolting/neo430
 
 
## Proprietary Notice
 
"MSP430" is a trademark of Texas Instruments Corporation.
/trunk/doc/NEO430.pdf Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
/trunk/rtl/core/neo430_package.vhd
19,7 → 19,7
-- # You should have received a copy of the GNU Lesser General Public License along with this #
-- # source; if not, download it from https://www.gnu.org/licenses/lgpl-3.0.en.html #
-- # ********************************************************************************************* #
-- # Stephan Nolting, Hannover, Germany 29.09.2018 #
-- # Stephan Nolting, Hannover, Germany 01.11.2018 #
-- #################################################################################################
 
library ieee;
30,7 → 30,7
 
-- Processor Hardware Version -------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
constant hw_version_c : std_ulogic_vector(15 downto 0) := x"0186"; -- no touchy!
constant hw_version_c : std_ulogic_vector(15 downto 0) := x"0187"; -- no touchy!
 
-- Danger Zone! ---------------------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
/trunk/rtl/core/neo430_top.vhd
44,7 → 44,7
-- # You should have received a copy of the GNU Lesser General Public License along with this #
-- # source; if not, download it from https://www.gnu.org/licenses/lgpl-3.0.en.html #
-- # ********************************************************************************************* #
-- # Stephan Nolting, Hannover, Germany 29.09.2018 #
-- # Stephan Nolting, Hannover, Germany 01.11.2018 #
-- #################################################################################################
 
library ieee;
163,7 → 163,7
signal timer_irq : std_ulogic;
signal usart_irq : std_ulogic;
signal gpio_irq : std_ulogic;
signal xirq_sync : std_ulogic_vector(01 downto 0);
signal xirq_sync : std_ulogic;
 
-- misc --
signal imem_up_en : std_ulogic;
258,15 → 258,15
external_irq_sync: process(clk_i)
begin
if rising_edge(clk_i) then
xirq_sync <= xirq_sync(0) & irq_i;
xirq_sync <= irq_i;
end if;
end process external_irq_sync;
 
-- interrupt priority assignment --
irq(0) <= timer_irq; -- timer match (highest priority)
irq(1) <= usart_irq; -- UART Rx available [OR] UART Tx done [OR] SPI RTX done
irq(2) <= gpio_irq; -- GPIO input pin change
irq(3) <= xirq_sync(1); -- external interrupt request (lowest priority)
irq(0) <= timer_irq; -- timer match (highest priority)
irq(1) <= usart_irq; -- UART Rx available [OR] UART Tx done [OR] SPI RTX done
irq(2) <= gpio_irq; -- GPIO input pin change
irq(3) <= xirq_sync; -- external interrupt request (lowest priority)
 
-- external interrupt acknowledge --
irq_ack_o <= irq_ack(3); -- the internal irq sources do not require an acknowledge
/trunk/sim/ISIM/neo430_tb.wcfg
12,15 → 12,15
</db_ref>
</db_ref_list>
<zoom_setting>
<ZoomStartTime time="295660916667fs"></ZoomStartTime>
<ZoomEndTime time="296225416668fs"></ZoomEndTime>
<Cursor1Time time="295855917000fs"></Cursor1Time>
<ZoomStartTime time="26193350000000fs"></ZoomStartTime>
<ZoomEndTime time="26193560000001fs"></ZoomEndTime>
<Cursor1Time time="26193441000000fs"></Cursor1Time>
</zoom_setting>
<column_width_setting>
<NameColumnWidth column_width="135"></NameColumnWidth>
<ValueColumnWidth column_width="58"></ValueColumnWidth>
<NameColumnWidth column_width="167"></NameColumnWidth>
<ValueColumnWidth column_width="105"></ValueColumnWidth>
</column_width_setting>
<WVObjectSize size="111" />
<WVObjectSize size="105" />
<wvobject type="divider" fp_name="divider6">
<obj_property name="label">Global</obj_property>
<obj_property name="DisplayName">label</obj_property>
99,7 → 99,6
<wvobject fp_name="/neo430_tb/neo430_top_inst/neo430_cpu_inst/neo430_reg_file_inst/sreg" type="array">
<obj_property name="ElementShortName">sreg[15:0]</obj_property>
<obj_property name="ObjectShortName">sreg[15:0]</obj_property>
<obj_property name="isExpanded"></obj_property>
</wvobject>
<wvobject fp_name="/neo430_tb/neo430_top_inst/neo430_cpu_inst/neo430_reg_file_inst/reg_file" type="array">
<obj_property name="ElementShortName">reg_file[15:0][15:0]</obj_property>
181,19 → 180,7
<obj_property name="ElementShortName">imem_up_en</obj_property>
<obj_property name="ObjectShortName">imem_up_en</obj_property>
</wvobject>
<wvobject fp_name="/neo430_tb/neo430_top_inst/neo430_imem_inst/imem_file_h" type="array">
<obj_property name="ElementShortName">imem_file_h[0:2047][7:0]</obj_property>
<obj_property name="ObjectShortName">imem_file_h[0:2047][7:0]</obj_property>
</wvobject>
<wvobject fp_name="/neo430_tb/neo430_top_inst/neo430_imem_inst/imem_file_l" type="array">
<obj_property name="ElementShortName">imem_file_l[0:2047][7:0]</obj_property>
<obj_property name="ObjectShortName">imem_file_l[0:2047][7:0]</obj_property>
</wvobject>
<wvobject type="divider" fp_name="divider44">
<obj_property name="label">Bootloader ROM</obj_property>
<obj_property name="DisplayName">label</obj_property>
</wvobject>
<wvobject type="divider" fp_name="divider44">
<obj_property name="label">IO: USART</obj_property>
<obj_property name="DisplayName">label</obj_property>
</wvobject>
471,16 → 458,4
<obj_property name="label">PWM</obj_property>
<obj_property name="DisplayName">label</obj_property>
</wvobject>
<wvobject fp_name="/neo430_tb/neo430_top_inst/neo430_pwm_inst_true/neo430_pwm_inst/enable" type="logic">
<obj_property name="ElementShortName">enable</obj_property>
<obj_property name="ObjectShortName">enable</obj_property>
</wvobject>
<wvobject fp_name="/neo430_tb/neo430_top_inst/neo430_pwm_inst_true/neo430_pwm_inst/pwm_o" type="array">
<obj_property name="ElementShortName">pwm_o[2:0]</obj_property>
<obj_property name="ObjectShortName">pwm_o[2:0]</obj_property>
</wvobject>
<wvobject fp_name="/neo430_tb/neo430_top_inst/neo430_pwm_inst_true/neo430_pwm_inst/prsc_tick" type="logic">
<obj_property name="ElementShortName">prsc_tick</obj_property>
<obj_property name="ObjectShortName">prsc_tick</obj_property>
</wvobject>
</wave_config>
/trunk/sim/neo430_tb.vhd
22,7 → 22,7
-- # You should have received a copy of the GNU Lesser General Public License along with this #
-- # source; if not, download it from https://www.gnu.org/licenses/lgpl-3.0.en.html #
-- # ********************************************************************************************* #
-- # Stephan Nolting, Hanover, Germany 09.08.2018 #
-- # Stephan Nolting, Hanover, Germany 01.11.2018 #
-- #################################################################################################
 
library ieee;
60,6 → 60,7
 
-- generators --
signal clk_gen, rst_gen : std_ulogic := '0';
signal irq, irq_ack : std_ulogic;
 
-- local signals --
signal uart_txd : std_ulogic;
132,13 → 133,28
wb_cyc_o => open, -- valid cycle
wb_ack_i => '0', -- transfer acknowledge
-- external interrupt --
irq_i => '0', -- external interrupt request line
irq_ack_o => open -- external interrupt request acknowledge
irq_i => irq, -- external interrupt request line
irq_ack_o => irq_ack -- external interrupt request acknowledge
);
 
 
-- Dummy UART Receiver ------------------------------------------------------
-- Interrupt Generator ------------------------------------------------------
-- -----------------------------------------------------------------------------
interrupt_gen: process
begin
irq <= '0';
wait for 20 ms;
wait until rising_edge(clk_gen);
irq <= '1';
wait for t_clock_c;
wait until rising_edge(irq_ack);
irq <= '0';
wait;
end process interrupt_gen;
 
 
-- Console UART Receiver ----------------------------------------------------
-- -----------------------------------------------------------------------------
uart_rx_unit: process(clk_gen)
variable i, j : integer;
file uart_rx_file : text open write_mode is "uart_rx_dump.txt";

powered by: WebSVN 2.1.0

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