URL
https://opencores.org/ocsvn/openmsp430/openmsp430/trunk
Subversion Repositories openmsp430
Compare Revisions
- This comparison shows the changes necessary to convert path
/openmsp430/trunk/fpga
- from Rev 104 to Rev 105
- ↔ Reverse comparison
Rev 104 → Rev 105
/xilinx_diligent_s3board/rtl/verilog/openmsp430/omsp_frontend.v
55,6 → 55,7
inst_dext, // Decoded Inst: destination extended instruction word |
inst_irq_rst, // Decoded Inst: Reset interrupt |
inst_jmp, // Decoded Inst: Conditional jump |
inst_mov, // Decoded Inst: mov instruction |
inst_sext, // Decoded Inst: source extended instruction word |
inst_so, // Decoded Inst: Single-operand arithmetic |
inst_src, // Decoded Inst: source (one hot) |
96,6 → 97,7
output [15:0] inst_dext; // Decoded Inst: destination extended instruction word |
output inst_irq_rst; // Decoded Inst: Reset interrupt |
output [7:0] inst_jmp; // Decoded Inst: Conditional jump |
output inst_mov; // Decoded Inst: mov instruction |
output [15:0] inst_sext; // Decoded Inst: source extended instruction word |
output [7:0] inst_so; // Decoded Inst: Single-operand arithmetic |
output [15:0] inst_src; // Decoded Inst: source (one hot) |
421,7 → 423,12
wire [15:0] inst_to_1hot = one_hot16(ir[15:12]) & {16{inst_type_nxt[`INST_TO]}}; |
wire [11:0] inst_to_nxt = inst_to_1hot[15:4]; |
|
reg inst_mov; |
always @(posedge mclk or posedge puc) |
if (puc) inst_mov <= 1'b0; |
else if (decode) inst_mov <= inst_to_nxt[`MOV]; |
|
|
// |
// 4.5) SOURCE AND DESTINATION REGISTERS |
//--------------------------------------- |
/xilinx_diligent_s3board/rtl/verilog/openmsp430/omsp_dbg_uart.v
92,7 → 92,7
//-------------------------------- |
reg [3:0] rxd_sync; |
always @ (posedge mclk or posedge por) |
if (por) rxd_sync <= 4'h0; |
if (por) rxd_sync <= 4'hf; |
else rxd_sync <= {rxd_sync[2:0], dbg_uart_rxd}; |
|
// Majority decision |
/xilinx_diligent_s3board/rtl/verilog/openmsp430/omsp_execution_unit.v
69,6 → 69,7
inst_dext, // Decoded Inst: destination extended instruction word |
inst_irq_rst, // Decoded Inst: reset interrupt |
inst_jmp, // Decoded Inst: Conditional jump |
inst_mov, // Decoded Inst: mov instruction |
inst_sext, // Decoded Inst: source extended instruction word |
inst_so, // Decoded Inst: Single-operand arithmetic |
inst_src, // Decoded Inst: source (one hot) |
109,6 → 110,7
input [15:0] inst_dext; // Decoded Inst: destination extended instruction word |
input inst_irq_rst; // Decoded Inst: reset interrupt |
input [7:0] inst_jmp; // Decoded Inst: Conditional jump |
input inst_mov; // Decoded Inst: mov instruction |
input [15:0] inst_sext; // Decoded Inst: source extended instruction word |
input [7:0] inst_so; // Decoded Inst: Single-operand arithmetic |
input [15:0] inst_src; // Decoded Inst: source (one hot) |
313,12 → 315,13
//============================================================================= |
|
// Detect memory read/write access |
assign mb_en = ((e_state==`E_IRQ_1) & ~inst_irq_rst) | |
((e_state==`E_IRQ_3) & ~inst_irq_rst) | |
((e_state==`E_SRC_RD) & ~inst_as[`IMM]) | |
(e_state==`E_SRC_WR) | |
((e_state==`E_EXEC) & inst_so[`RETI]) | |
(e_state==`E_DST_RD) | |
assign mb_en = ((e_state==`E_IRQ_1) & ~inst_irq_rst) | |
((e_state==`E_IRQ_3) & ~inst_irq_rst) | |
((e_state==`E_SRC_RD) & ~inst_as[`IMM]) | |
(e_state==`E_SRC_WR) | |
((e_state==`E_EXEC) & inst_so[`RETI]) | |
((e_state==`E_DST_RD) & ~inst_type[`INST_SO] |
& ~inst_mov) | |
(e_state==`E_DST_WR); |
|
wire [1:0] mb_wr_msk = inst_alu[`EXEC_NO_WR] ? 2'b00 : |
/xilinx_diligent_s3board/rtl/verilog/openmsp430/openMSP430.v
206,6 → 206,7
.inst_dext (inst_dext), // Decoded Inst: destination extended instruction word |
.inst_irq_rst (inst_irq_rst), // Decoded Inst: Reset interrupt |
.inst_jmp (inst_jmp), // Decoded Inst: Conditional jump |
.inst_mov (inst_mov), // Decoded Inst: mov instruction |
.inst_sext (inst_sext), // Decoded Inst: source extended instruction word |
.inst_so (inst_so), // Decoded Inst: Single-operand arithmetic |
.inst_src (inst_src), // Decoded Inst: source (one hot) |
267,6 → 268,7
.inst_dext (inst_dext), // Decoded Inst: destination extended instruction word |
.inst_irq_rst (inst_irq_rst), // Decoded Inst: reset interrupt |
.inst_jmp (inst_jmp), // Decoded Inst: Conditional jump |
.inst_mov (inst_mov), // Decoded Inst: mov instruction |
.inst_sext (inst_sext), // Decoded Inst: source extended instruction word |
.inst_so (inst_so), // Decoded Inst: Single-operand arithmetic |
.inst_src (inst_src), // Decoded Inst: source (one hot) |
/xilinx_diligent_s3board/sim/rtl_sim/src/submit.f
34,6 → 34,16
//============================================================================= |
|
//============================================================================= |
// Testbench related |
//============================================================================= |
|
+incdir+../../../bench/verilog/ |
../../../bench/verilog/tb_openMSP430_fpga.v |
../../../bench/verilog/msp_debug.v |
../../../bench/verilog/glbl.v |
|
|
//============================================================================= |
// Xilinx library |
//============================================================================= |
+libext+.v |
79,12 → 89,3
../../../rtl/verilog/openmsp430/periph/omsp_timerA.v |
|
|
//============================================================================= |
// Testbench related |
//============================================================================= |
|
+incdir+../../../bench/verilog/ |
../../../bench/verilog/tb_openMSP430_fpga.v |
../../../bench/verilog/msp_debug.v |
../../../bench/verilog/glbl.v |
|
/altera_de1_board/rtl/verilog/openmsp430/omsp_frontend.v
55,6 → 55,7
inst_dext, // Decoded Inst: destination extended instruction word |
inst_irq_rst, // Decoded Inst: Reset interrupt |
inst_jmp, // Decoded Inst: Conditional jump |
inst_mov, // Decoded Inst: mov instruction |
inst_sext, // Decoded Inst: source extended instruction word |
inst_so, // Decoded Inst: Single-operand arithmetic |
inst_src, // Decoded Inst: source (one hot) |
96,6 → 97,7
output [15:0] inst_dext; // Decoded Inst: destination extended instruction word |
output inst_irq_rst; // Decoded Inst: Reset interrupt |
output [7:0] inst_jmp; // Decoded Inst: Conditional jump |
output inst_mov; // Decoded Inst: mov instruction |
output [15:0] inst_sext; // Decoded Inst: source extended instruction word |
output [7:0] inst_so; // Decoded Inst: Single-operand arithmetic |
output [15:0] inst_src; // Decoded Inst: source (one hot) |
421,7 → 423,12
wire [15:0] inst_to_1hot = one_hot16(ir[15:12]) & {16{inst_type_nxt[`INST_TO]}}; |
wire [11:0] inst_to_nxt = inst_to_1hot[15:4]; |
|
reg inst_mov; |
always @(posedge mclk or posedge puc) |
if (puc) inst_mov <= 1'b0; |
else if (decode) inst_mov <= inst_to_nxt[`MOV]; |
|
|
// |
// 4.5) SOURCE AND DESTINATION REGISTERS |
//--------------------------------------- |
/altera_de1_board/rtl/verilog/openmsp430/omsp_dbg_uart.v
92,7 → 92,7
//-------------------------------- |
reg [3:0] rxd_sync; |
always @ (posedge mclk or posedge por) |
if (por) rxd_sync <= 4'h0; |
if (por) rxd_sync <= 4'hf; |
else rxd_sync <= {rxd_sync[2:0], dbg_uart_rxd}; |
|
// Majority decision |
/altera_de1_board/rtl/verilog/openmsp430/omsp_execution_unit.v
69,6 → 69,7
inst_dext, // Decoded Inst: destination extended instruction word |
inst_irq_rst, // Decoded Inst: reset interrupt |
inst_jmp, // Decoded Inst: Conditional jump |
inst_mov, // Decoded Inst: mov instruction |
inst_sext, // Decoded Inst: source extended instruction word |
inst_so, // Decoded Inst: Single-operand arithmetic |
inst_src, // Decoded Inst: source (one hot) |
109,6 → 110,7
input [15:0] inst_dext; // Decoded Inst: destination extended instruction word |
input inst_irq_rst; // Decoded Inst: reset interrupt |
input [7:0] inst_jmp; // Decoded Inst: Conditional jump |
input inst_mov; // Decoded Inst: mov instruction |
input [15:0] inst_sext; // Decoded Inst: source extended instruction word |
input [7:0] inst_so; // Decoded Inst: Single-operand arithmetic |
input [15:0] inst_src; // Decoded Inst: source (one hot) |
313,12 → 315,13
//============================================================================= |
|
// Detect memory read/write access |
assign mb_en = ((e_state==`E_IRQ_1) & ~inst_irq_rst) | |
((e_state==`E_IRQ_3) & ~inst_irq_rst) | |
((e_state==`E_SRC_RD) & ~inst_as[`IMM]) | |
(e_state==`E_SRC_WR) | |
((e_state==`E_EXEC) & inst_so[`RETI]) | |
(e_state==`E_DST_RD) | |
assign mb_en = ((e_state==`E_IRQ_1) & ~inst_irq_rst) | |
((e_state==`E_IRQ_3) & ~inst_irq_rst) | |
((e_state==`E_SRC_RD) & ~inst_as[`IMM]) | |
(e_state==`E_SRC_WR) | |
((e_state==`E_EXEC) & inst_so[`RETI]) | |
((e_state==`E_DST_RD) & ~inst_type[`INST_SO] |
& ~inst_mov) | |
(e_state==`E_DST_WR); |
|
wire [1:0] mb_wr_msk = inst_alu[`EXEC_NO_WR] ? 2'b00 : |
/altera_de1_board/rtl/verilog/openmsp430/openMSP430.v
206,6 → 206,7
.inst_dext (inst_dext), // Decoded Inst: destination extended instruction word |
.inst_irq_rst (inst_irq_rst), // Decoded Inst: Reset interrupt |
.inst_jmp (inst_jmp), // Decoded Inst: Conditional jump |
.inst_mov (inst_mov), // Decoded Inst: mov instruction |
.inst_sext (inst_sext), // Decoded Inst: source extended instruction word |
.inst_so (inst_so), // Decoded Inst: Single-operand arithmetic |
.inst_src (inst_src), // Decoded Inst: source (one hot) |
267,6 → 268,7
.inst_dext (inst_dext), // Decoded Inst: destination extended instruction word |
.inst_irq_rst (inst_irq_rst), // Decoded Inst: reset interrupt |
.inst_jmp (inst_jmp), // Decoded Inst: Conditional jump |
.inst_mov (inst_mov), // Decoded Inst: mov instruction |
.inst_sext (inst_sext), // Decoded Inst: source extended instruction word |
.inst_so (inst_so), // Decoded Inst: Single-operand arithmetic |
.inst_src (inst_src), // Decoded Inst: source (one hot) |
/altera_de1_board/sim/rtl_sim/src/submit.f
36,6 → 36,15
+define+OPENMSP430_SIMULATION |
|
//============================================================================= |
// Testbench related |
//============================================================================= |
|
+incdir+../../../bench/verilog/ |
../../../bench/verilog/tb_openMSP430_fpga.v |
../../../bench/verilog/msp_debug.v |
|
|
//============================================================================= |
// Altera library |
//============================================================================= |
+libext+.v |
75,13 → 84,3
../../../rtl/verilog/openmsp430/omsp_multiplier.v |
../../../rtl/verilog/openmsp430/periph/omsp_gpio.v |
../../../rtl/verilog/openmsp430/periph/omsp_timerA.v |
|
|
//============================================================================= |
// Testbench related |
//============================================================================= |
|
+incdir+../../../bench/verilog/ |
../../../bench/verilog/tb_openMSP430_fpga.v |
../../../bench/verilog/msp_debug.v |
|
/actel_m1a3pl_dev_kit/rtl/verilog/openmsp430/omsp_frontend.v
55,6 → 55,7
inst_dext, // Decoded Inst: destination extended instruction word |
inst_irq_rst, // Decoded Inst: Reset interrupt |
inst_jmp, // Decoded Inst: Conditional jump |
inst_mov, // Decoded Inst: mov instruction |
inst_sext, // Decoded Inst: source extended instruction word |
inst_so, // Decoded Inst: Single-operand arithmetic |
inst_src, // Decoded Inst: source (one hot) |
96,6 → 97,7
output [15:0] inst_dext; // Decoded Inst: destination extended instruction word |
output inst_irq_rst; // Decoded Inst: Reset interrupt |
output [7:0] inst_jmp; // Decoded Inst: Conditional jump |
output inst_mov; // Decoded Inst: mov instruction |
output [15:0] inst_sext; // Decoded Inst: source extended instruction word |
output [7:0] inst_so; // Decoded Inst: Single-operand arithmetic |
output [15:0] inst_src; // Decoded Inst: source (one hot) |
421,7 → 423,12
wire [15:0] inst_to_1hot = one_hot16(ir[15:12]) & {16{inst_type_nxt[`INST_TO]}}; |
wire [11:0] inst_to_nxt = inst_to_1hot[15:4]; |
|
reg inst_mov; |
always @(posedge mclk or posedge puc) |
if (puc) inst_mov <= 1'b0; |
else if (decode) inst_mov <= inst_to_nxt[`MOV]; |
|
|
// |
// 4.5) SOURCE AND DESTINATION REGISTERS |
//--------------------------------------- |
/actel_m1a3pl_dev_kit/rtl/verilog/openmsp430/omsp_dbg_uart.v
92,7 → 92,7
//-------------------------------- |
reg [3:0] rxd_sync; |
always @ (posedge mclk or posedge por) |
if (por) rxd_sync <= 4'h0; |
if (por) rxd_sync <= 4'hf; |
else rxd_sync <= {rxd_sync[2:0], dbg_uart_rxd}; |
|
// Majority decision |
/actel_m1a3pl_dev_kit/rtl/verilog/openmsp430/omsp_execution_unit.v
69,6 → 69,7
inst_dext, // Decoded Inst: destination extended instruction word |
inst_irq_rst, // Decoded Inst: reset interrupt |
inst_jmp, // Decoded Inst: Conditional jump |
inst_mov, // Decoded Inst: mov instruction |
inst_sext, // Decoded Inst: source extended instruction word |
inst_so, // Decoded Inst: Single-operand arithmetic |
inst_src, // Decoded Inst: source (one hot) |
109,6 → 110,7
input [15:0] inst_dext; // Decoded Inst: destination extended instruction word |
input inst_irq_rst; // Decoded Inst: reset interrupt |
input [7:0] inst_jmp; // Decoded Inst: Conditional jump |
input inst_mov; // Decoded Inst: mov instruction |
input [15:0] inst_sext; // Decoded Inst: source extended instruction word |
input [7:0] inst_so; // Decoded Inst: Single-operand arithmetic |
input [15:0] inst_src; // Decoded Inst: source (one hot) |
313,12 → 315,13
//============================================================================= |
|
// Detect memory read/write access |
assign mb_en = ((e_state==`E_IRQ_1) & ~inst_irq_rst) | |
((e_state==`E_IRQ_3) & ~inst_irq_rst) | |
((e_state==`E_SRC_RD) & ~inst_as[`IMM]) | |
(e_state==`E_SRC_WR) | |
((e_state==`E_EXEC) & inst_so[`RETI]) | |
(e_state==`E_DST_RD) | |
assign mb_en = ((e_state==`E_IRQ_1) & ~inst_irq_rst) | |
((e_state==`E_IRQ_3) & ~inst_irq_rst) | |
((e_state==`E_SRC_RD) & ~inst_as[`IMM]) | |
(e_state==`E_SRC_WR) | |
((e_state==`E_EXEC) & inst_so[`RETI]) | |
((e_state==`E_DST_RD) & ~inst_type[`INST_SO] |
& ~inst_mov) | |
(e_state==`E_DST_WR); |
|
wire [1:0] mb_wr_msk = inst_alu[`EXEC_NO_WR] ? 2'b00 : |
/actel_m1a3pl_dev_kit/rtl/verilog/openmsp430/openMSP430.v
206,6 → 206,7
.inst_dext (inst_dext), // Decoded Inst: destination extended instruction word |
.inst_irq_rst (inst_irq_rst), // Decoded Inst: Reset interrupt |
.inst_jmp (inst_jmp), // Decoded Inst: Conditional jump |
.inst_mov (inst_mov), // Decoded Inst: mov instruction |
.inst_sext (inst_sext), // Decoded Inst: source extended instruction word |
.inst_so (inst_so), // Decoded Inst: Single-operand arithmetic |
.inst_src (inst_src), // Decoded Inst: source (one hot) |
267,6 → 268,7
.inst_dext (inst_dext), // Decoded Inst: destination extended instruction word |
.inst_irq_rst (inst_irq_rst), // Decoded Inst: reset interrupt |
.inst_jmp (inst_jmp), // Decoded Inst: Conditional jump |
.inst_mov (inst_mov), // Decoded Inst: mov instruction |
.inst_sext (inst_sext), // Decoded Inst: source extended instruction word |
.inst_so (inst_so), // Decoded Inst: Single-operand arithmetic |
.inst_src (inst_src), // Decoded Inst: source (one hot) |
/actel_m1a3pl_dev_kit/sim/rtl_sim/src/submit.f
33,7 → 33,18
// $LastChangedDate: 2010-03-07 21:14:33 +0100 (Sun, 07 Mar 2010) $ |
//============================================================================= |
|
|
//============================================================================= |
// Testbench related |
//============================================================================= |
|
+incdir+../../../bench/verilog/ |
../../../bench/verilog/tb_openMSP430_fpga.v |
../../../bench/verilog/msp_debug.v |
../../../bench/verilog/DAC121S101.v |
|
|
//============================================================================= |
// Actel library |
//============================================================================= |
+libext+.v |
72,14 → 83,3
../../../rtl/verilog/openmsp430/omsp_multiplier.v |
../../../rtl/verilog/openmsp430/periph/omsp_gpio.v |
../../../rtl/verilog/openmsp430/periph/omsp_timerA.v |
|
|
//============================================================================= |
// Testbench related |
//============================================================================= |
|
+incdir+../../../bench/verilog/ |
../../../bench/verilog/tb_openMSP430_fpga.v |
../../../bench/verilog/msp_debug.v |
../../../bench/verilog/DAC121S101.v |
|