Drop block data
This commit is contained in:
parent
99f962fc39
commit
1f1029ec07
@ -1,896 +0,0 @@
|
||||
/*------------------------------------------------------------------------------
|
||||
--------------------------------------------------------------------------------
|
||||
Copyright (c) 2016, Loongson Technology Corporation Limited.
|
||||
|
||||
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 Loongson Technology Corporation Limited 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 LOONGSON TECHNOLOGY CORPORATION LIMITED BE LIABLE
|
||||
TO ANY PARTY FOR 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.
|
||||
--------------------------------------------------------------------------------
|
||||
------------------------------------------------------------------------------*/
|
||||
|
||||
module spi_flash_ctrl(
|
||||
input aclk,
|
||||
input aresetn,
|
||||
input [15:0] spi_addr,
|
||||
input power_down_req,
|
||||
output power_down_ack,
|
||||
input fast_startup,
|
||||
|
||||
input [3:0] s_awlen,
|
||||
input [3:0] s_awcache,
|
||||
input [3:0] s_awid,
|
||||
input [31:0] s_awaddr,
|
||||
input [2:0] s_awsize,
|
||||
input [2:0] s_awprot,
|
||||
input [1:0] s_awburst,
|
||||
input [1:0] s_awlock,
|
||||
input s_awvalid,
|
||||
output s_awready,
|
||||
|
||||
input [3:0] s_wid,
|
||||
input [31:0] s_wdata,
|
||||
input [3:0] s_wstrb,
|
||||
input s_wlast,
|
||||
input s_wvalid,
|
||||
output s_wready,
|
||||
|
||||
output [3:0] s_bid,
|
||||
output [1:0] s_bresp,
|
||||
output s_bvalid,
|
||||
input s_bready,
|
||||
|
||||
input [3:0] s_arlen,
|
||||
input [3:0] s_arcache,
|
||||
input [3:0] s_arid,
|
||||
input [31:0] s_araddr,
|
||||
input [2:0] s_arsize,
|
||||
input [2:0] s_arprot,
|
||||
input [1:0] s_arburst,
|
||||
input [1:0] s_arlock,
|
||||
input s_arvalid,
|
||||
output s_arready,
|
||||
|
||||
output [3:0] s_rid,
|
||||
output [31:0] s_rdata,
|
||||
output [1:0] s_rresp,
|
||||
output s_rlast,
|
||||
output s_rvalid,
|
||||
input s_rready,
|
||||
|
||||
output [3:0] csn_o,
|
||||
output [3:0] csn_en,
|
||||
output sck_o,
|
||||
input sdo_i,
|
||||
output sdo_o,
|
||||
output sdo_en,
|
||||
input sdi_i,
|
||||
output sdi_o,
|
||||
output sdi_en,
|
||||
output inta_o
|
||||
);
|
||||
|
||||
wire areset = ~aresetn;
|
||||
|
||||
wire param_memory_en;
|
||||
wire param_burst_en;
|
||||
wire param_fast_read;
|
||||
wire param_dual_io;
|
||||
wire [1:0] param_tCSH;
|
||||
wire param_tFAST;
|
||||
|
||||
reg [9:0] rd_state;
|
||||
reg [9:0] rd_state_nxt;
|
||||
|
||||
parameter S_IDLE = 10'b0000000001;
|
||||
parameter S_IOREAD = 10'b0000000010;
|
||||
parameter S_CSTURN = 10'b0000000100;
|
||||
parameter S_ADDR = 10'b0000001000;
|
||||
parameter S_DATA = 10'b0000010000;
|
||||
parameter S_WAITBUS= 10'b0000100000;
|
||||
parameter S_PDENTER= 10'b0001000000;
|
||||
parameter S_PDEXIT = 10'b0010000000;
|
||||
parameter S_STARTUP= 10'b0100000000;
|
||||
parameter S_PWRDOWN= 10'b1000000000;
|
||||
|
||||
wire s_idle = rd_state[0];
|
||||
wire s_ioread = rd_state[1];
|
||||
wire s_csturn = rd_state[2];
|
||||
wire s_addr = rd_state[3];
|
||||
wire s_data = rd_state[4];
|
||||
wire s_waitbus= rd_state[5];
|
||||
wire s_pdenter= rd_state[6];
|
||||
wire s_pdexit = rd_state[7];
|
||||
wire s_startup= rd_state[8];
|
||||
wire s_pwrdown= rd_state[9];
|
||||
|
||||
wire ns_idle = rd_state_nxt[0];
|
||||
wire ns_ioread = rd_state_nxt[1];
|
||||
wire ns_csturn = rd_state_nxt[2];
|
||||
wire ns_addr = rd_state_nxt[3];
|
||||
wire ns_data = rd_state_nxt[4];
|
||||
wire ns_waitbus= rd_state_nxt[5];
|
||||
wire ns_pdenter= rd_state_nxt[6];
|
||||
wire ns_pdexit = rd_state_nxt[7];
|
||||
wire ns_startup= rd_state_nxt[8];
|
||||
wire ns_pwrdown= rd_state_nxt[9];
|
||||
|
||||
reg pdreq_r;
|
||||
|
||||
reg [15:0] cs_timer;
|
||||
reg cs;
|
||||
reg [23:0] nxt_addr;
|
||||
|
||||
wire write_valid;
|
||||
wire reg_acc = s_ioread | write_valid;
|
||||
wire reg_ack;
|
||||
wire [7:0] reg_dat_i, reg_dat_o;
|
||||
wire [7:0] param_o;
|
||||
|
||||
reg [31:0] shift_reg;
|
||||
reg [ 1:0] sample;
|
||||
wire [31:0] shift_reg_nxt;
|
||||
wire sr_shift_inst;
|
||||
wire sr_shift_one;
|
||||
wire sr_shift_two;
|
||||
reg sr_shift_inst_r;
|
||||
reg sr_shift_two_r;
|
||||
wire sample_en;
|
||||
wire shift_en;
|
||||
wire dual_out;
|
||||
wire dual_in;
|
||||
wire [1:0] serial_out;
|
||||
wire cyc_end;
|
||||
|
||||
|
||||
reg [2:0] bit_cnt;
|
||||
wire spi_pause;
|
||||
wire spibus_busy;
|
||||
|
||||
reg [5:0] adbit_cnt;
|
||||
reg spi_run;
|
||||
reg sck;
|
||||
|
||||
reg buf_busy;
|
||||
reg [31:0] buf_addr;
|
||||
reg [ 3:0] buf_len;
|
||||
reg [ 2:0] buf_size;
|
||||
reg [ 3:0] buf_id;
|
||||
reg buf_write;
|
||||
reg buf_wrap;
|
||||
|
||||
assign s_arready = s_idle & ~pdreq_r & ~buf_busy & ~s_awvalid;
|
||||
assign s_awready = s_idle & ~pdreq_r & ~buf_busy;
|
||||
|
||||
reg buf_busy_d;
|
||||
wire new_axireq = ~buf_busy_d & buf_busy;
|
||||
wire io_hit =(buf_addr[31:4] == {spi_addr, 12'b0}) &
|
||||
(buf_len == 4'b0);
|
||||
|
||||
wire [63:0] buf_addr_t = (buf_addr[31:20]==12'h1fc)?
|
||||
{12'h0, buf_addr[19:0]}:
|
||||
{ 8'h0, buf_addr[23:0]};
|
||||
|
||||
wire burst_cont = param_burst_en & cs &
|
||||
(buf_addr_t[23:0] == nxt_addr[23:0]);
|
||||
|
||||
wire burst_switch = param_burst_en & cs &
|
||||
(buf_addr_t[23:0] != nxt_addr[23:0]);
|
||||
|
||||
reg [7:0] tot_bytes;
|
||||
wire byte_ready;
|
||||
|
||||
always @(posedge aclk) begin
|
||||
if (areset) begin
|
||||
buf_busy <= 1'b0;
|
||||
buf_write <= 1'b0;
|
||||
tot_bytes <= 8'b0;
|
||||
end else begin
|
||||
if ((s_arvalid|s_awvalid)&~buf_busy&s_idle&~pdreq_r) begin
|
||||
buf_busy <= 1'b1;
|
||||
buf_addr <= s_awvalid ? s_awaddr : s_araddr;
|
||||
buf_size <= s_awvalid ? s_awsize : s_arsize;
|
||||
buf_len <= s_awvalid ? s_awlen : s_arlen;
|
||||
buf_id <= s_awvalid ? s_awid : s_arid;
|
||||
buf_write<= s_awvalid;
|
||||
buf_wrap <= s_arvalid & (s_arburst==2'b10) &
|
||||
(|s_araddr[4:2]) & (|s_arlen);
|
||||
tot_bytes<= {8{s_arvalid&~s_awvalid}}&
|
||||
(({4'b0,s_arlen} << s_arsize)|
|
||||
((8'b1<<s_arsize)-8'b1));
|
||||
end else begin
|
||||
if (s_bvalid & s_bready | s_rvalid & s_rready & s_rlast)
|
||||
buf_busy <= 1'b0;
|
||||
if (s_rvalid & s_rready)
|
||||
buf_len <= buf_len - 4'b1;
|
||||
if (s_wvalid & s_wready & s_wlast)
|
||||
buf_write <= 1'b0;
|
||||
if (byte_ready & ~s_rvalid) begin
|
||||
tot_bytes <= tot_bytes - 8'b1;
|
||||
end
|
||||
end
|
||||
end
|
||||
buf_busy_d <= buf_busy;
|
||||
end
|
||||
|
||||
reg second_write;
|
||||
always @(posedge aclk) begin
|
||||
if (areset) second_write <= 1'b0;
|
||||
else second_write <= (s_wvalid & s_wready & io_hit & (buf_size==3'b1) & (buf_addr[2:0]==3'b10));
|
||||
end
|
||||
|
||||
assign s_wready = buf_busy & buf_write & s_idle;
|
||||
assign write_valid = s_wvalid & s_wready & io_hit &
|
||||
((buf_size==3'b0) | (buf_size==3'b1 && buf_addr[2:0]==3'b10)) |
|
||||
second_write;
|
||||
|
||||
reg bvalid;
|
||||
always @(posedge aclk) begin
|
||||
if (areset ) bvalid <= 1'b0;
|
||||
else if (s_bvalid & s_bready ) bvalid <= 1'b0;
|
||||
else if (s_wvalid & s_wready & s_wlast) bvalid <= 1'b1;
|
||||
end
|
||||
assign s_bvalid = bvalid;
|
||||
assign s_bid = buf_id;
|
||||
assign s_bresp = 2'b00;
|
||||
|
||||
|
||||
reg rvalid;
|
||||
reg [7:0] rdata[3:0];
|
||||
always @(posedge aclk) begin
|
||||
if (areset)
|
||||
rvalid <= 1'b0;
|
||||
else if (s_rvalid & s_rready) begin
|
||||
rvalid <= 1'b0;
|
||||
end else if (new_axireq & ~buf_write & io_hit & s_idle) begin
|
||||
rvalid <= 1'b1;
|
||||
rdata[buf_addr[1:0]] <= reg_dat_o;
|
||||
end else if (s_data & byte_ready & ~rvalid) begin
|
||||
rvalid <= (&nxt_addr[1:0]) | (~|tot_bytes);
|
||||
rdata[nxt_addr[1:0]] <= shift_reg_nxt[7:0];
|
||||
end
|
||||
end
|
||||
assign s_rvalid = rvalid;
|
||||
assign s_rdata = {rdata[ 3], rdata[ 2], rdata[ 1], rdata[ 0]};
|
||||
assign s_rlast = ~|buf_len;
|
||||
assign s_rid = buf_id;
|
||||
assign s_rresp = 2'b00;
|
||||
|
||||
wire [1:0] sample_in = {2{s_data}}&(param_tFAST ? {sdi_i, sdo_i} :
|
||||
sample[1:0] );
|
||||
|
||||
assign shift_reg_nxt = sr_shift_inst_r?{shift_reg[30:0], 1'b0 }:
|
||||
sr_shift_two_r ?{shift_reg[29:0], sample_in[1:0]}:
|
||||
{shift_reg[30:0], sample_in[1] };
|
||||
|
||||
always @(posedge aclk) begin
|
||||
if (s_pwrdown & ~ns_pwrdown) begin
|
||||
shift_reg[31:24] <= 8'hab;
|
||||
end else if (~s_pdenter & ns_pdenter) begin
|
||||
shift_reg[31:24] <= 8'hb9;
|
||||
end else if (~s_addr & ns_addr) begin
|
||||
shift_reg[31:24] <= param_dual_io ? 8'hbb:
|
||||
param_fast_read ? 8'h0b:
|
||||
8'h03;
|
||||
shift_reg[23: 0] <= nxt_addr[23:0];
|
||||
end else if (shift_en) begin
|
||||
shift_reg[31: 0] <= shift_reg_nxt;
|
||||
end
|
||||
if (sample_en) sample[1:0] <= {sdi_i, sdo_i};
|
||||
end
|
||||
assign serial_out = param_dual_io & dual_out ? shift_reg[31:30] :
|
||||
{1'b0, shift_reg[31]};
|
||||
|
||||
wire [3:0] espr;
|
||||
reg [11:0] clkcnt;
|
||||
wire clkena = ~|clkcnt & ~spi_pause;
|
||||
reg [3:0] cswcnt;
|
||||
always @(posedge aclk)
|
||||
if (areset)
|
||||
clkcnt <= 12'h0;
|
||||
else if (~spi_pause) begin
|
||||
if ((|clkcnt) & (spi_run|s_csturn))
|
||||
clkcnt <= clkcnt - 11'h1;
|
||||
else
|
||||
case (espr) // synopsys full_case parallel_case
|
||||
4'b0000: clkcnt <= 12'h0;
|
||||
4'b0001: clkcnt <= 12'h1;
|
||||
4'b0010: clkcnt <= 12'h7;
|
||||
4'b0011: clkcnt <= 12'hf;
|
||||
4'b0100: clkcnt <= 12'h3;
|
||||
4'b0101: clkcnt <= 12'h1f;
|
||||
4'b0110: clkcnt <= 12'h3f;
|
||||
4'b0111: clkcnt <= 12'h7f;
|
||||
4'b1000: clkcnt <= 12'hff;
|
||||
4'b1001: clkcnt <= 12'h1ff;
|
||||
4'b1010: clkcnt <= 12'h3ff;
|
||||
4'b1011: clkcnt <= 12'h7ff;
|
||||
default: clkcnt <= 12'h7ff;
|
||||
endcase
|
||||
end
|
||||
|
||||
always @(posedge aclk)
|
||||
if (areset|~s_csturn) cswcnt <= 4'b0;
|
||||
else if (clkena) cswcnt <= cswcnt + 4'b1;
|
||||
|
||||
wire [3:0] cswcnt_w = cswcnt | (4'b1110 << param_tCSH);
|
||||
|
||||
always @(posedge aclk) begin
|
||||
if (areset ) spi_run <= 1'b0;
|
||||
else if (ns_addr|ns_data) spi_run <= 1'b1;
|
||||
else if (ns_idle|ns_csturn)spi_run <= 1'b0;
|
||||
else if (ns_pdexit |ns_pdenter)spi_run <= 1'b1;
|
||||
else if (ns_startup|ns_pwrdown)spi_run <= 1'b0;
|
||||
|
||||
if (s_idle |s_csturn) adbit_cnt <= 6'b0;
|
||||
else if (s_addr & cyc_end) adbit_cnt <= adbit_cnt + 6'b1;
|
||||
|
||||
if (areset ) sck <= 1'b0;
|
||||
else if (spi_run & clkena) sck <= ~sck;
|
||||
|
||||
if (areset | s_idle ) bit_cnt <= 3'h0;
|
||||
else if (s_data & cyc_end) bit_cnt <= bit_cnt + 3'b1;
|
||||
else if (s_pdenter&cyc_end)bit_cnt <= bit_cnt + 3'b1;
|
||||
else if (s_pdexit &cyc_end)bit_cnt <= bit_cnt + 3'b1;
|
||||
|
||||
end
|
||||
|
||||
assign byte_ready = s_data & cyc_end & (&({param_dual_io,2'b00}|bit_cnt[2:0]));
|
||||
|
||||
always @(posedge aclk) begin
|
||||
if (areset | ~param_memory_en) begin
|
||||
nxt_addr <= 24'b0;
|
||||
cs_timer <= 16'b0;
|
||||
cs <= 1'b0;
|
||||
end else begin
|
||||
nxt_addr <= new_axireq & s_idle ? buf_addr_t :
|
||||
byte_ready & ~spi_pause? (buf_wrap&(&nxt_addr[4:0]) & ~(tot_bytes == 8'b0)?
|
||||
nxt_addr - 24'h1f :
|
||||
nxt_addr + 24'b1) :
|
||||
nxt_addr;
|
||||
cs_timer <= buf_busy|(~cs&~s_startup)|s_pdexit ? 16'b0 :
|
||||
~&cs_timer ? cs_timer+16'b1 :
|
||||
cs_timer ;
|
||||
cs <= ns_addr ? 1'b1 :
|
||||
ns_csturn | (~buf_busy & (&cs_timer)) ? 1'b0 :
|
||||
~param_burst_en & ns_idle ? 1'b0 :
|
||||
write_valid & (buf_addr[3:0]==4'h2) ? 1'b0 :
|
||||
ns_pdenter | ns_pdexit ? 1'b1 :
|
||||
ns_pwrdown | ns_startup ? 1'b0 :
|
||||
cs;
|
||||
end
|
||||
end
|
||||
|
||||
assign cyc_end = spi_run & sck & clkena;
|
||||
|
||||
assign shift_en = spi_run & sck & clkena;
|
||||
assign sample_en = spi_run &~sck & clkena & s_data;
|
||||
|
||||
assign spi_pause = rvalid;
|
||||
|
||||
assign sr_shift_inst = s_addr & (adbit_cnt < 6'd8);
|
||||
assign sr_shift_two =(s_addr & (adbit_cnt >=6'd8) | s_data) & param_dual_io;
|
||||
always @(posedge aclk) begin
|
||||
sr_shift_inst_r <= areset ? 1'b0 :
|
||||
cyc_end|(~s_addr&ns_addr) ? ns_addr & (adbit_cnt < 6'd7) :
|
||||
sr_shift_inst_r;
|
||||
sr_shift_two_r <= areset ? 1'b0 :
|
||||
cyc_end|(~s_data&ns_data) ? (s_addr & (adbit_cnt >=6'd7) | ns_data) & param_dual_io :
|
||||
sr_shift_two_r;
|
||||
end
|
||||
|
||||
assign sr_shift_one = 1'bz;
|
||||
wire addr_done;
|
||||
assign addr_done = param_dual_io ? adbit_cnt == 6'd23 :
|
||||
param_fast_read ? adbit_cnt == 6'd39 :
|
||||
adbit_cnt == 6'd31 ;
|
||||
assign dual_out = param_dual_io &
|
||||
(adbit_cnt >= 6'd8 && adbit_cnt < 6'd22);
|
||||
reg dual_in_r;
|
||||
assign dual_in = param_dual_io &
|
||||
(adbit_cnt >= 6'd22 | s_data | dual_in_r);
|
||||
always @(posedge aclk) begin
|
||||
dual_in_r <= areset ? 1'b0 :
|
||||
s_csturn&cswcnt[0]? 1'b0 :
|
||||
~cs ? 1'b0 :
|
||||
dual_in ? 1'b1 : dual_in_r;
|
||||
end
|
||||
|
||||
|
||||
always @(posedge aclk) begin
|
||||
pdreq_r <= power_down_req;
|
||||
end
|
||||
wire go_power_down = pdreq_r & ~buf_busy;
|
||||
assign power_down_ack = s_pwrdown | s_pdexit | s_startup;
|
||||
|
||||
always @(posedge aclk) begin
|
||||
rd_state <= areset ? S_PWRDOWN : rd_state_nxt;
|
||||
end
|
||||
|
||||
always @(*) begin
|
||||
rd_state_nxt = rd_state;
|
||||
case (rd_state) // synopsys parallel_case
|
||||
S_IDLE :if (new_axireq & ~buf_write) begin
|
||||
rd_state_nxt = io_hit ? S_IOREAD:
|
||||
spibus_busy ? S_WAITBUS:
|
||||
burst_cont ? S_DATA :
|
||||
S_CSTURN;
|
||||
end else if (go_power_down) begin
|
||||
rd_state_nxt = cs ? S_CSTURN :
|
||||
S_PDENTER;
|
||||
end
|
||||
S_IOREAD: rd_state_nxt = S_IDLE;
|
||||
S_CSTURN: rd_state_nxt = clkena & (&cswcnt_w)? (go_power_down? S_PDENTER:S_ADDR):
|
||||
S_CSTURN;
|
||||
S_ADDR : rd_state_nxt = clkena & sck &
|
||||
addr_done ? S_DATA : S_ADDR;
|
||||
S_DATA : rd_state_nxt = byte_ready & ~spi_pause & ~|tot_bytes ? S_IDLE:
|
||||
byte_ready & ~spi_pause & buf_wrap
|
||||
& (&nxt_addr[4:0])? S_CSTURN:
|
||||
byte_ready & ~spi_pause & ~param_burst_en ? S_CSTURN:
|
||||
S_DATA;
|
||||
S_WAITBUS:rd_state_nxt = spibus_busy ? S_WAITBUS : S_ADDR;
|
||||
|
||||
S_PWRDOWN:rd_state_nxt = go_power_down ? S_PWRDOWN : S_PDEXIT;
|
||||
S_PDEXIT :rd_state_nxt = cyc_end & (&bit_cnt[2:0]) ? S_STARTUP : S_PDEXIT;
|
||||
S_PDENTER:rd_state_nxt = cyc_end & (&bit_cnt[2:0]) ? S_PWRDOWN : S_PDENTER;
|
||||
S_STARTUP:rd_state_nxt = &(cs_timer[10:0]|{{5{fast_startup}}, 6'b0}) ? S_IDLE :
|
||||
S_STARTUP;
|
||||
endcase
|
||||
end
|
||||
|
||||
|
||||
wire ss_sck, ss_mosi, ss_miso;
|
||||
wire [7:0] param, softcs, param2;
|
||||
wire sspi_write = buf_write | second_write;
|
||||
|
||||
simple_spi_top simple_spi(
|
||||
.clk_i (aclk ),
|
||||
.rst_i (aresetn ),
|
||||
.cyc_i (buf_busy ),
|
||||
.stb_i (reg_acc ),
|
||||
.adr_i (buf_addr[3:0] ),
|
||||
.we_i (sspi_write ),
|
||||
.dat_i (reg_dat_i ),
|
||||
.dat_o (reg_dat_o ),
|
||||
.ack_o (reg_ack ),
|
||||
.inta_o (inta_o ),
|
||||
|
||||
.sck_o (ss_sck ),
|
||||
.mosi_o (ss_mosi ),
|
||||
.miso_i (ss_miso ),
|
||||
|
||||
.param (param ),
|
||||
.param2 (param2 ),
|
||||
.softcs (softcs ),
|
||||
.busy (spibus_busy )
|
||||
);
|
||||
assign ss_miso = sdi_i;
|
||||
|
||||
assign reg_dat_i = second_write ? s_wdata[ 31: 24] :
|
||||
buf_addr[1:0]==2'h0 ? s_wdata[ 7: 0] :
|
||||
buf_addr[1:0]==2'h1 ? s_wdata[ 15: 8] :
|
||||
buf_addr[1:0]==2'h2 ? s_wdata[ 23: 16] :
|
||||
s_wdata[ 31: 24] ;
|
||||
|
||||
assign param_memory_en = param[0];
|
||||
assign param_burst_en = param[1];
|
||||
assign param_fast_read = param[2];
|
||||
assign param_dual_io = param[3];
|
||||
assign espr = param[7:4];
|
||||
|
||||
assign param_tCSH = param2[1:0];
|
||||
assign param_tFAST = param2[2];
|
||||
assign param_scs = param2[3];
|
||||
|
||||
assign csn_en[0] = param_memory_en? 1'b0: ~softcs[0];
|
||||
assign csn_o [0] = param_memory_en? ~cs : softcs[4];
|
||||
|
||||
assign csn_en[3:1] =~softcs[3:1];
|
||||
assign csn_o [3:1] = softcs[7:5]|{3{cs|(~spibus_busy & param_scs)}};
|
||||
|
||||
assign sdi_en = ~spibus_busy¶m_memory_en? ~dual_out : 1'b1;
|
||||
assign sdi_o = ~spibus_busy¶m_memory_en? serial_out[1] : 1'b0;
|
||||
|
||||
assign sdo_en = ~spibus_busy¶m_memory_en? dual_in : 1'b0;
|
||||
assign sdo_o = ~spibus_busy¶m_memory_en? serial_out[0] | s_data
|
||||
: ss_mosi;
|
||||
|
||||
assign sck_o = ~spibus_busy¶m_memory_en? sck : ss_sck;
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
module simple_spi_top(
|
||||
input wire clk_i,
|
||||
input wire rst_i,
|
||||
input wire cyc_i,
|
||||
input wire stb_i,
|
||||
input wire [3:0] adr_i,
|
||||
input wire we_i,
|
||||
input wire [7:0] dat_i,
|
||||
output reg [7:0] dat_o,
|
||||
output reg ack_o,
|
||||
output reg inta_o,
|
||||
|
||||
output reg sck_o,
|
||||
output wire mosi_o,
|
||||
input wire miso_i,
|
||||
|
||||
output reg [7:0] param,
|
||||
output reg [7:0] param2,
|
||||
output reg [7:0] softcs,
|
||||
output reg busy
|
||||
);
|
||||
|
||||
reg [7:0] spcr;
|
||||
wire [7:0] spsr;
|
||||
reg [7:0] sper;
|
||||
reg [7:0] treg, rreg;
|
||||
|
||||
wire [7:0] rfdout;
|
||||
reg wfre, rfwe;
|
||||
wire rfre, rffull, rfempty;
|
||||
wire [7:0] wfdout;
|
||||
wire wfwe, wffull, wfempty;
|
||||
|
||||
wire tirq;
|
||||
wire wfov;
|
||||
reg [1:0] state;
|
||||
reg [2:0] bcnt;
|
||||
|
||||
wire wb_acc = cyc_i & stb_i;
|
||||
wire wb_wr = wb_acc & we_i;
|
||||
|
||||
always @(posedge clk_i)
|
||||
if (~rst_i)
|
||||
begin
|
||||
spcr <= 8'h12;
|
||||
sper <= 8'h00;
|
||||
`ifdef FAST_SIMU
|
||||
param<= 8'h1;
|
||||
param2<=8'h07;
|
||||
`else
|
||||
param<= 8'h1;
|
||||
param2<=8'h03;
|
||||
`endif
|
||||
softcs<=8'hf0;
|
||||
end
|
||||
else if (wb_wr)
|
||||
begin
|
||||
if (adr_i == 4'b00)
|
||||
spcr <= dat_i | 8'h10;
|
||||
|
||||
if (adr_i == 4'b11)
|
||||
sper <= dat_i;
|
||||
|
||||
if (adr_i == 4'b0100)
|
||||
param <= dat_i;
|
||||
if (adr_i == 4'b0101)
|
||||
softcs<= dat_i;
|
||||
if (adr_i == 4'b0110)
|
||||
param2 <= dat_i;
|
||||
end
|
||||
|
||||
assign wfwe = wb_acc & (adr_i == 4'b10) & ack_o & we_i;
|
||||
assign wfov = wfwe & wffull;
|
||||
|
||||
always @(*)
|
||||
case(adr_i) // synopsys full_case parallel_case
|
||||
4'b0000: dat_o = spcr;
|
||||
4'b0001: dat_o = spsr;
|
||||
4'b0010: dat_o = rfdout;
|
||||
4'b0011: dat_o = sper;
|
||||
4'b0100: dat_o = param;
|
||||
4'b0101: dat_o = softcs;
|
||||
4'b0110: dat_o = param2;
|
||||
default dat_o = 8'h0;
|
||||
endcase
|
||||
|
||||
assign rfre = wb_acc & (adr_i == 2'b10) & ack_o & ~we_i;
|
||||
|
||||
always @(posedge clk_i)
|
||||
ack_o <= 1'b1;
|
||||
|
||||
wire spie = spcr[7];
|
||||
wire spe = spcr[6];
|
||||
wire dwom = spcr[5];
|
||||
wire mstr = spcr[4];
|
||||
wire cpol = spcr[3];
|
||||
wire cpha = spcr[2];
|
||||
wire [1:0] spr = spcr[1:0];
|
||||
|
||||
wire [1:0] icnt = sper[7:6];
|
||||
wire [1:0] spre = sper[1:0];
|
||||
wire smh_spi= sper[2];
|
||||
|
||||
wire [3:0] espr = {spre, spr};
|
||||
|
||||
wire wr_spsr = wb_wr & (adr_i == 2'b01);
|
||||
|
||||
reg spif;
|
||||
always @(posedge clk_i)
|
||||
if (~spe)
|
||||
spif <= 1'b0;
|
||||
else
|
||||
spif <= (tirq | spif) & ~(wr_spsr & dat_i[7]);
|
||||
|
||||
reg wcol;
|
||||
always @(posedge clk_i)
|
||||
if (~spe)
|
||||
wcol <= 1'b0;
|
||||
else
|
||||
wcol <= (wfov | wcol) & ~(wr_spsr & dat_i[6]);
|
||||
|
||||
assign spsr[7] = spif;
|
||||
assign spsr[6] = wcol;
|
||||
assign spsr[5:4] = 2'b00;
|
||||
assign spsr[3] = wffull;
|
||||
assign spsr[2] = wfempty;
|
||||
assign spsr[1] = rffull;
|
||||
assign spsr[0] = rfempty;
|
||||
|
||||
|
||||
always @(posedge clk_i)
|
||||
inta_o <= spif & spie;
|
||||
|
||||
spi_fifo4 #(8)
|
||||
rfifo(
|
||||
.clk ( clk_i ),
|
||||
.rst ( rst_i ),
|
||||
.clr ( ~spe ),
|
||||
.din ( treg ),
|
||||
.we ( rfwe ),
|
||||
.dout ( rfdout ),
|
||||
.re ( rfre ),
|
||||
.full ( rffull ),
|
||||
.empty ( rfempty )
|
||||
),
|
||||
wfifo(
|
||||
.clk ( clk_i ),
|
||||
.rst ( rst_i ),
|
||||
.clr ( ~spe ),
|
||||
.din ( dat_i ),
|
||||
.we ( wfwe ),
|
||||
.dout ( wfdout ),
|
||||
.re ( wfre ),
|
||||
.full ( wffull ),
|
||||
.empty ( wfempty )
|
||||
);
|
||||
|
||||
reg [11:0] clkcnt;
|
||||
always @(posedge clk_i)
|
||||
if(spe & (|clkcnt & |state))
|
||||
clkcnt <= clkcnt - 11'h1;
|
||||
else
|
||||
case (espr) // synopsys full_case parallel_case
|
||||
4'b0000: clkcnt <= 12'h0;
|
||||
4'b0001: clkcnt <= 12'h1;
|
||||
4'b0010: clkcnt <= 12'h7;
|
||||
4'b0011: clkcnt <= 12'hf;
|
||||
4'b0100: clkcnt <= 12'h3;
|
||||
4'b0101: clkcnt <= 12'h1f;
|
||||
4'b0110: clkcnt <= 12'h3f;
|
||||
4'b0111: clkcnt <= 12'h7f;
|
||||
4'b1000: clkcnt <= 12'hff;
|
||||
4'b1001: clkcnt <= 12'h1ff;
|
||||
4'b1010: clkcnt <= 12'h3ff;
|
||||
4'b1011: clkcnt <= 12'h7ff;
|
||||
default:;
|
||||
endcase
|
||||
|
||||
wire ena = ~|clkcnt;
|
||||
reg sample;
|
||||
always @(posedge clk_i)
|
||||
if (~spe)
|
||||
begin
|
||||
state <= 2'b00;
|
||||
bcnt <= 3'h0;
|
||||
treg <= 8'h00;
|
||||
wfre <= 1'b0;
|
||||
rfwe <= 1'b0;
|
||||
sck_o <= 1'b0;
|
||||
end
|
||||
else if (smh_spi)
|
||||
begin
|
||||
wfre <= 1'b0;
|
||||
rfwe <= 1'b0;
|
||||
|
||||
case (state) //synopsys full_case parallel_case
|
||||
2'b00:
|
||||
begin
|
||||
bcnt <= 3'h7;
|
||||
treg <= wfdout;
|
||||
sck_o <= cpol;
|
||||
|
||||
if (~wfempty) begin
|
||||
wfre <= 1'b1;
|
||||
state <= 2'b01;
|
||||
end
|
||||
end
|
||||
|
||||
2'b01:
|
||||
if (ena) begin
|
||||
sck_o <= ~sck_o;
|
||||
state <= 2'b10;
|
||||
if (cpha==0) sample <= miso_i;
|
||||
end
|
||||
|
||||
2'b10:
|
||||
if (ena) begin
|
||||
sck_o <= ~sck_o;
|
||||
state <= 2'b11;
|
||||
if (cpha==0) begin
|
||||
treg <= {treg[6:0], sample};
|
||||
end else begin
|
||||
sample <= miso_i;
|
||||
end
|
||||
end
|
||||
|
||||
2'b11:
|
||||
if (ena) begin
|
||||
bcnt <= bcnt -3'h1;
|
||||
if (cpha==0) begin
|
||||
sample <= miso_i;
|
||||
end else begin
|
||||
treg <= {treg[6:0], sample};
|
||||
end
|
||||
|
||||
if (~|bcnt) begin
|
||||
state <= 2'b00;
|
||||
sck_o <= cpol;
|
||||
rfwe <= 1'b1;
|
||||
end else begin
|
||||
state <= 2'b10;
|
||||
sck_o <= ~sck_o;
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
endcase
|
||||
end
|
||||
else
|
||||
begin
|
||||
wfre <= 1'b0;
|
||||
rfwe <= 1'b0;
|
||||
|
||||
case (state) //synopsys full_case parallel_case
|
||||
2'b00:
|
||||
begin
|
||||
bcnt <= 3'h7;
|
||||
treg <= wfdout;
|
||||
sck_o <= cpol;
|
||||
|
||||
if (~wfempty) begin
|
||||
wfre <= 1'b1;
|
||||
state <= 2'b01;
|
||||
if (cpha) sck_o <= ~sck_o;
|
||||
end
|
||||
end
|
||||
|
||||
2'b01:
|
||||
if (ena) begin
|
||||
sck_o <= ~sck_o;
|
||||
state <= 2'b11;
|
||||
end
|
||||
|
||||
2'b11:
|
||||
if (ena) begin
|
||||
treg <= {treg[6:0], miso_i};
|
||||
bcnt <= bcnt -3'h1;
|
||||
|
||||
if (~|bcnt) begin
|
||||
state <= 2'b00;
|
||||
sck_o <= cpol;
|
||||
rfwe <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
state <= 2'b01;
|
||||
sck_o <= ~sck_o;
|
||||
end
|
||||
end
|
||||
|
||||
2'b10: state <= 2'b00;
|
||||
default: state <=2'b00;
|
||||
endcase
|
||||
end
|
||||
|
||||
assign mosi_o = treg[7];
|
||||
|
||||
reg [1:0] tcnt;
|
||||
always @(posedge clk_i)
|
||||
if (~spe)
|
||||
tcnt <= icnt;
|
||||
else if (rfwe) begin
|
||||
if (|tcnt)
|
||||
tcnt <= tcnt - 2'h1;
|
||||
else
|
||||
tcnt <= icnt;
|
||||
end
|
||||
|
||||
assign tirq = ~|tcnt & rfwe;
|
||||
|
||||
always @(posedge clk_i)
|
||||
busy <= ~wfempty | (|state);
|
||||
endmodule
|
||||
|
||||
module spi_fifo4(clk, rst, clr, din, we, dout, re, full, empty);
|
||||
|
||||
parameter dw = 8;
|
||||
|
||||
input clk, rst;
|
||||
input clr;
|
||||
input [dw:1] din;
|
||||
input we;
|
||||
output [dw:1] dout;
|
||||
input re;
|
||||
output full, empty;
|
||||
|
||||
reg [dw:1] mem[0:3];
|
||||
reg [1:0] wp;
|
||||
reg [1:0] rp;
|
||||
wire [1:0] wp_p1;
|
||||
wire [1:0] wp_p2;
|
||||
wire [1:0] rp_p1;
|
||||
wire full, empty;
|
||||
reg gb;
|
||||
|
||||
always @(posedge clk)
|
||||
if(!rst) wp <= 2'h0;
|
||||
else
|
||||
if(clr) wp <= 2'h0;
|
||||
else
|
||||
if(we) wp <= wp_p1;
|
||||
|
||||
assign wp_p1 = wp + 2'h1;
|
||||
assign wp_p2 = wp + 2'h2;
|
||||
|
||||
always @(posedge clk)
|
||||
if(!rst) rp <= 2'h0;
|
||||
else
|
||||
if(clr) rp <= 2'h0;
|
||||
else
|
||||
if(re) rp <= rp_p1;
|
||||
|
||||
assign rp_p1 = rp + 2'h1;
|
||||
|
||||
assign dout = mem[ rp ];
|
||||
|
||||
always @(posedge clk)
|
||||
if(we) mem[ wp ] <= din;
|
||||
|
||||
assign empty = (wp == rp) & !gb;
|
||||
assign full = (wp == rp) & gb;
|
||||
|
||||
always @(posedge clk)
|
||||
if(!rst) gb <= 1'b0;
|
||||
else
|
||||
if(clr) gb <= 1'b0;
|
||||
else
|
||||
if((wp_p1 == rp) & we) gb <= 1'b1;
|
||||
else
|
||||
if(re) gb <= 1'b0;
|
||||
|
||||
endmodule
|
@ -1,46 +0,0 @@
|
||||
NET "ddr3_addr[0]" LOC = "E18" | ;
|
||||
NET "ddr3_addr[10]" LOC = "F20" | ;
|
||||
NET "ddr3_addr[11]" LOC = "H16" | ;
|
||||
NET "ddr3_addr[12]" LOC = "G16" | ;
|
||||
NET "ddr3_addr[1]" LOC = "H14" | ;
|
||||
NET "ddr3_addr[2]" LOC = "H15" | ;
|
||||
NET "ddr3_addr[3]" LOC = "G17" | ;
|
||||
NET "ddr3_addr[4]" LOC = "F17" | ;
|
||||
NET "ddr3_addr[5]" LOC = "F18" | ;
|
||||
NET "ddr3_addr[6]" LOC = "F19" | ;
|
||||
NET "ddr3_addr[7]" LOC = "G15" | ;
|
||||
NET "ddr3_addr[8]" LOC = "F15" | ;
|
||||
NET "ddr3_addr[9]" LOC = "G19" | ;
|
||||
NET "ddr3_ba[0]" LOC = "C17" | ;
|
||||
NET "ddr3_ba[1]" LOC = "B17" | ;
|
||||
NET "ddr3_ba[2]" LOC = "E16" | ;
|
||||
NET "ddr3_cas_n" LOC = "A18" | ;
|
||||
NET "ddr3_ck_n[0]" LOC = "C18" | ;
|
||||
NET "ddr3_ck_p[0]" LOC = "D18" | ;
|
||||
NET "ddr3_cke[0]" LOC = "D16" | ;
|
||||
NET "ddr3_dm[0]" LOC = "E21" | ;
|
||||
NET "ddr3_dm[1]" LOC = "D23" | ;
|
||||
NET "ddr3_dq[0]" LOC = "E20" | ;
|
||||
NET "ddr3_dq[10]" LOC = "C23" | ;
|
||||
NET "ddr3_dq[11]" LOC = "B26" | ;
|
||||
NET "ddr3_dq[12]" LOC = "A25" | ;
|
||||
NET "ddr3_dq[13]" LOC = "C26" | ;
|
||||
NET "ddr3_dq[14]" LOC = "C24" | ;
|
||||
NET "ddr3_dq[15]" LOC = "B25" | ;
|
||||
NET "ddr3_dq[1]" LOC = "C21" | ;
|
||||
NET "ddr3_dq[2]" LOC = "D19" | ;
|
||||
NET "ddr3_dq[3]" LOC = "A22" | ;
|
||||
NET "ddr3_dq[4]" LOC = "D20" | ;
|
||||
NET "ddr3_dq[5]" LOC = "B21" | ;
|
||||
NET "ddr3_dq[6]" LOC = "C19" | ;
|
||||
NET "ddr3_dq[7]" LOC = "B22" | ;
|
||||
NET "ddr3_dq[8]" LOC = "C22" | ;
|
||||
NET "ddr3_dq[9]" LOC = "B24" | ;
|
||||
NET "ddr3_dqs_n[0]" LOC = "A20" | ;
|
||||
NET "ddr3_dqs_n[1]" LOC = "A24" | ;
|
||||
NET "ddr3_dqs_p[0]" LOC = "B20" | ;
|
||||
NET "ddr3_dqs_p[1]" LOC = "A23" | ;
|
||||
NET "ddr3_odt[0]" LOC = "E17" | ;
|
||||
NET "ddr3_ras_n" LOC = "A17" | ;
|
||||
NET "ddr3_reset_n" LOC = "A19" | ;
|
||||
NET "ddr3_we_n" LOC = "B19" | ;
|
File diff suppressed because it is too large
Load Diff
@ -1,307 +0,0 @@
|
||||
#set_property SEVERITY {Warning} [get_drc_checks RTSTAT-2]
|
||||
#时钟信号连接
|
||||
#create_clock -period 10.000 [get_ports clk]
|
||||
set_property PACKAGE_PIN AC19 [get_ports clk]
|
||||
set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_nets clk]
|
||||
create_clock -period 10.000 -name clk -waveform {0.000 5.000} [get_ports clk]
|
||||
|
||||
#reset
|
||||
set_property PACKAGE_PIN Y3 [get_ports resetn_rtl_0]
|
||||
|
||||
#SPI flash
|
||||
set_property PACKAGE_PIN P20 [get_ports spi_rtl_0_sck_io]
|
||||
set_property PACKAGE_PIN R20 [get_ports {spi_rtl_0_ss_io[0]}]
|
||||
set_property PACKAGE_PIN P19 [get_ports spi_rtl_0_io1_io]
|
||||
set_property PACKAGE_PIN N18 [get_ports spi_rtl_0_io0_io]
|
||||
|
||||
#mac phy connect
|
||||
set_property PACKAGE_PIN AB21 [get_ports mii_rtl_0_tx_clk]
|
||||
set_property PACKAGE_PIN AA19 [get_ports mii_rtl_0_rx_clk]
|
||||
set_property PACKAGE_PIN AA15 [get_ports mii_rtl_0_tx_en]
|
||||
set_property PACKAGE_PIN AF18 [get_ports {mii_rtl_0_txd[0]}]
|
||||
set_property PACKAGE_PIN AE18 [get_ports {mii_rtl_0_txd[1]}]
|
||||
set_property PACKAGE_PIN W15 [get_ports {mii_rtl_0_txd[2]}]
|
||||
set_property PACKAGE_PIN W14 [get_ports {mii_rtl_0_txd[3]}]
|
||||
set_property PACKAGE_PIN AE22 [get_ports mii_rtl_0_rx_dv]
|
||||
set_property PACKAGE_PIN V1 [get_ports {mii_rtl_0_rxd[0]}]
|
||||
set_property PACKAGE_PIN V4 [get_ports {mii_rtl_0_rxd[1]}]
|
||||
set_property PACKAGE_PIN V2 [get_ports {mii_rtl_0_rxd[2]}]
|
||||
set_property PACKAGE_PIN V3 [get_ports {mii_rtl_0_rxd[3]}]
|
||||
set_property PACKAGE_PIN W16 [get_ports mii_rtl_0_rx_er]
|
||||
set_property PACKAGE_PIN Y15 [get_ports mii_rtl_0_col]
|
||||
set_property PACKAGE_PIN AF20 [get_ports mii_rtl_0_crs]
|
||||
set_property PACKAGE_PIN W3 [get_ports mdio_rtl_0_mdc]
|
||||
set_property PACKAGE_PIN W1 [get_ports mdio_rtl_0_mdio_io]
|
||||
set_property PACKAGE_PIN AE26 [get_ports mii_rtl_0_rst_n]
|
||||
|
||||
#uart
|
||||
set_property PACKAGE_PIN F23 [get_ports uart_rtl_0_rxd]
|
||||
set_property PACKAGE_PIN H19 [get_ports uart_rtl_0_txd]
|
||||
set_property PACKAGE_PIN E23 [get_ports uart_rtl_0_cts]
|
||||
set_property PACKAGE_PIN G20 [get_ports uart_rtl_0_dcd]
|
||||
set_property PACKAGE_PIN K6 [get_ports uart_rtl_0_dsr]
|
||||
set_property PACKAGE_PIN F25 [get_ports uart_rtl_0_dtr]
|
||||
set_property PACKAGE_PIN K7 [get_ports uart_rtl_0_ri]
|
||||
set_property PACKAGE_PIN F24 [get_ports uart_rtl_0_rts]
|
||||
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports clk]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports resetn_rtl_0]
|
||||
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports spi_rtl_0_io0_io]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports spi_rtl_0_io1_io]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports {spi_rtl_0_ss_io[0]}]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports spi_rtl_0_sck_io]
|
||||
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports {mii_rtl_0_rxd[*]}]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports {mii_rtl_0_txd[*]}]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports mii_rtl_0_rst_n]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports mii_rtl_0_tx_en]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports mii_rtl_0_tx_clk]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports mii_rtl_0_rx_er]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports mii_rtl_0_col]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports mii_rtl_0_crs]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports mdio_rtl_0_mdc]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports mdio_rtl_0_mdio_io]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports mii_rtl_0_rx_clk]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports mii_rtl_0_rx_dv]
|
||||
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_rxd]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_txd]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_cts]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_dcd]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_dsr]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_dtr]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_ri]
|
||||
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_rts]
|
||||
|
||||
create_clock -period 40.000 -name mii_rtl_0_rx_clk -waveform {0.000 20.000} [get_ports mii_rtl_0_rx_clk]
|
||||
create_clock -period 40.000 -name mii_rtl_0_tx_clk -waveform {0.000 20.000} [get_ports mii_rtl_0_tx_clk]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
connect_debug_port u_ila_0/probe2 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_rdata[31]}]]
|
||||
|
||||
create_debug_core u_ila_0 ila
|
||||
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
|
||||
set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0]
|
||||
set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0]
|
||||
set_property C_DATA_DEPTH 8192 [get_debug_cores u_ila_0]
|
||||
set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0]
|
||||
set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
|
||||
set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
|
||||
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/clk]
|
||||
connect_debug_port u_ila_0/clk [get_nets [list mycpu_block_i/clk_wiz_0/inst/clk_cpu]]
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe0]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe0]
|
||||
connect_debug_port u_ila_0/probe0 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_BadVAddr[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe1]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe1]
|
||||
connect_debug_port u_ila_0/probe1 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_inst[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe2]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe2]
|
||||
connect_debug_port u_ila_0/probe2 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata2[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe3]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe3]
|
||||
connect_debug_port u_ila_0/probe3 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_inst[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe4]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe4]
|
||||
connect_debug_port u_ila_0/probe4 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_EPC[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe5]
|
||||
set_property port_width 4 [get_debug_ports u_ila_0/probe5]
|
||||
connect_debug_port u_ila_0/probe5 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_ExcCode[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_ExcCode[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_ExcCode[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_ExcCode[3]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe6]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe6]
|
||||
connect_debug_port u_ila_0/probe6 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_pc[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe7]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe7]
|
||||
connect_debug_port u_ila_0/probe7 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_addr[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe8]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe8]
|
||||
connect_debug_port u_ila_0/probe8 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata0[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe9]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe9]
|
||||
connect_debug_port u_ila_0/probe9 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe10]
|
||||
set_property port_width 4 [get_debug_ports u_ila_0/probe10]
|
||||
connect_debug_port u_ila_0/probe10 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wstrb[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wstrb[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wstrb[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wstrb[3]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe11]
|
||||
set_property port_width 4 [get_debug_ports u_ila_0/probe11]
|
||||
connect_debug_port u_ila_0/probe11 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_wstrb[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_wstrb[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_wstrb[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_wstrb[3]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe12]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe12]
|
||||
connect_debug_port u_ila_0/probe12 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_addr[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe13]
|
||||
set_property port_width 2 [get_debug_ports u_ila_0/probe13]
|
||||
connect_debug_port u_ila_0/probe13 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_size[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_size[1]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe14]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe14]
|
||||
connect_debug_port u_ila_0/probe14 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wdata[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe15]
|
||||
set_property port_width 3 [get_debug_ports u_ila_0/probe15]
|
||||
connect_debug_port u_ila_0/probe15 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_size[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_size[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_size[2]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe16]
|
||||
set_property port_width 29 [get_debug_ports u_ila_0/probe16]
|
||||
connect_debug_port u_ila_0/probe16 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe17]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe17]
|
||||
connect_debug_port u_ila_0/probe17 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_addr[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe18]
|
||||
set_property port_width 3 [get_debug_ports u_ila_0/probe18]
|
||||
connect_debug_port u_ila_0/probe18 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_size[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_size[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_size[2]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe19]
|
||||
set_property port_width 4 [get_debug_ports u_ila_0/probe19]
|
||||
connect_debug_port u_ila_0/probe19 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_len[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_len[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_len[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_len[3]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe20]
|
||||
set_property port_width 4 [get_debug_ports u_ila_0/probe20]
|
||||
connect_debug_port u_ila_0/probe20 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_len[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_len[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_len[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_len[3]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe21]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe21]
|
||||
connect_debug_port u_ila_0/probe21 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_rdata1[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe22]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe22]
|
||||
connect_debug_port u_ila_0/probe22 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_pc[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe23]
|
||||
set_property port_width 32 [get_debug_ports u_ila_0/probe23]
|
||||
connect_debug_port u_ila_0/probe23 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[5]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[6]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[7]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[8]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[9]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[10]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[11]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[12]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[13]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[14]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[15]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[16]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[17]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[18]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[19]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[20]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[21]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[22]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[23]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[24]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[25]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[26]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[27]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[28]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[29]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[30]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/wdata1[31]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe24]
|
||||
set_property port_width 6 [get_debug_ports u_ila_0/probe24]
|
||||
connect_debug_port u_ila_0/probe24 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/ext_int_sync[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/ext_int_sync[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/ext_int_sync[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/ext_int_sync[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/ext_int_sync[4]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/ext_int_sync[5]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe25]
|
||||
set_property port_width 5 [get_debug_ports u_ila_0/probe25]
|
||||
connect_debug_port u_ila_0/probe25 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/waddr2[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/waddr2[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/waddr2[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/waddr2[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/waddr2[4]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe26]
|
||||
set_property port_width 5 [get_debug_ports u_ila_0/probe26]
|
||||
connect_debug_port u_ila_0/probe26 [get_nets [list {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/waddr1[0]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/waddr1[1]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/waddr1[2]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/waddr1[3]} {mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/waddr1[4]}]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe27]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe27]
|
||||
connect_debug_port u_ila_0/probe27 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_call]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe28]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe28]
|
||||
connect_debug_port u_ila_0/probe28 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amr_done]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe29]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe29]
|
||||
connect_debug_port u_ila_0/probe29 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_call]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe30]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe30]
|
||||
connect_debug_port u_ila_0/probe30 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/amw_done]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe31]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe31]
|
||||
connect_debug_port u_ila_0/probe31 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IA_valid]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe32]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe32]
|
||||
connect_debug_port u_ila_0/probe32 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/D_IB_valid]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe33]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe33]
|
||||
connect_debug_port u_ila_0/probe33 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/dAddressError]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe34]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe34]
|
||||
connect_debug_port u_ila_0/probe34 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/dTLBInvalid]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe35]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe35]
|
||||
connect_debug_port u_ila_0/probe35 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/dTLBModified]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe36]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe36]
|
||||
connect_debug_port u_ila_0/probe36 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/dTLBRefill]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe37]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe37]
|
||||
connect_debug_port u_ila_0/probe37 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_ERET]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe38]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe38]
|
||||
connect_debug_port u_ila_0/probe38 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/EXC_ExcValid]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe39]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe39]
|
||||
connect_debug_port u_ila_0/probe39 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/iAddressError]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe40]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe40]
|
||||
connect_debug_port u_ila_0/probe40 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_addr_ok]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe41]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe41]
|
||||
connect_debug_port u_ila_0/probe41 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_data_ok]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe42]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe42]
|
||||
connect_debug_port u_ila_0/probe42 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/INST_req]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe43]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe43]
|
||||
connect_debug_port u_ila_0/probe43 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/iTLBInvalid]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe44]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe44]
|
||||
connect_debug_port u_ila_0/probe44 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/iTLBRefill]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe45]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe45]
|
||||
connect_debug_port u_ila_0/probe45 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_addr_ok]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe46]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe46]
|
||||
connect_debug_port u_ila_0/probe46 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_data_ok]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe47]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe47]
|
||||
connect_debug_port u_ila_0/probe47 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_prv_req]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe48]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe48]
|
||||
connect_debug_port u_ila_0/probe48 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_req]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe49]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe49]
|
||||
connect_debug_port u_ila_0/probe49 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/mmu/MEM_wr]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe50]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe50]
|
||||
connect_debug_port u_ila_0/probe50 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/we1]]
|
||||
create_debug_port u_ila_0 probe
|
||||
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe51]
|
||||
set_property port_width 1 [get_debug_ports u_ila_0/probe51]
|
||||
connect_debug_port u_ila_0/probe51 [get_nets [list mycpu_block_i/mycpu_top_verilog_0/inst/cpu/datapath/RegisterFile/we2]]
|
||||
set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
|
||||
set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
|
||||
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
|
||||
connect_debug_port dbg_hub/clk [get_nets u_ila_0_clk_cpu]
|
@ -1,227 +0,0 @@
|
||||
//Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
||||
//--------------------------------------------------------------------------------
|
||||
//Tool Version: Vivado v.2022.1 (lin64) Build 3526262 Mon Apr 18 15:47:01 MDT 2022
|
||||
//Date : Tue Aug 16 17:39:17 2022
|
||||
//Host : Laptop-Paul running 64-bit Manjaro Linux
|
||||
//Command : generate_target mycpu_block_wrapper.bd
|
||||
//Design : mycpu_block_wrapper
|
||||
//Purpose : IP block netlist
|
||||
//--------------------------------------------------------------------------------
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
module mycpu_block_wrapper
|
||||
(clk,
|
||||
ddr3_addr,
|
||||
ddr3_ba,
|
||||
ddr3_cas_n,
|
||||
ddr3_ck_n,
|
||||
ddr3_ck_p,
|
||||
ddr3_cke,
|
||||
ddr3_dm,
|
||||
ddr3_dq,
|
||||
ddr3_dqs_n,
|
||||
ddr3_dqs_p,
|
||||
ddr3_odt,
|
||||
ddr3_ras_n,
|
||||
ddr3_reset_n,
|
||||
ddr3_we_n,
|
||||
mdio_rtl_0_mdc,
|
||||
mdio_rtl_0_mdio_io,
|
||||
mii_rtl_0_col,
|
||||
mii_rtl_0_crs,
|
||||
mii_rtl_0_rst_n,
|
||||
mii_rtl_0_rx_clk,
|
||||
mii_rtl_0_rx_dv,
|
||||
mii_rtl_0_rx_er,
|
||||
mii_rtl_0_rxd,
|
||||
mii_rtl_0_tx_clk,
|
||||
mii_rtl_0_tx_en,
|
||||
mii_rtl_0_txd,
|
||||
resetn_rtl_0,
|
||||
spi_rtl_0_io0_io,
|
||||
spi_rtl_0_io1_io,
|
||||
spi_rtl_0_sck_io,
|
||||
spi_rtl_0_ss_io,
|
||||
uart_rtl_0_cts,
|
||||
uart_rtl_0_dcd,
|
||||
uart_rtl_0_dsr,
|
||||
uart_rtl_0_dtr,
|
||||
uart_rtl_0_ri,
|
||||
uart_rtl_0_rts,
|
||||
uart_rtl_0_rxd,
|
||||
uart_rtl_0_txd);
|
||||
input clk;
|
||||
output [12:0]ddr3_addr;
|
||||
output [2:0]ddr3_ba;
|
||||
output ddr3_cas_n;
|
||||
output [0:0]ddr3_ck_n;
|
||||
output [0:0]ddr3_ck_p;
|
||||
output [0:0]ddr3_cke;
|
||||
output [1:0]ddr3_dm;
|
||||
inout [15:0]ddr3_dq;
|
||||
inout [1:0]ddr3_dqs_n;
|
||||
inout [1:0]ddr3_dqs_p;
|
||||
output [0:0]ddr3_odt;
|
||||
output ddr3_ras_n;
|
||||
output ddr3_reset_n;
|
||||
output ddr3_we_n;
|
||||
output mdio_rtl_0_mdc;
|
||||
inout mdio_rtl_0_mdio_io;
|
||||
input mii_rtl_0_col;
|
||||
input mii_rtl_0_crs;
|
||||
output mii_rtl_0_rst_n;
|
||||
input mii_rtl_0_rx_clk;
|
||||
input mii_rtl_0_rx_dv;
|
||||
input mii_rtl_0_rx_er;
|
||||
input [3:0]mii_rtl_0_rxd;
|
||||
input mii_rtl_0_tx_clk;
|
||||
output mii_rtl_0_tx_en;
|
||||
output [3:0]mii_rtl_0_txd;
|
||||
input resetn_rtl_0;
|
||||
inout spi_rtl_0_io0_io;
|
||||
inout spi_rtl_0_io1_io;
|
||||
inout spi_rtl_0_sck_io;
|
||||
inout [0:0]spi_rtl_0_ss_io;
|
||||
input uart_rtl_0_cts;
|
||||
input uart_rtl_0_dcd;
|
||||
input uart_rtl_0_dsr;
|
||||
output uart_rtl_0_dtr;
|
||||
input uart_rtl_0_ri;
|
||||
output uart_rtl_0_rts;
|
||||
input uart_rtl_0_rxd;
|
||||
output uart_rtl_0_txd;
|
||||
|
||||
wire clk;
|
||||
wire [12:0]ddr3_addr;
|
||||
wire [2:0]ddr3_ba;
|
||||
wire ddr3_cas_n;
|
||||
wire [0:0]ddr3_ck_n;
|
||||
wire [0:0]ddr3_ck_p;
|
||||
wire [0:0]ddr3_cke;
|
||||
wire [1:0]ddr3_dm;
|
||||
wire [15:0]ddr3_dq;
|
||||
wire [1:0]ddr3_dqs_n;
|
||||
wire [1:0]ddr3_dqs_p;
|
||||
wire [0:0]ddr3_odt;
|
||||
wire ddr3_ras_n;
|
||||
wire ddr3_reset_n;
|
||||
wire ddr3_we_n;
|
||||
wire mdio_rtl_0_mdc;
|
||||
wire mdio_rtl_0_mdio_i;
|
||||
wire mdio_rtl_0_mdio_io;
|
||||
wire mdio_rtl_0_mdio_o;
|
||||
wire mdio_rtl_0_mdio_t;
|
||||
wire mii_rtl_0_col;
|
||||
wire mii_rtl_0_crs;
|
||||
wire mii_rtl_0_rst_n;
|
||||
wire mii_rtl_0_rx_clk;
|
||||
wire mii_rtl_0_rx_dv;
|
||||
wire mii_rtl_0_rx_er;
|
||||
wire [3:0]mii_rtl_0_rxd;
|
||||
wire mii_rtl_0_tx_clk;
|
||||
wire mii_rtl_0_tx_en;
|
||||
wire [3:0]mii_rtl_0_txd;
|
||||
wire resetn_rtl_0;
|
||||
wire spi_rtl_0_io0_i;
|
||||
wire spi_rtl_0_io0_io;
|
||||
wire spi_rtl_0_io0_o;
|
||||
wire spi_rtl_0_io0_t;
|
||||
wire spi_rtl_0_io1_i;
|
||||
wire spi_rtl_0_io1_io;
|
||||
wire spi_rtl_0_io1_o;
|
||||
wire spi_rtl_0_io1_t;
|
||||
wire spi_rtl_0_sck_i;
|
||||
wire spi_rtl_0_sck_io;
|
||||
wire spi_rtl_0_sck_o;
|
||||
wire spi_rtl_0_sck_t;
|
||||
wire [0:0]spi_rtl_0_ss_i_0;
|
||||
wire [0:0]spi_rtl_0_ss_io_0;
|
||||
wire [0:0]spi_rtl_0_ss_o_0;
|
||||
wire spi_rtl_0_ss_t;
|
||||
wire uart_rtl_0_cts;
|
||||
wire uart_rtl_0_dcd;
|
||||
wire uart_rtl_0_dsr;
|
||||
wire uart_rtl_0_dtr;
|
||||
wire uart_rtl_0_ri;
|
||||
wire uart_rtl_0_rts;
|
||||
wire uart_rtl_0_rxd;
|
||||
wire uart_rtl_0_txd;
|
||||
|
||||
IOBUF mdio_rtl_0_mdio_iobuf
|
||||
(.I(mdio_rtl_0_mdio_o),
|
||||
.IO(mdio_rtl_0_mdio_io),
|
||||
.O(mdio_rtl_0_mdio_i),
|
||||
.T(mdio_rtl_0_mdio_t));
|
||||
mycpu_block mycpu_block_i
|
||||
(.clk(clk),
|
||||
.ddr3_addr(ddr3_addr),
|
||||
.ddr3_ba(ddr3_ba),
|
||||
.ddr3_cas_n(ddr3_cas_n),
|
||||
.ddr3_ck_n(ddr3_ck_n),
|
||||
.ddr3_ck_p(ddr3_ck_p),
|
||||
.ddr3_cke(ddr3_cke),
|
||||
.ddr3_dm(ddr3_dm),
|
||||
.ddr3_dq(ddr3_dq),
|
||||
.ddr3_dqs_n(ddr3_dqs_n),
|
||||
.ddr3_dqs_p(ddr3_dqs_p),
|
||||
.ddr3_odt(ddr3_odt),
|
||||
.ddr3_ras_n(ddr3_ras_n),
|
||||
.ddr3_reset_n(ddr3_reset_n),
|
||||
.ddr3_we_n(ddr3_we_n),
|
||||
.mdio_rtl_0_mdc(mdio_rtl_0_mdc),
|
||||
.mdio_rtl_0_mdio_i(mdio_rtl_0_mdio_i),
|
||||
.mdio_rtl_0_mdio_o(mdio_rtl_0_mdio_o),
|
||||
.mdio_rtl_0_mdio_t(mdio_rtl_0_mdio_t),
|
||||
.mii_rtl_0_col(mii_rtl_0_col),
|
||||
.mii_rtl_0_crs(mii_rtl_0_crs),
|
||||
.mii_rtl_0_rst_n(mii_rtl_0_rst_n),
|
||||
.mii_rtl_0_rx_clk(mii_rtl_0_rx_clk),
|
||||
.mii_rtl_0_rx_dv(mii_rtl_0_rx_dv),
|
||||
.mii_rtl_0_rx_er(mii_rtl_0_rx_er),
|
||||
.mii_rtl_0_rxd(mii_rtl_0_rxd),
|
||||
.mii_rtl_0_tx_clk(mii_rtl_0_tx_clk),
|
||||
.mii_rtl_0_tx_en(mii_rtl_0_tx_en),
|
||||
.mii_rtl_0_txd(mii_rtl_0_txd),
|
||||
.resetn_rtl_0(resetn_rtl_0),
|
||||
.spi_rtl_0_io0_i(spi_rtl_0_io0_i),
|
||||
.spi_rtl_0_io0_o(spi_rtl_0_io0_o),
|
||||
.spi_rtl_0_io0_t(spi_rtl_0_io0_t),
|
||||
.spi_rtl_0_io1_i(spi_rtl_0_io1_i),
|
||||
.spi_rtl_0_io1_o(spi_rtl_0_io1_o),
|
||||
.spi_rtl_0_io1_t(spi_rtl_0_io1_t),
|
||||
.spi_rtl_0_sck_i(spi_rtl_0_sck_i),
|
||||
.spi_rtl_0_sck_o(spi_rtl_0_sck_o),
|
||||
.spi_rtl_0_sck_t(spi_rtl_0_sck_t),
|
||||
.spi_rtl_0_ss_i(spi_rtl_0_ss_i_0),
|
||||
.spi_rtl_0_ss_o(spi_rtl_0_ss_o_0),
|
||||
.spi_rtl_0_ss_t(spi_rtl_0_ss_t),
|
||||
.uart_rtl_0_ctsn(~uart_rtl_0_cts),
|
||||
.uart_rtl_0_dcdn(~uart_rtl_0_dcd),
|
||||
.uart_rtl_0_dsrn(~uart_rtl_0_dsr),
|
||||
.uart_rtl_0_dtrn(~uart_rtl_0_dtr),
|
||||
.uart_rtl_0_ri(uart_rtl_0_ri),
|
||||
.uart_rtl_0_rtsn(~uart_rtl_0_rts),
|
||||
.uart_rtl_0_rxd(uart_rtl_0_rxd),
|
||||
.uart_rtl_0_txd(uart_rtl_0_txd));
|
||||
|
||||
IOBUF spi_rtl_0_io0_iobuf
|
||||
(.I(spi_rtl_0_io0_o),
|
||||
.IO(spi_rtl_0_io0_io),
|
||||
.O(spi_rtl_0_io0_i),
|
||||
.T(spi_rtl_0_io0_t));
|
||||
IOBUF spi_rtl_0_io1_iobuf
|
||||
(.I(spi_rtl_0_io1_o),
|
||||
.IO(spi_rtl_0_io1_io),
|
||||
.O(spi_rtl_0_io1_i),
|
||||
.T(spi_rtl_0_io1_t));
|
||||
IOBUF spi_rtl_0_sck_iobuf
|
||||
(.I(spi_rtl_0_sck_o),
|
||||
.IO(spi_rtl_0_sck_io),
|
||||
.O(spi_rtl_0_sck_i),
|
||||
.T(spi_rtl_0_sck_t));
|
||||
IOBUF spi_rtl_0_ss_iobuf_0
|
||||
(.I(spi_rtl_0_ss_o_0),
|
||||
.IO(spi_rtl_0_ss_io[0]),
|
||||
.O(spi_rtl_0_ss_i_0),
|
||||
.T(spi_rtl_0_ss_t));
|
||||
endmodule
|
@ -1,91 +0,0 @@
|
||||
module mycpu_top_verilog (
|
||||
input wire [5:0] ext_int, //high active
|
||||
|
||||
input wire aclk,
|
||||
input wire aresetn, //low active
|
||||
|
||||
output wire [ 3:0] arid,
|
||||
output wire [31:0] araddr,
|
||||
output wire [ 3:0] arlen,
|
||||
output wire [ 2:0] arsize,
|
||||
output wire [ 1:0] arburst,
|
||||
output wire [ 1:0] arlock,
|
||||
output wire [ 3:0] arcache,
|
||||
output wire [ 2:0] arprot,
|
||||
output wire arvalid,
|
||||
input wire arready,
|
||||
|
||||
input wire [ 3:0] rid,
|
||||
input wire [31:0] rdata,
|
||||
input wire [ 1:0] rresp,
|
||||
input wire rlast,
|
||||
input wire rvalid,
|
||||
output wire rready,
|
||||
|
||||
output wire [ 3:0] awid,
|
||||
output wire [31:0] awaddr,
|
||||
output wire [ 3:0] awlen,
|
||||
output wire [ 2:0] awsize,
|
||||
output wire [ 1:0] awburst,
|
||||
output wire [ 1:0] awlock,
|
||||
output wire [ 3:0] awcache,
|
||||
output wire [ 2:0] awprot,
|
||||
output wire awvalid,
|
||||
input wire awready,
|
||||
|
||||
output wire [ 3:0] wid,
|
||||
output wire [31:0] wdata,
|
||||
output wire [ 3:0] wstrb,
|
||||
output wire wlast,
|
||||
output wire wvalid,
|
||||
input wire wready,
|
||||
|
||||
input wire [3:0] bid,
|
||||
input wire [1:0] bresp,
|
||||
input wire bvalid,
|
||||
output wire bready
|
||||
);
|
||||
|
||||
mycpu_top cpu(
|
||||
.ext_int(ext_int),
|
||||
.aclk (aclk),
|
||||
.aresetn(aresetn),
|
||||
.arid (arid),
|
||||
.araddr (araddr),
|
||||
.arlen (arlen),
|
||||
.arsize (arsize),
|
||||
.arburst(arburst),
|
||||
.arlock (arlock),
|
||||
.arcache(arcache),
|
||||
.arprot (arprot),
|
||||
.arvalid(arvalid),
|
||||
.arready(arready),
|
||||
.rid (rid),
|
||||
.rdata (rdata),
|
||||
.rresp (rresp),
|
||||
.rlast (rlast),
|
||||
.rvalid (rvalid),
|
||||
.rready (rready),
|
||||
.awid (awid),
|
||||
.awaddr (awaddr),
|
||||
.awlen (awlen),
|
||||
.awsize (awsize),
|
||||
.awburst(awburst),
|
||||
.awlock (awlock),
|
||||
.awcache(awcache),
|
||||
.awprot (awprot),
|
||||
.awvalid(awvalid),
|
||||
.awready(awready),
|
||||
.wid (wid),
|
||||
.wdata (wdata),
|
||||
.wstrb (wstrb),
|
||||
.wlast (wlast),
|
||||
.wvalid (wvalid),
|
||||
.wready (wready),
|
||||
.bid (bid),
|
||||
.bresp (bresp),
|
||||
.bvalid (bvalid),
|
||||
.bready (bready)
|
||||
);
|
||||
|
||||
endmodule
|
File diff suppressed because it is too large
Load Diff
@ -1,201 +0,0 @@
|
||||
//Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
||||
//--------------------------------------------------------------------------------
|
||||
//Tool Version: Vivado v.2022.1 (lin64) Build 3526262 Mon Apr 18 15:47:01 MDT 2022
|
||||
//Date : Mon Aug 8 22:48:00 2022
|
||||
//Host : Laptop-Paul running 64-bit Manjaro Linux
|
||||
//Command : generate_target mycpu_block_wrapper.bd
|
||||
//Design : mycpu_block_wrapper
|
||||
//Purpose : IP block netlist
|
||||
//--------------------------------------------------------------------------------
|
||||
`timescale 1 ps / 1 ps
|
||||
|
||||
module mycpu_block_wrapper
|
||||
(clk,
|
||||
ddr3_addr,
|
||||
ddr3_ba,
|
||||
ddr3_cas_n,
|
||||
ddr3_ck_n,
|
||||
ddr3_ck_p,
|
||||
ddr3_cke,
|
||||
ddr3_dm,
|
||||
ddr3_dq,
|
||||
ddr3_dqs_n,
|
||||
ddr3_dqs_p,
|
||||
ddr3_odt,
|
||||
ddr3_ras_n,
|
||||
ddr3_reset_n,
|
||||
ddr3_we_n,
|
||||
mdio_rtl_0_mdc,
|
||||
mdio_rtl_0_mdio_io,
|
||||
mii_rtl_0_col,
|
||||
mii_rtl_0_crs,
|
||||
mii_rtl_0_rst_n,
|
||||
mii_rtl_0_rx_clk,
|
||||
mii_rtl_0_rx_dv,
|
||||
mii_rtl_0_rx_er,
|
||||
mii_rtl_0_rxd,
|
||||
mii_rtl_0_tx_clk,
|
||||
mii_rtl_0_tx_en,
|
||||
mii_rtl_0_txd,
|
||||
resetn_rtl_0,
|
||||
spi_rtl_0_io0_io,
|
||||
spi_rtl_0_io1_io,
|
||||
spi_rtl_0_sck_io,
|
||||
spi_rtl_0_ss_io,
|
||||
uart_rtl_0_cts,
|
||||
uart_rtl_0_dcd,
|
||||
uart_rtl_0_dsr,
|
||||
uart_rtl_0_dtr,
|
||||
uart_rtl_0_ri,
|
||||
uart_rtl_0_rts,
|
||||
uart_rtl_0_rxd,
|
||||
uart_rtl_0_txd);
|
||||
input clk;
|
||||
output [12:0]ddr3_addr;
|
||||
output [2:0]ddr3_ba;
|
||||
output ddr3_cas_n;
|
||||
output [0:0]ddr3_ck_n;
|
||||
output [0:0]ddr3_ck_p;
|
||||
output [0:0]ddr3_cke;
|
||||
output [1:0]ddr3_dm;
|
||||
inout [15:0]ddr3_dq;
|
||||
inout [1:0]ddr3_dqs_n;
|
||||
inout [1:0]ddr3_dqs_p;
|
||||
output [0:0]ddr3_odt;
|
||||
output ddr3_ras_n;
|
||||
output ddr3_reset_n;
|
||||
output ddr3_we_n;
|
||||
output mdio_rtl_0_mdc;
|
||||
inout mdio_rtl_0_mdio_io;
|
||||
input mii_rtl_0_col;
|
||||
input mii_rtl_0_crs;
|
||||
output mii_rtl_0_rst_n;
|
||||
input mii_rtl_0_rx_clk;
|
||||
input mii_rtl_0_rx_dv;
|
||||
input mii_rtl_0_rx_er;
|
||||
input [3:0]mii_rtl_0_rxd;
|
||||
input mii_rtl_0_tx_clk;
|
||||
output mii_rtl_0_tx_en;
|
||||
output [3:0]mii_rtl_0_txd;
|
||||
input resetn_rtl_0;
|
||||
inout spi_rtl_0_io0_io;
|
||||
inout spi_rtl_0_io1_io;
|
||||
output spi_rtl_0_sck_io;
|
||||
output [0:0] spi_rtl_0_ss_io;
|
||||
input uart_rtl_0_cts;
|
||||
input uart_rtl_0_dcd;
|
||||
input uart_rtl_0_dsr;
|
||||
output uart_rtl_0_dtr;
|
||||
input uart_rtl_0_ri;
|
||||
output uart_rtl_0_rts;
|
||||
input uart_rtl_0_rxd;
|
||||
output uart_rtl_0_txd;
|
||||
|
||||
wire clk;
|
||||
wire [12:0]ddr3_addr;
|
||||
wire [2:0]ddr3_ba;
|
||||
wire ddr3_cas_n;
|
||||
wire [0:0]ddr3_ck_n;
|
||||
wire [0:0]ddr3_ck_p;
|
||||
wire [0:0]ddr3_cke;
|
||||
wire [1:0]ddr3_dm;
|
||||
wire [15:0]ddr3_dq;
|
||||
wire [1:0]ddr3_dqs_n;
|
||||
wire [1:0]ddr3_dqs_p;
|
||||
wire [0:0]ddr3_odt;
|
||||
wire ddr3_ras_n;
|
||||
wire ddr3_reset_n;
|
||||
wire ddr3_we_n;
|
||||
wire mdio_rtl_0_mdc;
|
||||
wire mdio_rtl_0_mdio_i;
|
||||
wire mdio_rtl_0_mdio_io;
|
||||
wire mdio_rtl_0_mdio_o;
|
||||
wire mdio_rtl_0_mdio_t;
|
||||
wire mii_rtl_0_col;
|
||||
wire mii_rtl_0_crs;
|
||||
wire mii_rtl_0_rst_n;
|
||||
wire mii_rtl_0_rx_clk;
|
||||
wire mii_rtl_0_rx_dv;
|
||||
wire mii_rtl_0_rx_er;
|
||||
wire [3:0]mii_rtl_0_rxd;
|
||||
wire mii_rtl_0_tx_clk;
|
||||
wire mii_rtl_0_tx_en;
|
||||
wire [3:0]mii_rtl_0_txd;
|
||||
wire resetn_rtl_0;
|
||||
wire spi_rtl_0_io0_io;
|
||||
wire spi_rtl_0_io1_io;
|
||||
wire spi_rtl_0_sck_io;
|
||||
wire [0:0]spi_rtl_0_ss_io;
|
||||
wire uart_rtl_0_cts;
|
||||
wire uart_rtl_0_dcd;
|
||||
wire uart_rtl_0_dsr;
|
||||
wire uart_rtl_0_dtr;
|
||||
wire uart_rtl_0_ri;
|
||||
wire uart_rtl_0_rts;
|
||||
wire uart_rtl_0_rxd;
|
||||
wire uart_rtl_0_txd;
|
||||
|
||||
wire sdi_en_0, sdo_en_0;
|
||||
wire sdi_i_0, sdi_o_0;
|
||||
wire sdo_i_0, sdo_o_0;
|
||||
wire [3:0] csn_en_0;
|
||||
wire [3:0] csn_o_0;
|
||||
|
||||
assign spi_rtl_0_ss_io[0] = ~csn_en_0[0] & csn_o_0[0];
|
||||
assign spi_rtl_0_io0_io = sdo_en_0 ? 1'bz : sdo_o_0 ;
|
||||
assign spi_rtl_0_io1_io = sdi_en_0 ? 1'bz : sdi_o_0 ;
|
||||
assign sdo_i_0 = spi_rtl_0_io0_io;
|
||||
assign sdi_i_0 = spi_rtl_0_io1_io;
|
||||
|
||||
IOBUF mdio_rtl_0_mdio_iobuf
|
||||
(.I(mdio_rtl_0_mdio_o),
|
||||
.IO(mdio_rtl_0_mdio_io),
|
||||
.O(mdio_rtl_0_mdio_i),
|
||||
.T(mdio_rtl_0_mdio_t));
|
||||
mycpu_block mycpu_block_i
|
||||
(.clk(clk),
|
||||
.csn_en_0(csn_en_0),
|
||||
.csn_o_0(csn_o_0),
|
||||
.ddr3_addr(ddr3_addr),
|
||||
.ddr3_ba(ddr3_ba),
|
||||
.ddr3_cas_n(ddr3_cas_n),
|
||||
.ddr3_ck_n(ddr3_ck_n),
|
||||
.ddr3_ck_p(ddr3_ck_p),
|
||||
.ddr3_cke(ddr3_cke),
|
||||
.ddr3_dm(ddr3_dm),
|
||||
.ddr3_dq(ddr3_dq),
|
||||
.ddr3_dqs_n(ddr3_dqs_n),
|
||||
.ddr3_dqs_p(ddr3_dqs_p),
|
||||
.ddr3_odt(ddr3_odt),
|
||||
.ddr3_ras_n(ddr3_ras_n),
|
||||
.ddr3_reset_n(ddr3_reset_n),
|
||||
.ddr3_we_n(ddr3_we_n),
|
||||
.mdio_rtl_0_mdc(mdio_rtl_0_mdc),
|
||||
.mdio_rtl_0_mdio_i(mdio_rtl_0_mdio_i),
|
||||
.mdio_rtl_0_mdio_o(mdio_rtl_0_mdio_o),
|
||||
.mdio_rtl_0_mdio_t(mdio_rtl_0_mdio_t),
|
||||
.mii_rtl_0_col(mii_rtl_0_col),
|
||||
.mii_rtl_0_crs(mii_rtl_0_crs),
|
||||
.mii_rtl_0_rst_n(mii_rtl_0_rst_n),
|
||||
.mii_rtl_0_rx_clk(mii_rtl_0_rx_clk),
|
||||
.mii_rtl_0_rx_dv(mii_rtl_0_rx_dv),
|
||||
.mii_rtl_0_rx_er(mii_rtl_0_rx_er),
|
||||
.mii_rtl_0_rxd(mii_rtl_0_rxd),
|
||||
.mii_rtl_0_tx_clk(mii_rtl_0_tx_clk),
|
||||
.mii_rtl_0_tx_en(mii_rtl_0_tx_en),
|
||||
.mii_rtl_0_txd(mii_rtl_0_txd),
|
||||
.resetn_rtl_0(resetn_rtl_0),
|
||||
.sck_o_0(spi_rtl_0_sck_io),
|
||||
.sdi_en_0(sdi_en_0),
|
||||
.sdi_i_0(sdi_i_0),
|
||||
.sdi_o_0(sdi_o_0),
|
||||
.sdo_en_0(sdo_en_0),
|
||||
.sdo_i_0(sdo_i_0),
|
||||
.sdo_o_0(sdo_o_0),
|
||||
.uart_rtl_0_ctsn(~uart_rtl_0_cts),
|
||||
.uart_rtl_0_dcdn(~uart_rtl_0_dcd),
|
||||
.uart_rtl_0_dsrn(~uart_rtl_0_dsr),
|
||||
.uart_rtl_0_ri(uart_rtl_0_ri),
|
||||
.uart_rtl_0_rxd(uart_rtl_0_rxd),
|
||||
.uart_rtl_0_txd(uart_rtl_0_txd));
|
||||
endmodule
|
@ -1,755 +0,0 @@
|
||||
// TODO: modify to K7 board
|
||||
|
||||
`define CR0_ADDR 16'h8000 //32'hbfaf_8000
|
||||
`define CR1_ADDR 16'h8004 //32'hbfaf_8004
|
||||
`define CR2_ADDR 16'h8008 //32'hbfaf_8008
|
||||
`define CR3_ADDR 16'h800c //32'hbfaf_800c
|
||||
`define CR4_ADDR 16'h8010 //32'hbfaf_8010
|
||||
`define CR5_ADDR 16'h8014 //32'hbfaf_8014
|
||||
`define CR6_ADDR 16'h8018 //32'hbfaf_8018
|
||||
`define CR7_ADDR 16'h801c //32'hbfaf_801c
|
||||
|
||||
`define LED_ADDR 16'hf000 //32'hbfaf_f000
|
||||
`define LED_RG0_ADDR 16'hf004 //32'hbfaf_f004
|
||||
`define LED_RG1_ADDR 16'hf008 //32'hbfaf_f008
|
||||
`define NUM_ADDR 16'hf010 //32'hbfaf_f010
|
||||
`define SWITCH_ADDR 16'hf020 //32'hbfaf_f020
|
||||
`define BTN_KEY_ADDR 16'hf024 //32'hbfaf_f024
|
||||
`define BTN_STEP_ADDR 16'hf028 //32'hbfaf_f028
|
||||
`define SW_INTER_ADDR 16'hf02c //32'hbfaf_f02c
|
||||
`define TIMER_ADDR 16'he000 //32'hbfaf_e000
|
||||
|
||||
`define IO_SIMU_ADDR 16'hffec //32'hbfaf_ffec
|
||||
`define VIRTUAL_UART_ADDR 16'hfff0 //32'hbfaf_fff0
|
||||
`define SIMU_FLAG_ADDR 16'hfff4 //32'hbfaf_fff4
|
||||
`define OPEN_TRACE_ADDR 16'hfff8 //32'hbfaf_fff8
|
||||
`define NUM_MONITOR_ADDR 16'hfffc //32'hbfaf_fffc
|
||||
|
||||
module confreg
|
||||
#(parameter SIMULATION=1'b0)
|
||||
(
|
||||
input aclk,
|
||||
input timer_clk,
|
||||
input aresetn,
|
||||
// read and write from cpu
|
||||
//ar
|
||||
input [3 :0] arid ,
|
||||
input [31:0] araddr ,
|
||||
input [7 :0] arlen ,
|
||||
input [2 :0] arsize ,
|
||||
input [1 :0] arburst,
|
||||
input [1 :0] arlock ,
|
||||
input [3 :0] arcache,
|
||||
input [2 :0] arprot ,
|
||||
input arvalid,
|
||||
output arready,
|
||||
//r
|
||||
output [3 :0] rid ,
|
||||
output [31:0] rdata ,
|
||||
output [1 :0] rresp ,
|
||||
output rlast ,
|
||||
output rvalid ,
|
||||
input rready ,
|
||||
//aw
|
||||
input [3 :0] awid ,
|
||||
input [31:0] awaddr ,
|
||||
input [7 :0] awlen ,
|
||||
input [2 :0] awsize ,
|
||||
input [1 :0] awburst,
|
||||
input [1 :0] awlock ,
|
||||
input [3 :0] awcache,
|
||||
input [2 :0] awprot ,
|
||||
input awvalid,
|
||||
output awready,
|
||||
//w
|
||||
input [3 :0] wid ,
|
||||
input [31:0] wdata ,
|
||||
input [3 :0] wstrb ,
|
||||
input wlast ,
|
||||
input wvalid ,
|
||||
output wready ,
|
||||
//b
|
||||
output [3 :0] bid ,
|
||||
output [1 :0] bresp ,
|
||||
output bvalid ,
|
||||
input bready ,
|
||||
|
||||
// read and write to device on board
|
||||
output [15:0] led,
|
||||
output [1 :0] led_rg0,
|
||||
output [1 :0] led_rg1,
|
||||
output reg [7 :0] num_csn,
|
||||
output reg [6 :0] num_a_g,
|
||||
input [7 :0] switch,
|
||||
output [3 :0] btn_key_col,
|
||||
input [3 :0] btn_key_row,
|
||||
input [1 :0] btn_step
|
||||
);
|
||||
reg [31:0] cr0;
|
||||
reg [31:0] cr1;
|
||||
reg [31:0] cr2;
|
||||
reg [31:0] cr3;
|
||||
reg [31:0] cr4;
|
||||
reg [31:0] cr5;
|
||||
reg [31:0] cr6;
|
||||
reg [31:0] cr7;
|
||||
|
||||
reg [31:0] led_data;
|
||||
reg [31:0] led_rg0_data;
|
||||
reg [31:0] led_rg1_data;
|
||||
reg [31:0] num_data;
|
||||
wire [31:0] switch_data;
|
||||
wire [31:0] sw_inter_data; //switch interleave
|
||||
wire [31:0] btn_key_data;
|
||||
wire [31:0] btn_step_data;
|
||||
reg [31:0] timer_r2;
|
||||
reg [31:0] simu_flag;
|
||||
reg [31:0] io_simu;
|
||||
reg [7 :0] virtual_uart_data;
|
||||
reg open_trace;
|
||||
reg num_monitor;
|
||||
|
||||
//--------------------------{axi interface}begin-------------------------//
|
||||
reg busy,write,R_or_W;
|
||||
reg s_wready;
|
||||
|
||||
wire ar_enter = arvalid & arready;
|
||||
wire r_retire = rvalid & rready & rlast;
|
||||
wire aw_enter = awvalid & awready;
|
||||
wire w_enter = wvalid & wready & wlast;
|
||||
wire b_retire = bvalid & bready;
|
||||
|
||||
assign arready = ~busy & (!R_or_W| !awvalid);
|
||||
assign awready = ~busy & ( R_or_W| !arvalid);
|
||||
|
||||
reg [3 :0] buf_id;
|
||||
reg [31:0] buf_addr;
|
||||
reg [7 :0] buf_len;
|
||||
reg [2 :0] buf_size;
|
||||
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(~aresetn) busy <= 1'b0;
|
||||
else if(ar_enter|aw_enter) busy <= 1'b1;
|
||||
else if(r_retire|b_retire) busy <= 1'b0;
|
||||
end
|
||||
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(~aresetn)
|
||||
begin
|
||||
R_or_W <= 1'b0;
|
||||
buf_id <= 4'b0;
|
||||
buf_addr <= 32'b0;
|
||||
buf_len <= 8'b0;
|
||||
buf_size <= 3'b0;
|
||||
end
|
||||
else
|
||||
if(ar_enter | aw_enter)
|
||||
begin
|
||||
R_or_W <= ar_enter;
|
||||
buf_id <= ar_enter ? arid : awid ;
|
||||
buf_addr <= ar_enter ? araddr : awaddr ;
|
||||
buf_len <= ar_enter ? arlen : awlen ;
|
||||
buf_size <= ar_enter ? arsize : awsize ;
|
||||
end
|
||||
end
|
||||
|
||||
reg conf_wready_reg;
|
||||
assign wready = conf_wready_reg;
|
||||
always@(posedge aclk)
|
||||
begin
|
||||
if (~aresetn ) conf_wready_reg <= 1'b0;
|
||||
else if(aw_enter ) conf_wready_reg <= 1'b1;
|
||||
else if(w_enter & wlast) conf_wready_reg <= 1'b0;
|
||||
end
|
||||
|
||||
// read data has one cycle delay
|
||||
reg [31:0] conf_rdata_reg;
|
||||
reg conf_rvalid_reg;
|
||||
reg conf_rlast_reg;
|
||||
assign rdata = conf_rdata_reg;
|
||||
assign rvalid = conf_rvalid_reg;
|
||||
assign rlast = conf_rlast_reg;
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(~aresetn)
|
||||
begin
|
||||
conf_rdata_reg <= 32'd0;
|
||||
conf_rvalid_reg <= 1'd0;
|
||||
conf_rlast_reg <= 1'd0;
|
||||
end
|
||||
else if(busy & R_or_W & !r_retire)
|
||||
begin
|
||||
conf_rvalid_reg <= 1'd1;
|
||||
conf_rlast_reg <= 1'd1;
|
||||
case (buf_addr[15:0])
|
||||
`CR0_ADDR : conf_rdata_reg <= cr0 ;
|
||||
`CR1_ADDR : conf_rdata_reg <= cr1 ;
|
||||
`CR2_ADDR : conf_rdata_reg <= cr2 ;
|
||||
`CR3_ADDR : conf_rdata_reg <= cr3 ;
|
||||
`CR4_ADDR : conf_rdata_reg <= cr4 ;
|
||||
`CR5_ADDR : conf_rdata_reg <= cr5 ;
|
||||
`CR6_ADDR : conf_rdata_reg <= cr6 ;
|
||||
`CR7_ADDR : conf_rdata_reg <= cr7 ;
|
||||
`LED_ADDR : conf_rdata_reg <= led_data ;
|
||||
`LED_RG0_ADDR : conf_rdata_reg <= led_rg0_data ;
|
||||
`LED_RG1_ADDR : conf_rdata_reg <= led_rg1_data ;
|
||||
`NUM_ADDR : conf_rdata_reg <= num_data ;
|
||||
`SWITCH_ADDR : conf_rdata_reg <= switch_data ;
|
||||
`BTN_KEY_ADDR : conf_rdata_reg <= btn_key_data ;
|
||||
`BTN_STEP_ADDR : conf_rdata_reg <= btn_step_data;
|
||||
`SW_INTER_ADDR : conf_rdata_reg <= sw_inter_data;
|
||||
`TIMER_ADDR : conf_rdata_reg <= timer_r2 ;
|
||||
`SIMU_FLAG_ADDR: conf_rdata_reg <= simu_flag ;
|
||||
`IO_SIMU_ADDR : conf_rdata_reg <= io_simu ;
|
||||
`VIRTUAL_UART_ADDR : conf_rdata_reg <= {24'd0,virtual_uart_data} ;
|
||||
`OPEN_TRACE_ADDR : conf_rdata_reg <= {31'd0,open_trace} ;
|
||||
`NUM_MONITOR_ADDR: conf_rdata_reg <= {31'd0,num_monitor} ;
|
||||
default : conf_rdata_reg <= 32'd0;
|
||||
endcase
|
||||
end
|
||||
else if(r_retire)
|
||||
begin
|
||||
conf_rvalid_reg <= 1'b0;
|
||||
end
|
||||
end
|
||||
|
||||
//conf write, only support a word write
|
||||
wire conf_we;
|
||||
wire [31:0] conf_addr;
|
||||
wire [31:0] conf_wdata;
|
||||
assign conf_we = w_enter;
|
||||
assign conf_addr = buf_addr;
|
||||
assign conf_wdata= wdata;
|
||||
|
||||
reg conf_bvalid_reg;
|
||||
assign bvalid = conf_bvalid_reg;
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if (~aresetn) conf_bvalid_reg <= 1'b0;
|
||||
else if(w_enter ) conf_bvalid_reg <= 1'b1;
|
||||
else if(b_retire) conf_bvalid_reg <= 1'b0;
|
||||
end
|
||||
|
||||
assign rid = buf_id;
|
||||
assign bid = buf_id;
|
||||
assign bresp = 2'b0;
|
||||
assign rresp = 2'b0;
|
||||
//---------------------------{axi interface}end--------------------------//
|
||||
|
||||
//-------------------------{confreg register}begin-----------------------//
|
||||
wire write_cr0 = conf_we & (conf_addr[15:0]==`CR0_ADDR);
|
||||
wire write_cr1 = conf_we & (conf_addr[15:0]==`CR1_ADDR);
|
||||
wire write_cr2 = conf_we & (conf_addr[15:0]==`CR2_ADDR);
|
||||
wire write_cr3 = conf_we & (conf_addr[15:0]==`CR3_ADDR);
|
||||
wire write_cr4 = conf_we & (conf_addr[15:0]==`CR4_ADDR);
|
||||
wire write_cr5 = conf_we & (conf_addr[15:0]==`CR5_ADDR);
|
||||
wire write_cr6 = conf_we & (conf_addr[15:0]==`CR6_ADDR);
|
||||
wire write_cr7 = conf_we & (conf_addr[15:0]==`CR7_ADDR);
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
cr0 <= !aresetn ? 32'd0 :
|
||||
write_cr0 ? conf_wdata : cr0;
|
||||
cr1 <= !aresetn ? 32'd0 :
|
||||
write_cr1 ? conf_wdata : cr1;
|
||||
cr2 <= !aresetn ? 32'd0 :
|
||||
write_cr2 ? conf_wdata : cr2;
|
||||
cr3 <= !aresetn ? 32'd0 :
|
||||
write_cr3 ? conf_wdata : cr3;
|
||||
cr4 <= !aresetn ? 32'd0 :
|
||||
write_cr4 ? conf_wdata : cr4;
|
||||
cr5 <= !aresetn ? 32'd0 :
|
||||
write_cr5 ? conf_wdata : cr5;
|
||||
cr6 <= !aresetn ? 32'd0 :
|
||||
write_cr6 ? conf_wdata : cr6;
|
||||
cr7 <= !aresetn ? 32'd0 :
|
||||
write_cr7 ? conf_wdata : cr7;
|
||||
end
|
||||
//--------------------------{confreg register}end------------------------//
|
||||
|
||||
//-------------------------------{timer}begin----------------------------//
|
||||
reg write_timer_begin,write_timer_begin_r1, write_timer_begin_r2,write_timer_begin_r3;
|
||||
reg write_timer_end_r1, write_timer_end_r2;
|
||||
reg [31:0] conf_wdata_r, conf_wdata_r1,conf_wdata_r2;
|
||||
|
||||
reg [31:0] timer_r1;
|
||||
reg [31:0] timer;
|
||||
|
||||
wire write_timer = conf_we & (conf_addr[15:0]==`TIMER_ADDR);
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if (!aresetn)
|
||||
begin
|
||||
write_timer_begin <= 1'b0;
|
||||
end
|
||||
else if (write_timer)
|
||||
begin
|
||||
write_timer_begin <= 1'b1;
|
||||
conf_wdata_r <= conf_wdata;
|
||||
end
|
||||
else if (write_timer_end_r2)
|
||||
begin
|
||||
write_timer_begin <= 1'b0;
|
||||
end
|
||||
|
||||
write_timer_end_r1 <= write_timer_begin_r2;
|
||||
write_timer_end_r2 <= write_timer_end_r1;
|
||||
end
|
||||
|
||||
always @(posedge timer_clk)
|
||||
begin
|
||||
write_timer_begin_r1 <= write_timer_begin;
|
||||
write_timer_begin_r2 <= write_timer_begin_r1;
|
||||
write_timer_begin_r3 <= write_timer_begin_r2;
|
||||
conf_wdata_r1 <= conf_wdata_r;
|
||||
conf_wdata_r2 <= conf_wdata_r1;
|
||||
|
||||
if(!aresetn)
|
||||
begin
|
||||
timer <= 32'd0;
|
||||
end
|
||||
else if (write_timer_begin_r2 && !write_timer_begin_r3)
|
||||
begin
|
||||
timer <= conf_wdata_r2[31:0];
|
||||
end
|
||||
else
|
||||
begin
|
||||
timer <= timer + 1'b1;
|
||||
end
|
||||
end
|
||||
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
timer_r1 <= timer;
|
||||
timer_r2 <= timer_r1;
|
||||
end
|
||||
//--------------------------------{timer}end-----------------------------//
|
||||
|
||||
//--------------------------{simulation flag}begin-----------------------//
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
simu_flag <= {32{SIMULATION}};
|
||||
end
|
||||
end
|
||||
//---------------------------{simulation flag}end------------------------//
|
||||
|
||||
//---------------------------{io simulation}begin------------------------//
|
||||
wire write_io_simu = conf_we & (conf_addr[15:0]==`IO_SIMU_ADDR);
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
io_simu <= 32'd0;
|
||||
end
|
||||
else if(write_io_simu)
|
||||
begin
|
||||
io_simu <= {conf_wdata[15:0],conf_wdata[31:16]};
|
||||
end
|
||||
end
|
||||
//----------------------------{io simulation}end-------------------------//
|
||||
|
||||
//-----------------------------{open trace}begin-------------------------//
|
||||
wire write_open_trace = conf_we & (conf_addr[15:0]==`OPEN_TRACE_ADDR);
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
open_trace <= 1'b1;
|
||||
end
|
||||
else if(write_open_trace)
|
||||
begin
|
||||
open_trace <= |conf_wdata;
|
||||
end
|
||||
end
|
||||
//-----------------------------{open trace}end---------------------------//
|
||||
|
||||
//----------------------------{num monitor}begin-------------------------//
|
||||
wire write_num_monitor = conf_we & (conf_addr[15:0]==`NUM_MONITOR_ADDR);
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
num_monitor <= 1'b1;
|
||||
end
|
||||
else if(write_num_monitor)
|
||||
begin
|
||||
num_monitor <= conf_wdata[0];
|
||||
end
|
||||
end
|
||||
//----------------------------{num monitor}end---------------------------//
|
||||
|
||||
//---------------------------{virtual uart}begin-------------------------//
|
||||
wire [7:0] write_uart_data;
|
||||
wire write_uart_valid = conf_we & (conf_addr[15:0]==`VIRTUAL_UART_ADDR);
|
||||
assign write_uart_data = conf_wdata[7:0];
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
virtual_uart_data <= 8'd0;
|
||||
end
|
||||
else if(write_uart_valid)
|
||||
begin
|
||||
virtual_uart_data <= write_uart_data;
|
||||
end
|
||||
end
|
||||
//----------------------------{virtual uart}end--------------------------//
|
||||
|
||||
//--------------------------------{led}begin-----------------------------//
|
||||
//led display
|
||||
//led_data[31:0]
|
||||
wire write_led = conf_we & (conf_addr[15:0]==`LED_ADDR);
|
||||
|
||||
assign led = led_data[15:0];
|
||||
|
||||
assign switch_led = {{2{switch[7]}},{2{switch[6]}},{2{switch[5]}},{2{switch[4]}},
|
||||
{2{switch[3]}},{2{switch[2]}},{2{switch[1]}},{2{switch[0]}}};
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
led_data <= {16'h0,switch_led};
|
||||
end
|
||||
else if(write_led)
|
||||
begin
|
||||
led_data <= conf_wdata[31:0];
|
||||
end
|
||||
end
|
||||
//---------------------------------{led}end------------------------------//
|
||||
|
||||
//-------------------------------{switch}begin---------------------------//
|
||||
//switch data
|
||||
//switch_data[7:0]
|
||||
assign switch_data = {24'd0,switch};
|
||||
assign sw_inter_data = {16'd0,
|
||||
switch[7],1'b0,switch[6],1'b0,
|
||||
switch[5],1'b0,switch[4],1'b0,
|
||||
switch[3],1'b0,switch[2],1'b0,
|
||||
switch[1],1'b0,switch[0],1'b0};
|
||||
//--------------------------------{switch}end----------------------------//
|
||||
|
||||
//------------------------------{btn key}begin---------------------------//
|
||||
//btn key data
|
||||
reg [15:0] btn_key_r;
|
||||
assign btn_key_data = {16'd0,btn_key_r};
|
||||
|
||||
//state machine
|
||||
reg [2:0] state;
|
||||
wire [2:0] next_state;
|
||||
|
||||
//eliminate jitter
|
||||
reg key_flag;
|
||||
reg [19:0] key_count;
|
||||
reg [ 3:0] state_count;
|
||||
wire key_start = (state==3'b000) && !(&btn_key_row);
|
||||
wire key_end = (state==3'b111) && (&btn_key_row);
|
||||
wire key_sample= key_count[19];
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
key_flag <= 1'd0;
|
||||
end
|
||||
else if (key_sample && state_count[3])
|
||||
begin
|
||||
key_flag <= 1'b0;
|
||||
end
|
||||
else if( key_start || key_end )
|
||||
begin
|
||||
key_flag <= 1'b1;
|
||||
end
|
||||
|
||||
if(!aresetn || !key_flag)
|
||||
begin
|
||||
key_count <= 20'd0;
|
||||
end
|
||||
else
|
||||
begin
|
||||
key_count <= key_count + 1'b1;
|
||||
end
|
||||
end
|
||||
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn || state_count[3])
|
||||
begin
|
||||
state_count <= 4'd0;
|
||||
end
|
||||
else
|
||||
begin
|
||||
state_count <= state_count + 1'b1;
|
||||
end
|
||||
end
|
||||
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
state <= 3'b000;
|
||||
end
|
||||
else if (state_count[3])
|
||||
begin
|
||||
state <= next_state;
|
||||
end
|
||||
end
|
||||
|
||||
assign next_state = (state == 3'b000) ? ( (key_sample && !(&btn_key_row)) ? 3'b001 : 3'b000 ) :
|
||||
(state == 3'b001) ? ( !(&btn_key_row) ? 3'b111 : 3'b010 ) :
|
||||
(state == 3'b010) ? ( !(&btn_key_row) ? 3'b111 : 3'b011 ) :
|
||||
(state == 3'b011) ? ( !(&btn_key_row) ? 3'b111 : 3'b100 ) :
|
||||
(state == 3'b100) ? ( !(&btn_key_row) ? 3'b111 : 3'b000 ) :
|
||||
(state == 3'b111) ? ( (key_sample && (&btn_key_row)) ? 3'b000 : 3'b111 ) :
|
||||
3'b000;
|
||||
assign btn_key_col = (state == 3'b000) ? 4'b0000:
|
||||
(state == 3'b001) ? 4'b1110:
|
||||
(state == 3'b010) ? 4'b1101:
|
||||
(state == 3'b011) ? 4'b1011:
|
||||
(state == 3'b100) ? 4'b0111:
|
||||
4'b0000;
|
||||
wire [15:0] btn_key_tmp;
|
||||
always @(posedge aclk) begin
|
||||
if(!aresetn) begin
|
||||
btn_key_r <= 16'd0;
|
||||
end
|
||||
else if(next_state==3'b000)
|
||||
begin
|
||||
btn_key_r <=16'd0;
|
||||
end
|
||||
else if(next_state == 3'b111 && state != 3'b111) begin
|
||||
btn_key_r <= btn_key_tmp;
|
||||
end
|
||||
end
|
||||
|
||||
assign btn_key_tmp = (state == 3'b001)&(btn_key_row == 4'b1110) ? 16'h0001:
|
||||
(state == 3'b001)&(btn_key_row == 4'b1101) ? 16'h0010:
|
||||
(state == 3'b001)&(btn_key_row == 4'b1011) ? 16'h0100:
|
||||
(state == 3'b001)&(btn_key_row == 4'b0111) ? 16'h1000:
|
||||
(state == 3'b010)&(btn_key_row == 4'b1110) ? 16'h0002:
|
||||
(state == 3'b010)&(btn_key_row == 4'b1101) ? 16'h0020:
|
||||
(state == 3'b010)&(btn_key_row == 4'b1011) ? 16'h0200:
|
||||
(state == 3'b010)&(btn_key_row == 4'b0111) ? 16'h2000:
|
||||
(state == 3'b011)&(btn_key_row == 4'b1110) ? 16'h0004:
|
||||
(state == 3'b011)&(btn_key_row == 4'b1101) ? 16'h0040:
|
||||
(state == 3'b011)&(btn_key_row == 4'b1011) ? 16'h0400:
|
||||
(state == 3'b011)&(btn_key_row == 4'b0111) ? 16'h4000:
|
||||
(state == 3'b100)&(btn_key_row == 4'b1110) ? 16'h0008:
|
||||
(state == 3'b100)&(btn_key_row == 4'b1101) ? 16'h0080:
|
||||
(state == 3'b100)&(btn_key_row == 4'b1011) ? 16'h0800:
|
||||
(state == 3'b100)&(btn_key_row == 4'b0111) ? 16'h8000:16'h0000;
|
||||
//-------------------------------{btn key}end----------------------------//
|
||||
|
||||
//-----------------------------{btn step}begin---------------------------//
|
||||
//btn step data
|
||||
reg btn_step0_r; //0:press
|
||||
reg btn_step1_r; //0:press
|
||||
assign btn_step_data = {30'd0,~btn_step0_r,~btn_step1_r}; //1:press
|
||||
|
||||
//-----step0
|
||||
//eliminate jitter
|
||||
reg step0_flag;
|
||||
reg [19:0] step0_count;
|
||||
wire step0_start = btn_step0_r && !btn_step[0];
|
||||
wire step0_end = !btn_step0_r && btn_step[0];
|
||||
wire step0_sample= step0_count[19];
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
step0_flag <= 1'd0;
|
||||
end
|
||||
else if (step0_sample)
|
||||
begin
|
||||
step0_flag <= 1'b0;
|
||||
end
|
||||
else if( step0_start || step0_end )
|
||||
begin
|
||||
step0_flag <= 1'b1;
|
||||
end
|
||||
|
||||
if(!aresetn || !step0_flag)
|
||||
begin
|
||||
step0_count <= 20'd0;
|
||||
end
|
||||
else
|
||||
begin
|
||||
step0_count <= step0_count + 1'b1;
|
||||
end
|
||||
|
||||
if(!aresetn)
|
||||
begin
|
||||
btn_step0_r <= 1'b1;
|
||||
end
|
||||
else if(step0_sample)
|
||||
begin
|
||||
btn_step0_r <= btn_step[0];
|
||||
end
|
||||
end
|
||||
|
||||
//-----step1
|
||||
//eliminate jitter
|
||||
reg step1_flag;
|
||||
reg [19:0] step1_count;
|
||||
wire step1_start = btn_step1_r && !btn_step[1];
|
||||
wire step1_end = !btn_step1_r && btn_step[1];
|
||||
wire step1_sample= step1_count[19];
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
step1_flag <= 1'd0;
|
||||
end
|
||||
else if (step1_sample)
|
||||
begin
|
||||
step1_flag <= 1'b0;
|
||||
end
|
||||
else if( step1_start || step1_end )
|
||||
begin
|
||||
step1_flag <= 1'b1;
|
||||
end
|
||||
|
||||
if(!aresetn || !step1_flag)
|
||||
begin
|
||||
step1_count <= 20'd0;
|
||||
end
|
||||
else
|
||||
begin
|
||||
step1_count <= step1_count + 1'b1;
|
||||
end
|
||||
|
||||
if(!aresetn)
|
||||
begin
|
||||
btn_step1_r <= 1'b1;
|
||||
end
|
||||
else if(step1_sample)
|
||||
begin
|
||||
btn_step1_r <= btn_step[1];
|
||||
end
|
||||
end
|
||||
//------------------------------{btn step}end----------------------------//
|
||||
|
||||
//-------------------------------{led rg}begin---------------------------//
|
||||
//led_rg0_data[31:0] led_rg0_data[31:0]
|
||||
//bfd0_f010 bfd0_f014
|
||||
wire write_led_rg0 = conf_we & (conf_addr[15:0]==`LED_RG0_ADDR);
|
||||
wire write_led_rg1 = conf_we & (conf_addr[15:0]==`LED_RG1_ADDR);
|
||||
assign led_rg0 = led_rg0_data[1:0];
|
||||
assign led_rg1 = led_rg1_data[1:0];
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
led_rg0_data <= 32'h0;
|
||||
end
|
||||
else if(write_led_rg0)
|
||||
begin
|
||||
led_rg0_data <= conf_wdata[31:0];
|
||||
end
|
||||
|
||||
if(!aresetn)
|
||||
begin
|
||||
led_rg1_data <= 32'h0;
|
||||
end
|
||||
else if(write_led_rg1)
|
||||
begin
|
||||
led_rg1_data <= conf_wdata[31:0];
|
||||
end
|
||||
end
|
||||
//--------------------------------{led rg}end----------------------------//
|
||||
|
||||
//---------------------------{digital number}begin-----------------------//
|
||||
//digital number display
|
||||
//num_data[31:0]
|
||||
wire write_num = conf_we & (conf_addr[15:0]==`NUM_ADDR);
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
num_data <= 32'h0;
|
||||
end
|
||||
else if(write_num)
|
||||
begin
|
||||
num_data <= conf_wdata[31:0];
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
reg [19:0] count;
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if(!aresetn)
|
||||
begin
|
||||
count <= 20'd0;
|
||||
end
|
||||
else
|
||||
begin
|
||||
count <= count + 1'b1;
|
||||
end
|
||||
end
|
||||
//scan data
|
||||
reg [3:0] scan_data;
|
||||
always @ ( posedge aclk )
|
||||
begin
|
||||
if ( !aresetn )
|
||||
begin
|
||||
scan_data <= 32'd0;
|
||||
num_csn <= 8'b1111_1111;
|
||||
end
|
||||
else
|
||||
begin
|
||||
case(count[19:17])
|
||||
3'b000 : scan_data <= num_data[31:28];
|
||||
3'b001 : scan_data <= num_data[27:24];
|
||||
3'b010 : scan_data <= num_data[23:20];
|
||||
3'b011 : scan_data <= num_data[19:16];
|
||||
3'b100 : scan_data <= num_data[15:12];
|
||||
3'b101 : scan_data <= num_data[11: 8];
|
||||
3'b110 : scan_data <= num_data[7 : 4];
|
||||
3'b111 : scan_data <= num_data[3 : 0];
|
||||
endcase
|
||||
|
||||
case(count[19:17])
|
||||
3'b000 : num_csn <= 8'b0111_1111;
|
||||
3'b001 : num_csn <= 8'b1011_1111;
|
||||
3'b010 : num_csn <= 8'b1101_1111;
|
||||
3'b011 : num_csn <= 8'b1110_1111;
|
||||
3'b100 : num_csn <= 8'b1111_0111;
|
||||
3'b101 : num_csn <= 8'b1111_1011;
|
||||
3'b110 : num_csn <= 8'b1111_1101;
|
||||
3'b111 : num_csn <= 8'b1111_1110;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
always @(posedge aclk)
|
||||
begin
|
||||
if ( !aresetn )
|
||||
begin
|
||||
num_a_g <= 7'b0000000;
|
||||
end
|
||||
else
|
||||
begin
|
||||
case ( scan_data )
|
||||
4'd0 : num_a_g <= 7'b1111110; //0
|
||||
4'd1 : num_a_g <= 7'b0110000; //1
|
||||
4'd2 : num_a_g <= 7'b1101101; //2
|
||||
4'd3 : num_a_g <= 7'b1111001; //3
|
||||
4'd4 : num_a_g <= 7'b0110011; //4
|
||||
4'd5 : num_a_g <= 7'b1011011; //5
|
||||
4'd6 : num_a_g <= 7'b1011111; //6
|
||||
4'd7 : num_a_g <= 7'b1110000; //7
|
||||
4'd8 : num_a_g <= 7'b1111111; //8
|
||||
4'd9 : num_a_g <= 7'b1111011; //9
|
||||
4'd10: num_a_g <= 7'b1110111; //a
|
||||
4'd11: num_a_g <= 7'b0011111; //b
|
||||
4'd12: num_a_g <= 7'b1001110; //c
|
||||
4'd13: num_a_g <= 7'b0111101; //d
|
||||
4'd14: num_a_g <= 7'b1001111; //e
|
||||
4'd15: num_a_g <= 7'b1000111; //f
|
||||
endcase
|
||||
end
|
||||
end
|
||||
//----------------------------{digital number}end------------------------//
|
||||
endmodule
|
@ -1,184 +0,0 @@
|
||||
NET "ddr3_dm[0]" LOC = "AF15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[0]" LOC = "AF14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[1]" LOC = "AF17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[2]" LOC = "AE15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[3]" LOC = "AE17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[4]" LOC = "AD16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[5]" LOC = "AF20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[6]" LOC = "AD15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[7]" LOC = "AF19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[0]" LOC = "AF18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[0]" LOC = "AE18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[0]" LOC = "AF15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[1]" LOC = "AA15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[0]" LOC = "AF14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[10]" LOC = "AA18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[11]" LOC = "AA14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[12]" LOC = "AB16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[13]" LOC = "AB14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[14]" LOC = "AA17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[15]" LOC = "AD14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[1]" LOC = "AF17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[2]" LOC = "AE15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[3]" LOC = "AE17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[4]" LOC = "AD16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[5]" LOC = "AF20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[6]" LOC = "AD15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[7]" LOC = "AF19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[8]" LOC = "AB15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[9]" LOC = "AC14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[0]" LOC = "AF18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[1]" LOC = "Y16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[0]" LOC = "AE18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[1]" LOC = "Y15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[0]" LOC = "AF15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[1]" LOC = "AA15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[2]" LOC = "AB19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[3]" LOC = "V14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[0]" LOC = "AF14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[10]" LOC = "AA18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[11]" LOC = "AA14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[12]" LOC = "AB16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[13]" LOC = "AB14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[14]" LOC = "AA17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[15]" LOC = "AD14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[16]" LOC = "AD19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[17]" LOC = "AC19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[18]" LOC = "AD18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[19]" LOC = "AA19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[1]" LOC = "AF17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[20]" LOC = "AC17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[21]" LOC = "AA20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[22]" LOC = "AC18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[23]" LOC = "AB17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[2]" LOC = "AE15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[3]" LOC = "AE17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[4]" LOC = "AD16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[5]" LOC = "AF20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[6]" LOC = "AD15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[7]" LOC = "AF19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[8]" LOC = "AB15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[9]" LOC = "AC14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[0]" LOC = "AF18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[1]" LOC = "Y16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[2]" LOC = "AE20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[3]" LOC = "W19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[0]" LOC = "AE18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[1]" LOC = "Y15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[2]" LOC = "AD20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[3]" LOC = "W18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[0]" LOC = "AF15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[1]" LOC = "AA15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[2]" LOC = "AB19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[3]" LOC = "V14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[0]" LOC = "AF14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[10]" LOC = "AA18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[11]" LOC = "AA14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[12]" LOC = "AB16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[13]" LOC = "AB14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[14]" LOC = "AA17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[15]" LOC = "AD14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[16]" LOC = "AD19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[17]" LOC = "AC19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[18]" LOC = "AD18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[19]" LOC = "AA19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[1]" LOC = "AF17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[20]" LOC = "AC17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[21]" LOC = "AA20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[22]" LOC = "AC18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[23]" LOC = "AB17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[24]" LOC = "Y17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[25]" LOC = "V16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[26]" LOC = "V17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[27]" LOC = "W14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[28]" LOC = "V18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[29]" LOC = "W15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[2]" LOC = "AE15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[30]" LOC = "V19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[31]" LOC = "W16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[3]" LOC = "AE17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[4]" LOC = "AD16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[5]" LOC = "AF20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[6]" LOC = "AD15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[7]" LOC = "AF19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[8]" LOC = "AB15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[9]" LOC = "AC14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[0]" LOC = "AF18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[1]" LOC = "Y16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[2]" LOC = "AE20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[3]" LOC = "W19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[0]" LOC = "AE18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[1]" LOC = "Y15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[2]" LOC = "AD20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[3]" LOC = "W18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[0]" LOC = "AF8" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[10]" LOC = "AD9" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[11]" LOC = "AA10" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[12]" LOC = "AF9" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[13]" LOC = "V7" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[14]" LOC = "Y8" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[1]" LOC = "AB10" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[2]" LOC = "V9" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[3]" LOC = "Y7" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[4]" LOC = "AC9" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[5]" LOC = "W8" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[6]" LOC = "Y11" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[7]" LOC = "V8" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[8]" LOC = "AA8" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_addr[9]" LOC = "AC11" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_ba[0]" LOC = "AA7" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_ba[1]" LOC = "AB11" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_ba[2]" LOC = "AF7" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_cas_n" LOC = "W10" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_ck_n[0]" LOC = "AB9" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_ck_p[0]" LOC = "AA9" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_cke[0]" LOC = "AF10" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_cs_n[0]" LOC = "AB7" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[0]" LOC = "AF15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[1]" LOC = "AA15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[2]" LOC = "AB19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dm[3]" LOC = "V14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[0]" LOC = "AF14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[10]" LOC = "AA18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[11]" LOC = "AA14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[12]" LOC = "AB16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[13]" LOC = "AB14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[14]" LOC = "AA17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[15]" LOC = "AD14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[16]" LOC = "AD19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[17]" LOC = "AC19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[18]" LOC = "AD18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[19]" LOC = "AA19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[1]" LOC = "AF17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[20]" LOC = "AC17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[21]" LOC = "AA20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[22]" LOC = "AC18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[23]" LOC = "AB17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[24]" LOC = "Y17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[25]" LOC = "V16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[26]" LOC = "V17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[27]" LOC = "W14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[28]" LOC = "V18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[29]" LOC = "W15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[2]" LOC = "AE15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[30]" LOC = "V19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[31]" LOC = "W16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[3]" LOC = "AE17" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[4]" LOC = "AD16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[5]" LOC = "AF20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[6]" LOC = "AD15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[7]" LOC = "AF19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[8]" LOC = "AB15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dq[9]" LOC = "AC14" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[0]" LOC = "AF18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[1]" LOC = "Y16" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[2]" LOC = "AE20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_n[3]" LOC = "W19" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[0]" LOC = "AE18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[1]" LOC = "Y15" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[2]" LOC = "AD20" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_dqs_p[3]" LOC = "W18" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_odt[0]" LOC = "AC8" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_ras_n" LOC = "AD8" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_reset_n" LOC = "Y10" | | VCCAUX_IO = HIGH ;
|
||||
NET "ddr3_we_n" LOC = "W9" | | VCCAUX_IO = HIGH ;
|
@ -1,91 +0,0 @@
|
||||
module mycpu_top_verilog (
|
||||
input wire [5:0] ext_int, //high active
|
||||
|
||||
input wire aclk,
|
||||
input wire aresetn, //low active
|
||||
|
||||
output wire [ 3:0] arid,
|
||||
output wire [31:0] araddr,
|
||||
output wire [ 3:0] arlen,
|
||||
output wire [ 2:0] arsize,
|
||||
output wire [ 1:0] arburst,
|
||||
output wire [ 1:0] arlock,
|
||||
output wire [ 3:0] arcache,
|
||||
output wire [ 2:0] arprot,
|
||||
output wire arvalid,
|
||||
input wire arready,
|
||||
|
||||
input wire [ 3:0] rid,
|
||||
input wire [31:0] rdata,
|
||||
input wire [ 1:0] rresp,
|
||||
input wire rlast,
|
||||
input wire rvalid,
|
||||
output wire rready,
|
||||
|
||||
output wire [ 3:0] awid,
|
||||
output wire [31:0] awaddr,
|
||||
output wire [ 3:0] awlen,
|
||||
output wire [ 2:0] awsize,
|
||||
output wire [ 1:0] awburst,
|
||||
output wire [ 1:0] awlock,
|
||||
output wire [ 3:0] awcache,
|
||||
output wire [ 2:0] awprot,
|
||||
output wire awvalid,
|
||||
input wire awready,
|
||||
|
||||
output wire [ 3:0] wid,
|
||||
output wire [31:0] wdata,
|
||||
output wire [ 3:0] wstrb,
|
||||
output wire wlast,
|
||||
output wire wvalid,
|
||||
input wire wready,
|
||||
|
||||
input wire [3:0] bid,
|
||||
input wire [1:0] bresp,
|
||||
input wire bvalid,
|
||||
output wire bready
|
||||
);
|
||||
|
||||
mycpu_top cpu(
|
||||
.ext_int(ext_int),
|
||||
.aclk (aclk),
|
||||
.aresetn(aresetn),
|
||||
.arid (arid),
|
||||
.araddr (araddr),
|
||||
.arlen (arlen),
|
||||
.arsize (arsize),
|
||||
.arburst(arburst),
|
||||
.arlock (arlock),
|
||||
.arcache(arcache),
|
||||
.arprot (arprot),
|
||||
.arvalid(arvalid),
|
||||
.arready(arready),
|
||||
.rid (rid),
|
||||
.rdata (rdata),
|
||||
.rresp (rresp),
|
||||
.rlast (rlast),
|
||||
.rvalid (rvalid),
|
||||
.rready (rready),
|
||||
.awid (awid),
|
||||
.awaddr (awaddr),
|
||||
.awlen (awlen),
|
||||
.awsize (awsize),
|
||||
.awburst(awburst),
|
||||
.awlock (awlock),
|
||||
.awcache(awcache),
|
||||
.awprot (awprot),
|
||||
.awvalid(awvalid),
|
||||
.awready(awready),
|
||||
.wid (wid),
|
||||
.wdata (wdata),
|
||||
.wstrb (wstrb),
|
||||
.wlast (wlast),
|
||||
.wvalid (wvalid),
|
||||
.wready (wready),
|
||||
.bid (bid),
|
||||
.bresp (bresp),
|
||||
.bvalid (bvalid),
|
||||
.bready (bready)
|
||||
);
|
||||
|
||||
endmodule
|
Loading…
Reference in New Issue
Block a user