Skip to content

Commit fa11696

Browse files
committed
debugging CUS30 shared memory access
1 parent f36c1c4 commit fa11696

File tree

5 files changed

+27
-19
lines changed

5 files changed

+27
-19
lines changed

cores/rthunder/hdl/jtrthunder_cenloop.v

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ module jtrthunder_cenloop(
2121
input clk,
2222
input [ 1:0] busy,
2323

24-
output cen_main, cen_sub, cen_mcu,
24+
output cen_main, cen_sub, cen_mcu, mcu_seln,
2525

2626
output [15:0] fave, fworst // average cpu_cen frequency in kHz
2727
);
@@ -34,6 +34,7 @@ parameter FCLK = 49152,
3434

3535
reg [3:0] cpu_cen;
3636
reg [1:0] clk4;
37+
reg cen_main_l;
3738
wire over;
3839
wire [ CW:0] cencnt_nx;
3940
reg [CW-1:0] cencnt=0;
@@ -46,9 +47,11 @@ assign cencnt_nx = {1'b0,cencnt}+NUM[CW:0] -
4647

4748
assign cen_main = cpu_cen[0];
4849
assign cen_sub = cpu_cen[1];
49-
assign cen_mcu =|cpu_cen[3:0];
50+
assign cen_mcu =|cpu_cen[3:1];
51+
assign mcu_seln = (over&(clk4==0)) | cen_main | cen_main_l;
5052

5153
always @(posedge clk) begin
54+
cen_main_l <= cen_main;
5255
if( ~&blank ) blank <= blank + 1'd1 ;
5356
cencnt <= cencnt_nx[CW] ? {CW{1'b1}} : cencnt_nx[CW-1:0];
5457
if( over && bsyg ) begin

cores/rthunder/hdl/jtrthunder_game.v

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ reg [ 7:0] dbg_mux;
2626
wire [ 7:0] backcolor, st_main, mdout, c30_dout;
2727
wire [ 8:0] scr0x, scr0y, scr1x, scr1y;
2828
wire cen_main, cen_sub, cen_mcu, flip, mmr0_cs, mmr1_cs, brnw, tile_bank,
29-
mrnw, bsel, mc30_cs;
29+
mrnw, bsel, mc30_cs, mcu_seln;
3030
// Configuration through MRA header
3131
wire scr2bpp, sndext_en;
3232

@@ -65,6 +65,7 @@ jtrthunder_cenloop u_cen(
6565
.cen_main ( cen_main ),
6666
.cen_sub ( cen_sub ),
6767
.cen_mcu ( cen_mcu ),
68+
.mcu_seln ( mcu_seln ),
6869

6970
.fave ( fave ),
7071
.fworst ( )
@@ -142,7 +143,7 @@ jtrthunder_sound u_sound(
142143
.service ( service ),
143144

144145
// sub 6809 connection to CUS30
145-
.bsel ( bsel ),
146+
.mcu_seln ( mcu_seln ),
146147
.c30_dout ( c30_dout ),
147148
.mc30_cs ( mc30_cs ),
148149
.mrnw ( mrnw ),

cores/rthunder/hdl/jtrthunder_sound.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
module jtrthunder_sound(
2020
input rst, clk,
2121
cen_fm, cen_fm2, cen_mcu,
22-
lvbl, bsel,
22+
lvbl, mcu_seln,
2323

2424
input [15:0] dipsw,
2525
input [ 6:0] joystick1, joystick2,
@@ -149,7 +149,7 @@ jtframe_6801mcu #(.ROMW(12),.SLOW_FRC(2),.MODEL("HD63701V")) u_63701(
149149
jtcus30 u_wav(
150150
.rst ( rst ), // original does not have a reset pin
151151
.clk ( clk ),
152-
.bsel ( ~bsel ),
152+
.bsel ( mcu_seln ),
153153
.cen ( cen_mcu ),
154154

155155
.xdin ( c30_dout ),

cores/shouse/hdl/jtcus30_mmr.v

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -214,11 +214,11 @@ initial begin
214214
if( fcnt!=SIZE ) begin
215215
$display("WARNING: Missing %d bytes for %m.mmr",SIZE-fcnt);
216216
end else begin
217-
$display("\tlvol = %X",{ mmr[0][3:0], mmr[8][3:0], mmr[16][3:0], mmr[24][3:0], mmr[32][3:0], mmr[40][3:0], mmr[48][3:0], mmr[56][3:0],{0{1'b0}}});
218-
$display("\trvol = %X",{ mmr[4][3:0], mmr[12][3:0], mmr[20][3:0], mmr[28][3:0], mmr[36][3:0], mmr[44][3:0], mmr[52][3:0], mmr[60][3:0],{0{1'b0}}});
219-
$display("\tno_en = %X",{ mmr[60][7], mmr[4][7], mmr[12][7], mmr[20][7], mmr[28][7], mmr[36][7], mmr[44][7], mmr[52][7],{0{1'b0}}});
220-
$display("\twsel = %X",{ mmr[1][7:4], mmr[9][7:4], mmr[17][7:4], mmr[25][7:4], mmr[33][7:4], mmr[41][7:4], mmr[49][7:4], mmr[57][7:4],{0{1'b0}}});
221-
$display("\tfreq = %X",{ mmr[1][3:0], mmr[2][7:0], mmr[3][7:0], mmr[9][3:0], mmr[10][7:0], mmr[11][7:0], mmr[17][3:0], mmr[18][7:0], mmr[19][7:0], mmr[25][3:0], mmr[26][7:0], mmr[27][7:0], mmr[33][3:0], mmr[34][7:0], mmr[35][7:0], mmr[41][3:0], mmr[42][7:0], mmr[43][7:0], mmr[49][3:0], mmr[50][7:0], mmr[51][7:0], mmr[57][3:0], mmr[58][7:0], mmr[59][7:0],{0{1'b0}}});
217+
$display("\tlvol = %X",{ mmr_init[0][3:0], mmr_init[8][3:0], mmr_init[16][3:0], mmr_init[24][3:0], mmr_init[32][3:0], mmr_init[40][3:0], mmr_init[48][3:0], mmr_init[56][3:0],{0{1'b0}}});
218+
$display("\trvol = %X",{ mmr_init[4][3:0], mmr_init[12][3:0], mmr_init[20][3:0], mmr_init[28][3:0], mmr_init[36][3:0], mmr_init[44][3:0], mmr_init[52][3:0], mmr_init[60][3:0],{0{1'b0}}});
219+
$display("\tno_en = %X",{ mmr_init[60][7], mmr_init[4][7], mmr_init[12][7], mmr_init[20][7], mmr_init[28][7], mmr_init[36][7], mmr_init[44][7], mmr_init[52][7],{0{1'b0}}});
220+
$display("\twsel = %X",{ mmr_init[1][7:4], mmr_init[9][7:4], mmr_init[17][7:4], mmr_init[25][7:4], mmr_init[33][7:4], mmr_init[41][7:4], mmr_init[49][7:4], mmr_init[57][7:4],{0{1'b0}}});
221+
$display("\tfreq = %X",{ mmr_init[1][3:0], mmr_init[2][7:0], mmr_init[3][7:0], mmr_init[9][3:0], mmr_init[10][7:0], mmr_init[11][7:0], mmr_init[17][3:0], mmr_init[18][7:0], mmr_init[19][7:0], mmr_init[25][3:0], mmr_init[26][7:0], mmr_init[27][7:0], mmr_init[33][3:0], mmr_init[34][7:0], mmr_init[35][7:0], mmr_init[41][3:0], mmr_init[42][7:0], mmr_init[43][7:0], mmr_init[49][3:0], mmr_init[50][7:0], mmr_init[51][7:0], mmr_init[57][3:0], mmr_init[58][7:0], mmr_init[59][7:0],{0{1'b0}}});
222222
end
223223
end
224224
$fclose(f);

modules/jt680x/ucode/680x.yaml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,14 @@ ucode:
165165
- name: psh16
166166
start: 2
167167
seq:
168-
- s_rmux, ld0_opnd, s_ea
169-
- one_rmux, ld1_opnd, s_ea
170-
- sub_alu s_ld, wr, s_ea
171-
- s_rmux, ld0_opnd, s_ea
172-
- sub_alu, s_ld, wr, s_ea, md_shift, ret_jsr
168+
# both byte pushes take the same number of cycles: 3
169+
# this makes easier to multiplex the memory with another CPU
170+
- s_rmux, ld0_opnd, wr, s_ea
171+
- one_rmux, ld1_opnd, wr, s_ea
172+
- sub_alu s_ld, wr, s_ea
173+
- s_rmux, ld0_opnd, wr, s_ea, md_shift
174+
- wr, s_ea, md_shift
175+
- sub_alu, s_ld, wr, s_ea, md_shift, ret_jsr
173176
- name: pul8 # 1+11 ucode cycles = 3 bus cycles
174177
start: 3
175178
seq:
@@ -293,7 +296,8 @@ ucode:
293296
- imm_jsr
294297
- pc_rmux, ld1_opnd, branch
295298
- ld0_opnd
296-
- add_alu, pc_ld, idle4_jsr
299+
- add_alu, pc_ld
300+
-
297301
- fetch
298302
- # wait for the fetch
299303
- ni
@@ -383,7 +387,7 @@ ucode:
383387
- ni
384388
- mnemo: [ WAI ]
385389
seq: # 9*4 = 36 codes
386-
- inc_pc, idle4_jsr
390+
- inc_pc
387391
- pc_rmux, ld0_opnd
388392
- md_ld, psh16_jsr
389393

@@ -415,5 +419,5 @@ ucode:
415419

416420
- cc_rmux, ld0_opnd, s_ea
417421
- md_ld, psh8_jsr, s_ea
418-
- idle6_jsr
422+
- idle4_jsr
419423
- swi, ivrd_jsr

0 commit comments

Comments
 (0)