Skip to content

Commit 593ae1e

Browse files
add: register that contains clk frq
register located at0xFF000000 + 0
1 parent a6b62f8 commit 593ae1e

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-7
lines changed

tang20k/scr1/ip/ahb_slave_mux/ahb_slave_mux.sv

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module ahb_slave_mux
77
input [1:0] htrans,
88
input [31:0] rdata_0,
99
input [31:0] rdata_1,
10+
input [31:0] rdata_2,
1011
input [SLAVE_DEVISES_CNT-1:0] resp,
1112
input [SLAVE_DEVISES_CNT-1:0] readyout,
1213
output logic [31:0] hrdata,
@@ -34,6 +35,11 @@ module ahb_slave_mux
3435
hrdata = rdata_1;
3536
hresp = resp[1];
3637
end
38+
else if (local_hsel[2] == 1) begin
39+
hready = readyout[2];
40+
hrdata = rdata_2;
41+
hresp = resp[2];
42+
end
3743
else begin
3844
hready = 1'b1;
3945
hrdata = 32'b0;

tang20k/scr1/scr1_arch_custom.svh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
`define SCR1_PTFM_SOC_ID 32'h21042600
1010
`define SCR1_PTFM_BLD_ID 32'h22011202
1111
`define SCR1_PTFM_CORE_CLK_FREQ 32'd27000000
12-
`define SLAVE_DEVISES_CNT 2
12+
`define SLAVE_DEVISES_CNT 3
1313
`define ROM_SIZE 16384
1414

1515
//`define SCR1_TRGT_FPGA_XILINX // Uncomment if target platform is Xilinx FPGAs

tang20k/scr1/tang20k_scr1.sv

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ module tang20k_scr1
6363
logic sys_rst_n;
6464

6565

66-
logic dmem_ready;
67-
logic dmem_resp;
68-
logic dmem_hsel;
66+
logic dmem_ready;
67+
logic dmem_resp;
68+
logic dmem_hsel;
6969
`endif // SCR1_DBG_EN
7070

7171
// --- SCR1 ---------------------------------------------
@@ -124,6 +124,9 @@ module tang20k_scr1
124124
logic [31:0] rtc_counter;
125125
logic tick_2Hz;
126126
logic heartbeat;
127+
128+
logic [31:0] core_frq = FPGA_TANG20K_CORE_CLK_FREQ;
129+
logic ahb_core_frq_sel;
127130

128131
// == == == == == == == == == == == == == == == == == == == == == == == == == == == =
129132
// Resets
@@ -288,6 +291,7 @@ module tang20k_scr1
288291
assign jtag_tck = JTAG_TCK;
289292
assign jtag_tms = JTAG_TMS;
290293
assign jtag_tdi = JTAG_TDI;
294+
291295
assign JTAG_TDO = (jtag_tdo_en == 1'b1) ? jtag_tdo : 1'bZ;;
292296

293297
assign LED2 = jtag_tck;
@@ -302,13 +306,14 @@ module tang20k_scr1
302306
assign LED5 = 1'b1;
303307

304308

309+
assign ahb_core_frq_sel = ahb_dmem_haddr[31:16] == 16'b1111_1111_0000_0000;
305310
assign uart_hsel = ahb_dmem_haddr[31:16] == 16'b1111_1111_0000_0001; //uart
306311
assign dmem_hsel = ahb_dmem_haddr[31:16] == 16'b1111_1111_1111_1111; //rom
307312
assign imem_hsel = ahb_imem_haddr[31:16] == 16'b1111_1111_1111_1111;
308313

309-
assign hsel_ = {dmem_hsel, uart_hsel};
310-
assign hreadyout = {dmem_ready, uart_hready};
311-
assign hresp = {dmem_resp, uart_hresp};
314+
assign hsel_ = {ahb_core_frq_sel, dmem_hsel, uart_hsel};
315+
assign hreadyout = {1'b1, dmem_ready, uart_hready};
316+
assign hresp = {1'b0, dmem_resp, uart_hresp};
312317

313318

314319
ahb_lite_uart16550
@@ -373,6 +378,7 @@ module tang20k_scr1
373378
.hsel_s (hsel_),
374379
.rdata_0 (hrdata_0),
375380
.rdata_1 (hrdata_1),
381+
.rdata_2 (core_frq),
376382
.resp (hresp),
377383
.readyout (hreadyout),
378384

0 commit comments

Comments
 (0)