mirror of
https://github.com/sxpert/hp-saturn
synced 2025-01-13 20:01:10 +01:00
try replacing all ifs with a case... yosys blows up too
This commit is contained in:
parent
0940b198d3
commit
4800c6f241
9 changed files with 10842 additions and 74 deletions
2
compile
2
compile
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
|
|
||||||
#yosys -p "synth_ecp5 -top saturn_core -json saturn_core.json" saturn_core.v
|
#yosys -p "synth_ecp5 -top saturn_core -json saturn_core.json" saturn_core.v
|
||||||
yosys saturn_core.ys
|
yosys saturn_core.ESP5.ys
|
||||||
nextpnr-ecp5 --gui --85k --speed 6 --freq 5 --lpf ulx3s_v20.lpf --textcfg empty_lfe5u-85f.config --json saturn_core.json --save saturn_core.ecp5
|
nextpnr-ecp5 --gui --85k --speed 6 --freq 5 --lpf ulx3s_v20.lpf --textcfg empty_lfe5u-85f.config --json saturn_core.json --save saturn_core.ecp5
|
||||||
|
|
|
@ -141,7 +141,7 @@ always @(negedge clk)
|
||||||
// test if write can be done
|
// test if write can be done
|
||||||
if (io_ram_active)
|
if (io_ram_active)
|
||||||
begin
|
begin
|
||||||
io_ram[data_ptr - base_addr] <= nibble_in;
|
io_ram[data_ptr[5:0] - base_addr[5:0]] <= nibble_in;
|
||||||
`ifdef SIM
|
`ifdef SIM
|
||||||
$display("io_ram: DP_WRITE %5h %h | OK", data_ptr, nibble_in);
|
$display("io_ram: DP_WRITE %5h %h | OK", data_ptr, nibble_in);
|
||||||
`endif
|
`endif
|
||||||
|
|
7
ico
Executable file
7
ico
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# licence: GPLv3 or later
|
||||||
|
#
|
||||||
|
|
||||||
|
yosys saturn_core.ICE40.ys
|
||||||
|
#nextpnr-ecp5 --gui --85k --speed 6 --freq 5 --lpf ulx3s_v20.lpf --textcfg empty_lfe5u-85f.config --json saturn_core.json --save saturn_core.ecp5
|
48
icoboard.pcf
Normal file
48
icoboard.pcf
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2017 Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# 3. Neither the name of copyright holder nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived from
|
||||||
|
# this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
set_io clk_100mhz R9
|
||||||
|
|
||||||
|
set_io pmod1_1 D8
|
||||||
|
set_io pmod1_2 B9
|
||||||
|
set_io pmod1_3 B10
|
||||||
|
set_io pmod1_4 B11
|
||||||
|
set_io pmod1_7 B8
|
||||||
|
set_io pmod1_8 A9
|
||||||
|
set_io pmod1_9 A10
|
||||||
|
set_io pmod1_10 A11
|
||||||
|
|
||||||
|
set_io pmod2_7 B7
|
||||||
|
set_io pmod2_8 B6
|
||||||
|
set_io pmod2_9 B3
|
||||||
|
set_io pmod2_10 B5
|
||||||
|
|
||||||
|
set_io rpi_sck H11
|
||||||
|
set_io rpi_cs D4
|
||||||
|
set_io rpi_mosi A6
|
2
saturn_core.ESP5.ys
Normal file
2
saturn_core.ESP5.ys
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
read_verilog -I. saturn_core.v
|
||||||
|
synth_ecp5 -top saturn_core -json saturn_core.json
|
2
saturn_core.ICE40.ys
Normal file
2
saturn_core.ICE40.ys
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
read_verilog -I. saturn_core.v
|
||||||
|
synth_ice40 -blif demo.blif
|
148
saturn_core.v
148
saturn_core.v
|
@ -54,7 +54,7 @@ module saturn_core (
|
||||||
input reset,
|
input reset,
|
||||||
output halt,
|
output halt,
|
||||||
output [3:0] runstate,
|
output [3:0] runstate,
|
||||||
output [15:0] decstate
|
output [4:0] decstate
|
||||||
);
|
);
|
||||||
`else
|
`else
|
||||||
module saturn_core (
|
module saturn_core (
|
||||||
|
@ -73,58 +73,52 @@ assign reset = btn[1];
|
||||||
`endif
|
`endif
|
||||||
|
|
||||||
// led display states
|
// led display states
|
||||||
localparam REGDMP_HEX = 8'h00;
|
localparam REGDMP_HEX = 0;
|
||||||
|
|
||||||
|
|
||||||
// bus commands
|
|
||||||
|
|
||||||
// localparam BUSCMD_DP_WRITE = `C_BUSCMD_DP_WRITE;
|
|
||||||
// localparam BUSCMD_CONFIGURE = `C_BUSCMD_CONFIGURE;
|
|
||||||
|
|
||||||
// instruction decoder states
|
// instruction decoder states
|
||||||
|
|
||||||
localparam DECODE_START = 16'h0000;
|
localparam DECODE_START = 0; // x
|
||||||
|
|
||||||
localparam DECODE_0 = 16'h0001;
|
localparam DECODE_0 = 1; // 0
|
||||||
localparam DECODE_0X = 16'h0002;
|
localparam DECODE_0X = 2; // 0x
|
||||||
|
|
||||||
localparam DECODE_RTNCC = 16'h0300;
|
localparam DECODE_RTNCC = 3; // 03
|
||||||
localparam DECODE_SETHEX = 16'h0400;
|
localparam DECODE_SETHEX = 4; // 04
|
||||||
localparam DECODE_SETDEC = 16'h0500;
|
localparam DECODE_SETDEC = 5; // 05
|
||||||
|
|
||||||
localparam DECODE_1 = 16'h0010;
|
localparam DECODE_1 = 6; // 1
|
||||||
localparam DECODE_1X = 16'h0011;
|
localparam DECODE_1X = 7; // 1x
|
||||||
localparam DECODE_14 = 16'h0410;
|
localparam DECODE_14 = 8; // 14
|
||||||
localparam DECODE_15 = 16'h0510;
|
localparam DECODE_15 = 9; // 15
|
||||||
localparam DECODE_MEMACCESS = 16'h0411;
|
localparam DECODE_MEMACCESS = 10; // 1[45]x[y]
|
||||||
localparam DECODE_D0_EQ_5N = 16'h0b10;
|
localparam DECODE_D0_EQ_5N = 11; // 1Bzyxwv
|
||||||
|
|
||||||
localparam DECODE_P_EQ = 16'h0020;
|
localparam DECODE_P_EQ = 12; // 2n
|
||||||
|
|
||||||
localparam DECODE_LC_LEN = 16'h0030;
|
localparam DECODE_LC_LEN = 13; // 3n
|
||||||
localparam DECODE_LC = 16'h0031;
|
localparam DECODE_LC = 14; // 3n{xxxxxxxxxxxxxxxx}
|
||||||
|
|
||||||
localparam DECODE_GOTO = 16'h0060;
|
localparam DECODE_GOTO = 15; // 6zyx
|
||||||
|
|
||||||
localparam DECODE_8 = 16'h0080;
|
localparam DECODE_8 = 16; // 8
|
||||||
localparam DECODE_8X = 16'h0081;
|
localparam DECODE_8X = 17; // 8x
|
||||||
localparam DECODE_80 = 16'h0082;
|
localparam DECODE_80 = 18; // 80
|
||||||
|
|
||||||
localparam DECODE_CONFIG = 16'h5080;
|
localparam DECODE_CONFIG = 19; // 805
|
||||||
localparam DECODE_RESET = 16'hA080;
|
localparam DECODE_RESET = 20; // 80A
|
||||||
|
|
||||||
localparam DECODE_C_EQ_P_N = 16'hC080;
|
localparam DECODE_C_EQ_P_N = 21; // 80Cn
|
||||||
|
|
||||||
localparam DECODE_82 = 16'h0280;
|
localparam DECODE_82 = 22; // 82
|
||||||
|
|
||||||
localparam DECODE_ST_EQ_0_N = 16'h0480;
|
localparam DECODE_ST_EQ_0_N = 23; // 84n
|
||||||
localparam DECODE_ST_EQ_1_N = 16'h0580;
|
localparam DECODE_ST_EQ_1_N = 24; // 85n
|
||||||
|
|
||||||
localparam DECODE_GOVLNG = 16'h0d80;
|
localparam DECODE_GOVLNG = 25; // 8Dzyxwv
|
||||||
localparam DECODE_GOSBVL = 16'h0f80;
|
localparam DECODE_GOSBVL = 26; // 8Fzyxwv
|
||||||
|
|
||||||
localparam DECODE_A = 16'h00a0;
|
localparam DECODE_A = 27; // A
|
||||||
localparam DECODE_A_FS = 16'h00a1;
|
localparam DECODE_A_FS = 28; // A()
|
||||||
|
|
||||||
// status registers constants
|
// status registers constants
|
||||||
|
|
||||||
|
@ -153,8 +147,8 @@ localparam T_FIELD_A = 15;
|
||||||
// state machine stuff
|
// state machine stuff
|
||||||
reg halt;
|
reg halt;
|
||||||
reg [3:0] runstate;
|
reg [3:0] runstate;
|
||||||
reg [15:0] decstate;
|
reg [4:0] decstate;
|
||||||
reg [7:0] regdump;
|
reg [3:0] regdump;
|
||||||
|
|
||||||
// bus access
|
// bus access
|
||||||
reg [19:0] bus_address;
|
reg [19:0] bus_address;
|
||||||
|
@ -427,7 +421,10 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_0)
|
case (decstate)
|
||||||
|
|
||||||
|
//if (decstate == DECODE_0)
|
||||||
|
DECODE_0:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -460,7 +457,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_RTNCC)
|
//if (decstate == DECODE_RTNCC)
|
||||||
|
DECODE_RTNCC:
|
||||||
begin
|
begin
|
||||||
Carry <= 0;
|
Carry <= 0;
|
||||||
PC <= RSTK[rstk_ptr];
|
PC <= RSTK[rstk_ptr];
|
||||||
|
@ -480,7 +478,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_SETHEX)
|
//if (decstate == DECODE_SETHEX)
|
||||||
|
DECODE_SETHEX:
|
||||||
begin
|
begin
|
||||||
hex_dec <= HEX;
|
hex_dec <= HEX;
|
||||||
`ifdef SIM
|
`ifdef SIM
|
||||||
|
@ -496,7 +495,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_SETDEC)
|
//if (decstate == DECODE_SETDEC)
|
||||||
|
DECODE_SETDEC:
|
||||||
begin
|
begin
|
||||||
hex_dec <= DEC;
|
hex_dec <= DEC;
|
||||||
`ifdef SIM
|
`ifdef SIM
|
||||||
|
@ -512,7 +512,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_1)
|
//if (decstate == DECODE_1)
|
||||||
|
DECODE_1:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -563,7 +564,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((decstate == DECODE_14)|(decstate == DECODE_15))
|
//if ((decstate == DECODE_14)|(decstate == DECODE_15))
|
||||||
|
DECODE_14, DECODE_15:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -599,7 +601,8 @@ begin
|
||||||
end
|
end
|
||||||
endcase
|
endcase
|
||||||
|
|
||||||
if (decstate == DECODE_MEMACCESS)
|
//if (decstate == DECODE_MEMACCESS)
|
||||||
|
DECODE_MEMACCESS:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_EXEC:
|
`RUN_EXEC:
|
||||||
begin
|
begin
|
||||||
|
@ -686,7 +689,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_D0_EQ_5N)
|
//if (decstate == DECODE_D0_EQ_5N)
|
||||||
|
DECODE_D0_EQ_5N:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE:
|
`RUN_DECODE:
|
||||||
begin
|
begin
|
||||||
|
@ -733,7 +737,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_P_EQ)
|
//if (decstate == DECODE_P_EQ)
|
||||||
|
DECODE_P_EQ:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -762,7 +767,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((decstate == DECODE_LC_LEN) | (decstate == DECODE_LC))
|
//if ((decstate == DECODE_LC_LEN) | (decstate == DECODE_LC))
|
||||||
|
DECODE_LC_LEN, DECODE_LC:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -822,7 +828,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_GOTO)
|
//if (decstate == DECODE_GOTO)
|
||||||
|
DECODE_GOTO:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE:
|
`RUN_DECODE:
|
||||||
begin
|
begin
|
||||||
|
@ -872,7 +879,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_8)
|
//if (decstate == DECODE_8)
|
||||||
|
DECODE_8:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -910,7 +918,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_80)
|
//if (decstate == DECODE_80)
|
||||||
|
DECODE_80:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -947,7 +956,9 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((decstate == DECODE_CONFIG) & (runstate == `RUN_DECODE))
|
//if ((decstate == DECODE_CONFIG) & (runstate == `RUN_DECODE))
|
||||||
|
DECODE_CONFIG:
|
||||||
|
if (runstate == `RUN_DECODE)
|
||||||
begin
|
begin
|
||||||
`ifdef SIM
|
`ifdef SIM
|
||||||
$display("%05h CONFIG\t\t\t<= NOT IMPLEMENTED YET", saved_PC);
|
$display("%05h CONFIG\t\t\t<= NOT IMPLEMENTED YET", saved_PC);
|
||||||
|
@ -962,7 +973,9 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((decstate == DECODE_RESET) & (runstate == `RUN_DECODE))
|
//if ((decstate == DECODE_RESET) & (runstate == `RUN_DECODE))
|
||||||
|
DECODE_RESET:
|
||||||
|
if (runstate == `RUN_DECODE)
|
||||||
begin
|
begin
|
||||||
`ifdef SIM
|
`ifdef SIM
|
||||||
$display("%05h RESET\t\t\t<= NOT IMPLEMENTED YET", saved_PC);
|
$display("%05h RESET\t\t\t<= NOT IMPLEMENTED YET", saved_PC);
|
||||||
|
@ -977,7 +990,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_C_EQ_P_N)
|
//if (decstate == DECODE_C_EQ_P_N)
|
||||||
|
DECODE_C_EQ_P_N:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -1007,7 +1021,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (decstate == DECODE_82)
|
//if (decstate == DECODE_82)
|
||||||
|
DECODE_82:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -1041,7 +1056,8 @@ begin
|
||||||
* 85n ST=1 n
|
* 85n ST=1 n
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((decstate == DECODE_ST_EQ_0_N) | (decstate == DECODE_ST_EQ_1_N))
|
//if ((decstate == DECODE_ST_EQ_0_N) | (decstate == DECODE_ST_EQ_1_N))
|
||||||
|
DECODE_ST_EQ_0_N, DECODE_ST_EQ_1_N:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -1081,7 +1097,8 @@ begin
|
||||||
* two for the price of one...
|
* two for the price of one...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((decstate == DECODE_GOVLNG) | (decstate == DECODE_GOSBVL))
|
//if ((decstate == DECODE_GOVLNG) | (decstate == DECODE_GOSBVL))
|
||||||
|
DECODE_GOVLNG, DECODE_GOSBVL:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE:
|
`RUN_DECODE:
|
||||||
begin
|
begin
|
||||||
|
@ -1137,7 +1154,8 @@ begin
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((decstate == DECODE_A)|(decstate == DECODE_A_FS))
|
//if ((decstate == DECODE_A)|(decstate == DECODE_A_FS))
|
||||||
|
DECODE_A, DECODE_A_FS:
|
||||||
case (runstate)
|
case (runstate)
|
||||||
`RUN_DECODE: runstate <= `INSTR_START;
|
`RUN_DECODE: runstate <= `INSTR_START;
|
||||||
`INSTR_START, `INSTR_STROBE: begin end
|
`INSTR_START, `INSTR_STROBE: begin end
|
||||||
|
@ -1197,6 +1215,16 @@ begin
|
||||||
end
|
end
|
||||||
endcase
|
endcase
|
||||||
|
|
||||||
|
|
||||||
|
default:
|
||||||
|
begin
|
||||||
|
`ifdef SIM
|
||||||
|
$display("decstate %h not handled", decstate);
|
||||||
|
`endif
|
||||||
|
//halt <= 1;
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
|
||||||
/**************************************************************************************************
|
/**************************************************************************************************
|
||||||
*
|
*
|
||||||
* Dump all registers to leds, one piece at a time
|
* Dump all registers to leds, one piece at a time
|
||||||
|
@ -1227,7 +1255,7 @@ reg clk;
|
||||||
reg reset;
|
reg reset;
|
||||||
wire halt;
|
wire halt;
|
||||||
wire [3:0] runstate;
|
wire [3:0] runstate;
|
||||||
wire [15:0] decstate;
|
wire [4:0] decstate;
|
||||||
|
|
||||||
saturn_core saturn (
|
saturn_core saturn (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
read_verilog -I. saturn_core.v
|
|
||||||
synth_ecp5 -top saturn_core -json saturn_core.json
|
|
Loading…
Reference in a new issue