summaryrefslogtreecommitdiff
path: root/hdl/top.sv
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--hdl/top.sv181
1 files changed, 92 insertions, 89 deletions
diff --git a/hdl/top.sv b/hdl/top.sv
index dcf04b5..20294ff 100644
--- a/hdl/top.sv
+++ b/hdl/top.sv
@@ -300,37 +300,40 @@ module top
300 assign led[7] = {2'b0, led_step_counter[4], led_step_counter[3], led_step_counter[2], led_step_counter[1], led_step_counter[0], led_run, led_pause, led_ion, led_break, led_current_address}; 300 assign led[7] = {2'b0, led_step_counter[4], led_step_counter[3], led_step_counter[2], led_step_counter[1], led_step_counter[0], led_run, led_pause, led_ion, led_break, led_current_address};
301 assign led[8] = {5'b0, led_link, led_if[0], led_if[1], led_if[2], led_df[0], led_df[1], led_df[2]}; 301 assign led[8] = {5'b0, led_link, led_if[0], led_if[1], led_if[2], led_df[0], led_df[1], led_df[2]};
302 302
303 bit [$clog2(`NUM_PDPS):0] selected_pdp;
304 assign selected_pdp = {switch_df, switch_if};
305
306 bit [11:0] local_led_pc [`NUM_PDPS-1:0];
307 bit [11:0] local_led_memaddr [`NUM_PDPS-1:0];
308 bit [11:0] local_led_memdata [`NUM_PDPS-1:0];
309 bit [11:0] local_led_acc [`NUM_PDPS-1:0];
310 bit [11:0] local_led_mq [`NUM_PDPS-1:0];
311 bit local_led_and [`NUM_PDPS-1:0];
312 bit local_led_tad [`NUM_PDPS-1:0];
313 bit local_led_isz [`NUM_PDPS-1:0];
314 bit local_led_dca [`NUM_PDPS-1:0];
315 bit local_led_jms [`NUM_PDPS-1:0];
316 bit local_led_jmp [`NUM_PDPS-1:0];
317 bit local_led_iot [`NUM_PDPS-1:0];
318 bit local_led_opr [`NUM_PDPS-1:0];
319 bit local_led_fetch [`NUM_PDPS-1:0];
320 bit local_led_execute [`NUM_PDPS-1:0];
321 bit local_led_defer [`NUM_PDPS-1:0];
322 bit local_led_word_count [`NUM_PDPS-1:0];
323 bit local_led_current_address [`NUM_PDPS-1:0];
324 bit local_led_break [`NUM_PDPS-1:0];
325 bit local_led_ion [`NUM_PDPS-1:0];
326 bit local_led_pause [`NUM_PDPS-1:0];
327 bit local_led_run [`NUM_PDPS-1:0];
328 bit [4:0] local_led_step_counter [`NUM_PDPS-1:0];
329 bit [2:0] local_led_df [`NUM_PDPS-1:0];
330 bit [2:0] local_led_if [`NUM_PDPS-1:0];
331 bit local_led_link [`NUM_PDPS-1:0];
332
303 generate 333 generate
304 genvar i; 334 genvar i;
305 for (i = 0; i < `NUM_PDPS; ++i) begin : core 335 for (i = 0; i < `NUM_PDPS; ++i) begin : core
306 336
307 bit [11:0] local_led_pc;
308 bit [11:0] local_led_memaddr;
309 bit [11:0] local_led_memdata;
310 bit [11:0] local_led_acc;
311 bit [11:0] local_led_mq;
312 bit local_led_and;
313 bit local_led_tad;
314 bit local_led_isz;
315 bit local_led_dca;
316 bit local_led_jms;
317 bit local_led_jmp;
318 bit local_led_iot;
319 bit local_led_opr;
320 bit local_led_fetch;
321 bit local_led_execute;
322 bit local_led_defer;
323 bit local_led_word_count;
324 bit local_led_current_address;
325 bit local_led_break;
326 bit local_led_ion;
327 bit local_led_pause;
328 bit local_led_run;
329 bit [4:0] local_led_step_counter;
330 bit [2:0] local_led_df;
331 bit [2:0] local_led_if;
332 bit local_led_link;
333
334 core 337 core
335 #( .JTAG_INSTANCE(1+i) 338 #( .JTAG_INSTANCE(1+i)
336 ) cpu 339 ) cpu
@@ -345,75 +348,75 @@ module top
345 , .mem_read_valid(pdp_response_valid[i]) 348 , .mem_read_valid(pdp_response_valid[i])
346 , .mem_read(pdp_response_data[i]) 349 , .mem_read(pdp_response_data[i])
347 350
348 , .switch_df(switch_df) 351 , .switch_df(0)
349 , .switch_if(switch_if) 352 , .switch_if(0)
350 , .switch_sr(switch_sr) 353 , .switch_sr(switch_sr)
351 , .switch_start(switch_start) 354 , .switch_start(selected_pdp == i ? switch_start : 0)
352 , .switch_load_add(switch_load_add) 355 , .switch_load_add(selected_pdp == i ? switch_load_add : 0)
353 , .switch_dep(switch_dep) 356 , .switch_dep(selected_pdp == i ? switch_dep : 0)
354 , .switch_exam(switch_exam) 357 , .switch_exam(selected_pdp == i ? switch_exam : 0)
355 , .switch_cont(switch_cont) 358 , .switch_cont(selected_pdp == i ? switch_cont : 0)
356 , .switch_stop(switch_stop) 359 , .switch_stop(selected_pdp == i ? switch_stop : 0)
357 , .switch_sing_step(switch_sing_step) 360 , .switch_sing_step(selected_pdp == i ? switch_sing_step : 0)
358 , .switch_sing_inst(switch_sing_inst) 361 , .switch_sing_inst(selected_pdp == i ? switch_sing_inst : 0)
359 362
360 , .led_pc(local_led_pc) 363 , .led_pc(local_led_pc[i])
361 , .led_memaddr(local_led_memaddr) 364 , .led_memaddr(local_led_memaddr[i])
362 , .led_memdata(local_led_memdata) 365 , .led_memdata(local_led_memdata[i])
363 , .led_acc(local_led_acc) 366 , .led_acc(local_led_acc[i])
364 , .led_mq(local_led_mq) 367 , .led_mq(local_led_mq[i])
365 , .led_and(local_led_and) 368 , .led_and(local_led_and[i])
366 , .led_tad(local_led_tad) 369 , .led_tad(local_led_tad[i])
367 , .led_isz(local_led_isz) 370 , .led_isz(local_led_isz[i])
368 , .led_dca(local_led_dca) 371 , .led_dca(local_led_dca[i])
369 , .led_jms(local_led_jms) 372 , .led_jms(local_led_jms[i])
370 , .led_jmp(local_led_jmp) 373 , .led_jmp(local_led_jmp[i])
371 , .led_iot(local_led_iot) 374 , .led_iot(local_led_iot[i])
372 , .led_opr(local_led_opr) 375 , .led_opr(local_led_opr[i])
373 , .led_fetch(local_led_fetch) 376 , .led_fetch(local_led_fetch[i])
374 , .led_execute(local_led_execute) 377 , .led_execute(local_led_execute[i])
375 , .led_defer(local_led_defer) 378 , .led_defer(local_led_defer[i])
376 , .led_word_count(local_led_word_count) 379 , .led_word_count(local_led_word_count[i])
377 , .led_current_address(local_led_current_address) 380 , .led_current_address(local_led_current_address[i])
378 , .led_break(local_led_break) 381 , .led_break(local_led_break[i])
379 , .led_ion(local_led_ion) 382 , .led_ion(local_led_ion[i])
380 , .led_pause(local_led_pause) 383 , .led_pause(local_led_pause[i])
381 , .led_run(local_led_run) 384 , .led_run(local_led_run[i])
382 , .led_step_counter(local_led_step_counter) 385 , .led_step_counter(local_led_step_counter[i])
383 , .led_df(local_led_df) 386 , .led_df(local_led_df[i])
384 , .led_if(local_led_if) 387 , .led_if(local_led_if[i])
385 , .led_link(local_led_link) 388 , .led_link(local_led_link[i])
386 ); 389 );
387 390
388 end 391 end
389 392
390 endgenerate 393 endgenerate
391 394
392 assign led_pc = core[0].local_led_pc; 395 assign led_pc = local_led_pc[selected_pdp];
393 assign led_memaddr = core[0].local_led_memaddr; 396 assign led_memaddr = local_led_memaddr[selected_pdp];
394 assign led_memdata = core[0].local_led_memdata; 397 assign led_memdata = local_led_memdata[selected_pdp];
395 assign led_acc = core[0].local_led_acc; 398 assign led_acc = local_led_acc[selected_pdp];
396 assign led_mq = core[0].local_led_mq; 399 assign led_mq = local_led_mq[selected_pdp];
397 assign led_and = core[0].local_led_and; 400 assign led_and = local_led_and[selected_pdp];
398 assign led_tad = core[0].local_led_tad; 401 assign led_tad = local_led_tad[selected_pdp];
399 assign led_isz = core[0].local_led_isz; 402 assign led_isz = local_led_isz[selected_pdp];
400 assign led_dca = core[0].local_led_dca; 403 assign led_dca = local_led_dca[selected_pdp];
401 assign led_jms = core[0].local_led_jms; 404 assign led_jms = local_led_jms[selected_pdp];
402 assign led_jmp = core[0].local_led_jmp; 405 assign led_jmp = local_led_jmp[selected_pdp];
403 assign led_iot = core[0].local_led_iot; 406 assign led_iot = local_led_iot[selected_pdp];
404 assign led_opr = core[0].local_led_opr; 407 assign led_opr = local_led_opr[selected_pdp];
405 assign led_fetch = core[0].local_led_fetch; 408 assign led_fetch = local_led_fetch[selected_pdp];
406 assign led_execute = core[0].local_led_execute; 409 assign led_execute = local_led_execute[selected_pdp];
407 assign led_defer = core[0].local_led_defer; 410 assign led_defer = local_led_defer[selected_pdp];
408 assign led_word_count = core[0].local_led_word_count; 411 assign led_word_count = local_led_word_count[selected_pdp];
409 assign led_current_address = core[0].local_led_current_address; 412 assign led_current_address = local_led_current_address[selected_pdp];
410 assign led_break = core[0].local_led_break; 413 assign led_break = local_led_break[selected_pdp];
411 assign led_ion = core[0].local_led_ion; 414 assign led_ion = local_led_ion[selected_pdp];
412 assign led_pause = core[0].local_led_pause; 415 assign led_pause = local_led_pause[selected_pdp];
413 assign led_run = core[0].local_led_run; 416 assign led_run = local_led_run[selected_pdp];
414 assign led_step_counter = core[0].local_led_step_counter; 417 assign led_step_counter = local_led_step_counter[selected_pdp];
415 assign led_df = core[0].local_led_df; 418 assign led_df = local_led_df[selected_pdp];
416 assign led_if = core[0].local_led_if; 419 assign led_if = local_led_if[selected_pdp];
417 assign led_link = core[0].local_led_link; 420 assign led_link = local_led_link[selected_pdp];
418 421
419endmodule 422endmodule