Skip to content

Commit 83b70c6

Browse files
committed
possibly it did the trick with proper data read & write
1 parent 5706435 commit 83b70c6

File tree

1 file changed

+48
-6
lines changed

1 file changed

+48
-6
lines changed

ISA_Camac_Interface/sm2201_interface_board/sm2201_interface_board.v

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ module sm2201_interface_board(
3737
input wire [9:0] isa_addr,
3838
output wire [7:0] isa_irq,
3939
// controller interface bus (common bus = ОШ)
40-
inout wire [15:0] cb_data,
40+
inout reg [15:0] cb_data,
4141
input wire cb_prr,
4242
input wire cb_cx1,
4343
input wire cb_zk4, // X 2.2 B21 ЗК4 ???
@@ -130,13 +130,16 @@ wire [7:0] d16_out;
130130
supply0 gnd;
131131
supply1 vcc;
132132

133+
reg [7:0] cb_data_out_l;
134+
reg [7:0] cb_data_out_h;
135+
133136
// ######################### LINES ASSIGNMENT ############################
134137

135138
// DD1
136-
assign d1_db[0] = cb_data[12];
139+
/*assign d1_db[0] = cb_data[12];
137140
assign d1_db[1] = cb_data[14];
138141
assign d1_db[2] = cb_data[13];
139-
assign d1_db[3] = cb_data[15];
142+
assign d1_db[3] = cb_data[15];*/
140143

141144
assign d1_di[0] = d3_q[0];
142145
assign d1_di[1] = d3_q[2];
@@ -155,10 +158,10 @@ assign d4_s2[2] = cb_data[14];
155158
assign d4_s2[3] = cb_data[13];
156159

157160
// DD2
158-
assign d2_db[0] = cb_data[9];
161+
/*assign d2_db[0] = cb_data[9];
159162
assign d2_db[1] = cb_data[10];
160163
assign d2_db[2] = cb_data[8];
161-
assign d2_db[3] = cb_data[11];
164+
assign d2_db[3] = cb_data[11];*/
162165

163166
assign d2_di[0] = d4_q[0];
164167
assign d2_di[1] = d4_q[2];
@@ -334,7 +337,7 @@ assign isa_irq[4] = vcc;
334337
assign isa_irq[5] = vcc;
335338
assign isa_irq[6] = vcc;
336339

337-
assign cb_data[4] = d11_do[0];
340+
/*assign cb_data[4] = d11_do[0];
338341
assign cb_data[5] = d11_do[1];
339342
assign cb_data[6] = d11_do[2];
340343
assign cb_data[7] = d11_do[3];
@@ -344,6 +347,16 @@ assign cb_data[1] = d12_do[1];
344347
assign cb_data[2] = d12_do[2];
345348
assign cb_data[3] = d12_do[3];
346349
350+
assign cb_data[12] = d1_db[0];
351+
assign cb_data[14] = d1_db[1];
352+
assign cb_data[13] = d1_db[2];
353+
assign cb_data[15] = d1_db[3];
354+
355+
assign cb_data[9] = d2_db[0];
356+
assign cb_data[10] = d2_db[1];
357+
assign cb_data[8] = d2_db[2];
358+
assign cb_data[11] = d2_db[3];*/
359+
347360
// #######################################################################
348361

349362
/* DD1 (BUS former)
@@ -445,5 +458,34 @@ dig_machine_ip3604 d15(.address(d15_addr), .cs(d15_cs), .data(d15_out));
445458
// DD16
446459
SN74LS374 d16(.out_control(gnd), .clk(isa_clk), .data(d16_data), .out(d16_out));
447460

461+
always @(*)
462+
begin
463+
cb_data_out_l[0] = d12_do[0];
464+
cb_data_out_l[1] = d12_do[1];
465+
cb_data_out_l[2] = d12_do[2];
466+
cb_data_out_l[3] = d12_do[3];
467+
468+
cb_data_out_l[4] = d11_do[0];
469+
cb_data_out_l[5] = d11_do[1];
470+
cb_data_out_l[6] = d11_do[2];
471+
cb_data_out_l[7] = d11_do[3];
472+
473+
cb_data_out_h[1] = d2_db[0];
474+
cb_data_out_h[2] = d2_db[1];
475+
cb_data_out_h[0] = d2_db[2];
476+
cb_data_out_h[3] = d2_db[3];
477+
478+
cb_data_out_h[4] = d1_db[0];
479+
cb_data_out_h[6] = d1_db[1];
480+
cb_data_out_h[5] = d1_db[2];
481+
cb_data_out_h[7] = d1_db[3];
482+
483+
if (m_w == 1'b0)
484+
cb_data[15:8] = cb_data_out_h[7:0];
485+
//cb_data[15:8] = m_w == 1'b0 ? cb_data_out_h[7:0] : cb_data[15:8];
486+
if (d_sel == 1'b0 & q_r == 1'b1)
487+
cb_data[7:0] = cb_data_out_l[7:0];
488+
//cb_data[7:0] = d_sel == 1'b0 & q_r == 1'b1 ? cb_data_out_l[7:0] : cb_data[7:0];
489+
end
448490

449491
endmodule

0 commit comments

Comments
 (0)