📄 cpu_0.v
字号:
// .address_b (rdaddress),
// .clock0 (wrclock),
// .clock1 (rdclock),
// .clocken0 (wrclken),
// .clocken1 (rdclken),
// .data_a (data),
// .q_b (ram_q),
// .wren_a (wren)
// );
//
// defparam the_altsyncram.address_reg_b = "CLOCK1",
// the_altsyncram.init_file = lpm_file,
// the_altsyncram.maximum_depth = 0,
// the_altsyncram.numwords_a = 32,
// the_altsyncram.numwords_b = 32,
// the_altsyncram.operation_mode = "DUAL_PORT",
// the_altsyncram.outdata_reg_b = "UNREGISTERED",
// the_altsyncram.ram_block_type = "AUTO",
// the_altsyncram.read_during_write_mode_mixed_ports = "OLD_DATA",
// the_altsyncram.width_a = 32,
// the_altsyncram.width_b = 32,
// the_altsyncram.widthad_a = 5,
// the_altsyncram.widthad_b = 5;
//
//synthesis read_comments_as_HDL off
endmodule
// turn off superfluous verilog processor warnings
// altera message_level Level1
// altera message_off 10034 10035 10036 10037 10230 10240 10030
module cpu_0_register_bank_b_module (
// inputs:
data,
rdaddress,
rdclken,
rdclock,
wraddress,
wrclock,
wren,
// outputs:
q
)
;
parameter lpm_file = "UNUSED";
output [ 31: 0] q;
input [ 31: 0] data;
input [ 4: 0] rdaddress;
input rdclken;
input rdclock;
input [ 4: 0] wraddress;
input wrclock;
input wren;
wire [ 31: 0] q;
wire [ 31: 0] ram_q;
wire wrclken;
assign wrclken = 1'b1;
assign q = ram_q;
//synthesis translate_off
//////////////// SIMULATION-ONLY CONTENTS
altsyncram the_altsyncram
(
.address_a (wraddress),
.address_b (rdaddress),
.clock0 (wrclock),
.clock1 (rdclock),
.clocken0 (wrclken),
.clocken1 (rdclken),
.data_a (data),
.q_b (ram_q),
.wren_a (wren)
);
defparam the_altsyncram.address_reg_b = "CLOCK1",
the_altsyncram.init_file = lpm_file,
the_altsyncram.maximum_depth = 0,
the_altsyncram.numwords_a = 32,
the_altsyncram.numwords_b = 32,
the_altsyncram.operation_mode = "DUAL_PORT",
the_altsyncram.outdata_reg_b = "UNREGISTERED",
the_altsyncram.ram_block_type = "AUTO",
the_altsyncram.read_during_write_mode_mixed_ports = "OLD_DATA",
the_altsyncram.width_a = 32,
the_altsyncram.width_b = 32,
the_altsyncram.widthad_a = 5,
the_altsyncram.widthad_b = 5;
//////////////// END SIMULATION-ONLY CONTENTS
//synthesis translate_on
//synthesis read_comments_as_HDL on
// altsyncram the_altsyncram
// (
// .address_a (wraddress),
// .address_b (rdaddress),
// .clock0 (wrclock),
// .clock1 (rdclock),
// .clocken0 (wrclken),
// .clocken1 (rdclken),
// .data_a (data),
// .q_b (ram_q),
// .wren_a (wren)
// );
//
// defparam the_altsyncram.address_reg_b = "CLOCK1",
// the_altsyncram.init_file = lpm_file,
// the_altsyncram.maximum_depth = 0,
// the_altsyncram.numwords_a = 32,
// the_altsyncram.numwords_b = 32,
// the_altsyncram.operation_mode = "DUAL_PORT",
// the_altsyncram.outdata_reg_b = "UNREGISTERED",
// the_altsyncram.ram_block_type = "AUTO",
// the_altsyncram.read_during_write_mode_mixed_ports = "OLD_DATA",
// the_altsyncram.width_a = 32,
// the_altsyncram.width_b = 32,
// the_altsyncram.widthad_a = 5,
// the_altsyncram.widthad_b = 5;
//
//synthesis read_comments_as_HDL off
endmodule
// turn off superfluous verilog processor warnings
// altera message_level Level1
// altera message_off 10034 10035 10036 10037 10230 10240 10030
module cpu_0_dc_tag_module (
// inputs:
address_a,
address_b,
clock0,
clock1,
clocken0,
clocken1,
data_b,
wren_b,
// outputs:
q_a,
q_b
)
;
parameter lpm_file = "UNUSED";
output [ 14: 0] q_a;
output [ 14: 0] q_b;
input [ 8: 0] address_a;
input [ 8: 0] address_b;
input clock0;
input clock1;
input clocken0;
input clocken1;
input [ 14: 0] data_b;
input wren_b;
wire [ 14: 0] data_a;
wire [ 14: 0] q_a;
wire [ 14: 0] q_b;
wire wren_a;
assign wren_a = 1'b0;
assign data_a = 15'b0;
altsyncram the_altsyncram
(
.address_a (address_a),
.address_b (address_b),
.clock0 (clock0),
.clock1 (clock1),
.clocken0 (clocken0),
.clocken1 (clocken1),
.data_a (data_a),
.data_b (data_b),
.q_a (q_a),
.q_b (q_b),
.wren_a (wren_a),
.wren_b (wren_b)
);
defparam the_altsyncram.address_aclr_a = "NONE",
the_altsyncram.address_aclr_b = "NONE",
the_altsyncram.address_reg_b = "CLOCK1",
the_altsyncram.indata_aclr_a = "NONE",
the_altsyncram.indata_aclr_b = "NONE",
the_altsyncram.init_file = lpm_file,
the_altsyncram.intended_device_family = "Stratix",
the_altsyncram.lpm_type = "altsyncram",
the_altsyncram.numwords_a = 512,
the_altsyncram.numwords_b = 512,
the_altsyncram.operation_mode = "BIDIR_DUAL_PORT",
the_altsyncram.outdata_aclr_a = "NONE",
the_altsyncram.outdata_aclr_b = "NONE",
the_altsyncram.outdata_reg_a = "UNREGISTERED",
the_altsyncram.outdata_reg_b = "UNREGISTERED",
the_altsyncram.ram_block_type = "AUTO",
the_altsyncram.read_during_write_mode_mixed_ports = "OLD_DATA",
the_altsyncram.width_a = 15,
the_altsyncram.width_b = 15,
the_altsyncram.widthad_a = 9,
the_altsyncram.widthad_b = 9,
the_altsyncram.wrcontrol_aclr_a = "NONE",
the_altsyncram.wrcontrol_aclr_b = "NONE";
endmodule
// turn off superfluous verilog processor warnings
// altera message_level Level1
// altera message_off 10034 10035 10036 10037 10230 10240 10030
module cpu_0_dc_data_module (
// inputs:
address_a,
address_b,
byteena_b,
clock0,
clock1,
clocken0,
clocken1,
data_b,
wren_b,
// outputs:
q_a,
q_b
)
;
parameter lpm_file = "UNUSED";
output [ 31: 0] q_a;
output [ 31: 0] q_b;
input [ 8: 0] address_a;
input [ 8: 0] address_b;
input [ 3: 0] byteena_b;
input clock0;
input clock1;
input clocken0;
input clocken1;
input [ 31: 0] data_b;
input wren_b;
wire [ 31: 0] data_a;
wire [ 31: 0] q_a;
wire [ 31: 0] q_b;
wire wren_a;
assign wren_a = 1'b0;
assign data_a = 32'b0;
altsyncram the_altsyncram
(
.address_a (address_a),
.address_b (address_b),
.byteena_b (byteena_b),
.clock0 (clock0),
.clock1 (clock1),
.clocken0 (clocken0),
.clocken1 (clocken1),
.data_a (data_a),
.data_b (data_b),
.q_a (q_a),
.q_b (q_b),
.wren_a (wren_a),
.wren_b (wren_b)
);
defparam the_altsyncram.address_aclr_a = "NONE",
the_altsyncram.address_aclr_b = "NONE",
the_altsyncram.address_reg_b = "CLOCK1",
the_altsyncram.indata_aclr_a = "NONE",
the_altsyncram.indata_aclr_b = "NONE",
the_altsyncram.init_file = lpm_file,
the_altsyncram.intended_device_family = "Stratix",
the_altsyncram.lpm_type = "altsyncram",
the_altsyncram.numwords_a = 512,
the_altsyncram.numwords_b = 512,
the_altsyncram.operation_mode = "BIDIR_DUAL_PORT",
the_altsyncram.outdata_aclr_a = "NONE",
the_altsyncram.outdata_aclr_b = "NONE",
the_altsyncram.outdata_reg_a = "UNREGISTERED",
the_altsyncram.outdata_reg_b = "UNREGISTERED",
the_altsyncram.ram_block_type = "AUTO",
the_altsyncram.read_during_write_mode_mixed_ports = "OLD_DATA",
the_altsyncram.width_a = 32,
the_altsyncram.width_b = 32,
the_altsyncram.width_byteena_b = 4,
the_altsyncram.widthad_a = 9,
the_altsyncram.widthad_b = 9,
the_altsyncram.wrcontrol_aclr_a = "NONE",
the_altsyncram.wrcontrol_aclr_b = "NONE";
endmodule
// turn off superfluous verilog processor warnings
// altera message_level Level1
// altera message_off 10034 10035 10036 10037 10230 10240 10030
module cpu_0_nios2_oci_debug (
// inputs:
clk,
dbrk_break,
debugreq,
hbreak_enabled,
jdo,
jrst_n,
ocireg_ers,
ocireg_mrs,
reset,
st_ready_test_idle,
take_action_ocimem_a,
take_action_ocireg,
xbrk_break,
// outputs:
debugack,
monitor_error,
monitor_go,
monitor_ready,
oci_hbreak_req,
resetlatch,
resetrequest
)
;
output debugack;
output monitor_error;
output monitor_go;
output monitor_ready;
output oci_hbreak_req;
output resetlatch;
output resetrequest;
input clk;
input dbrk_break;
input debugreq;
input hbreak_enabled;
input [ 37: 0] jdo;
input jrst_n;
input ocireg_ers;
input ocireg_mrs;
input reset;
input st_ready_test_idle;
input take_action_ocimem_a;
input take_action_ocireg;
input xbrk_break;
wire debugack;
reg jtag_break;
reg monitor_error;
reg monitor_go;
reg monitor_ready;
wire oci_hbreak_req;
reg probepresent;
reg resetlatch;
reg resetrequest;
always @(posedge clk or negedge jrst_n)
begin
if (jrst_n == 0)
begin
probepresent <= 1'b0;
resetrequest <= 1'b0;
jtag_break <= 1'b0;
end
else if (take_action_ocimem_a)
begin
resetrequest <= jdo[22];
jtag_break <= jdo[21] ? 1
: jdo[20] ? 0
: jtag_break;
probepresent <= jdo[19] ? 1
: jdo[18] ? 0
: probepresent;
resetlatch <= jdo[24] ? 0 : resetlatch;
end
else if (reset)
begin
jtag_break <= probepresent;
resetlatch <= 1;
end
else if (~debugack & debugreq & probepresent)
jtag_break <= 1'b1;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -