Skip to content

Commit 144f7bd

Browse files
Added 7seg. display, debugging functions and onchip ram
1 parent 487e8d2 commit 144f7bd

File tree

18 files changed

+2342
-240
lines changed

18 files changed

+2342
-240
lines changed

bin/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/*
2+
!.gitignore

fpga/Altera - Cyclone IV E - EP4CE10E22C8/fisc_core.bsf

Lines changed: 102 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ agreement for further details.
2121
*/
2222
(header "symbol" (version "1.1"))
2323
(symbol
24-
(rect 16 16 192 192)
25-
(text "fisc_core" (rect 5 0 42 12)(font "Arial" ))
26-
(text "inst" (rect 8 160 20 172)(font "Arial" ))
24+
(rect 16 16 256 320)
25+
(text "FISC_Core" (rect 5 0 52 12)(font "Arial" ))
26+
(text "inst" (rect 8 288 20 300)(font "Arial" ))
2727
(port
2828
(pt 0 32)
2929
(input)
@@ -60,55 +60,125 @@ agreement for further details.
6060
(line (pt 0 96)(pt 16 96)(line_width 1))
6161
)
6262
(port
63-
(pt 176 32)
63+
(pt 0 112)
64+
(input)
65+
(text "din_bus_a[63..0]" (rect 0 0 66 12)(font "Arial" ))
66+
(text "din_bus_a[63..0]" (rect 21 107 87 119)(font "Arial" ))
67+
(line (pt 0 112)(pt 16 112)(line_width 3))
68+
)
69+
(port
70+
(pt 0 128)
71+
(input)
72+
(text "din_bus_b[63..0]" (rect 0 0 66 12)(font "Arial" ))
73+
(text "din_bus_b[63..0]" (rect 21 123 87 135)(font "Arial" ))
74+
(line (pt 0 128)(pt 16 128)(line_width 3))
75+
)
76+
(port
77+
(pt 240 32)
6478
(output)
6579
(text "halt_n" (rect 0 0 23 12)(font "Arial" ))
66-
(text "halt_n" (rect 132 27 155 39)(font "Arial" ))
67-
(line (pt 176 32)(pt 160 32)(line_width 1))
80+
(text "halt_n" (rect 196 27 219 39)(font "Arial" ))
81+
(line (pt 240 32)(pt 224 32)(line_width 1))
6882
)
6983
(port
70-
(pt 176 48)
84+
(pt 240 48)
7185
(output)
72-
(text "opcycle_n" (rect 0 0 41 12)(font "Arial" ))
73-
(text "opcycle_n" (rect 114 43 155 55)(font "Arial" ))
74-
(line (pt 176 48)(pt 160 48)(line_width 1))
86+
(text "ioack_n" (rect 0 0 30 12)(font "Arial" ))
87+
(text "ioack_n" (rect 189 43 219 55)(font "Arial" ))
88+
(line (pt 240 48)(pt 224 48)(line_width 1))
7589
)
7690
(port
77-
(pt 176 64)
91+
(pt 240 64)
7892
(output)
79-
(text "ioack_n" (rect 0 0 30 12)(font "Arial" ))
80-
(text "ioack_n" (rect 125 59 155 71)(font "Arial" ))
81-
(line (pt 176 64)(pt 160 64)(line_width 1))
93+
(text "wr_a" (rect 0 0 20 12)(font "Arial" ))
94+
(text "wr_a" (rect 199 59 219 71)(font "Arial" ))
95+
(line (pt 240 64)(pt 224 64)(line_width 1))
96+
)
97+
(port
98+
(pt 240 80)
99+
(output)
100+
(text "rd_a" (rect 0 0 18 12)(font "Arial" ))
101+
(text "rd_a" (rect 201 75 219 87)(font "Arial" ))
102+
(line (pt 240 80)(pt 224 80)(line_width 1))
103+
)
104+
(port
105+
(pt 240 96)
106+
(output)
107+
(text "wr_b" (rect 0 0 20 12)(font "Arial" ))
108+
(text "wr_b" (rect 199 91 219 103)(font "Arial" ))
109+
(line (pt 240 96)(pt 224 96)(line_width 1))
110+
)
111+
(port
112+
(pt 240 112)
113+
(output)
114+
(text "rd_b" (rect 0 0 18 12)(font "Arial" ))
115+
(text "rd_b" (rect 201 107 219 119)(font "Arial" ))
116+
(line (pt 240 112)(pt 224 112)(line_width 1))
82117
)
83118
(port
84-
(pt 176 80)
119+
(pt 240 128)
85120
(output)
86-
(text "wr_n" (rect 0 0 20 12)(font "Arial" ))
87-
(text "wr_n" (rect 135 75 155 87)(font "Arial" ))
88-
(line (pt 176 80)(pt 160 80)(line_width 1))
121+
(text "dout_bus_a[63..0]" (rect 0 0 71 12)(font "Arial" ))
122+
(text "dout_bus_a[63..0]" (rect 148 123 219 135)(font "Arial" ))
123+
(line (pt 240 128)(pt 224 128)(line_width 3))
89124
)
90125
(port
91-
(pt 176 96)
126+
(pt 240 144)
92127
(output)
93-
(text "rd_n" (rect 0 0 18 12)(font "Arial" ))
94-
(text "rd_n" (rect 137 91 155 103)(font "Arial" ))
95-
(line (pt 176 96)(pt 160 96)(line_width 1))
128+
(text "addr_bus_a[10..0]" (rect 0 0 71 12)(font "Arial" ))
129+
(text "addr_bus_a[10..0]" (rect 148 139 219 151)(font "Arial" ))
130+
(line (pt 240 144)(pt 224 144)(line_width 3))
96131
)
97132
(port
98-
(pt 176 128)
133+
(pt 240 160)
99134
(output)
100-
(text "a[63..0]" (rect 0 0 29 12)(font "Arial" ))
101-
(text "a[63..0]" (rect 126 123 155 135)(font "Arial" ))
102-
(line (pt 176 128)(pt 160 128)(line_width 3))
135+
(text "dout_bus_b[63..0]" (rect 0 0 71 12)(font "Arial" ))
136+
(text "dout_bus_b[63..0]" (rect 148 155 219 167)(font "Arial" ))
137+
(line (pt 240 160)(pt 224 160)(line_width 3))
103138
)
104139
(port
105-
(pt 176 112)
106-
(bidir)
107-
(text "d[63..0]" (rect 0 0 29 12)(font "Arial" ))
108-
(text "d[63..0]" (rect 126 107 155 119)(font "Arial" ))
109-
(line (pt 176 112)(pt 160 112)(line_width 3))
140+
(pt 240 176)
141+
(output)
142+
(text "addr_bus_b[10..0]" (rect 0 0 71 12)(font "Arial" ))
143+
(text "addr_bus_b[10..0]" (rect 148 171 219 183)(font "Arial" ))
144+
(line (pt 240 176)(pt 224 176)(line_width 3))
145+
)
146+
(port
147+
(pt 240 192)
148+
(output)
149+
(text "dbg_init" (rect 0 0 29 12)(font "Arial" ))
150+
(text "dbg_init" (rect 190 187 219 199)(font "Arial" ))
151+
(line (pt 240 192)(pt 224 192)(line_width 1))
152+
)
153+
(port
154+
(pt 240 208)
155+
(output)
156+
(text "dbg1[3..0]" (rect 0 0 37 12)(font "Arial" ))
157+
(text "dbg1[3..0]" (rect 182 203 219 215)(font "Arial" ))
158+
(line (pt 240 208)(pt 224 208)(line_width 3))
159+
)
160+
(port
161+
(pt 240 224)
162+
(output)
163+
(text "dbg2[3..0]" (rect 0 0 38 12)(font "Arial" ))
164+
(text "dbg2[3..0]" (rect 181 219 219 231)(font "Arial" ))
165+
(line (pt 240 224)(pt 224 224)(line_width 3))
166+
)
167+
(port
168+
(pt 240 240)
169+
(output)
170+
(text "dbg3[3..0]" (rect 0 0 38 12)(font "Arial" ))
171+
(text "dbg3[3..0]" (rect 181 235 219 247)(font "Arial" ))
172+
(line (pt 240 240)(pt 224 240)(line_width 3))
173+
)
174+
(port
175+
(pt 240 256)
176+
(output)
177+
(text "dbg4[3..0]" (rect 0 0 40 12)(font "Arial" ))
178+
(text "dbg4[3..0]" (rect 179 251 219 263)(font "Arial" ))
179+
(line (pt 240 256)(pt 224 256)(line_width 3))
110180
)
111181
(drawing
112-
(rectangle (rect 16 16 160 160)(line_width 1))
182+
(rectangle (rect 16 16 224 288)(line_width 1))
113183
)
114184
)
Lines changed: 37 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,39 @@
1-
BANDWIDTH_TYPE=AUTO
2-
CLK0_DIVIDE_BY=1
3-
CLK0_DUTY_CYCLE=50
4-
CLK0_MULTIPLY_BY=10
5-
CLK0_PHASE_SHIFT=0
6-
CLK1_DIVIDE_BY=1
7-
CLK1_DUTY_CYCLE=50
8-
CLK1_MULTIPLY_BY=20
9-
CLK1_PHASE_SHIFT=0
10-
COMPENSATE_CLOCK=CLK0
11-
INCLK0_INPUT_FREQUENCY=100000
1+
ADDRESS_REG_B=CLOCK0
2+
CLOCK_ENABLE_INPUT_A=BYPASS
3+
CLOCK_ENABLE_INPUT_B=BYPASS
4+
CLOCK_ENABLE_OUTPUT_A=BYPASS
5+
CLOCK_ENABLE_OUTPUT_B=BYPASS
6+
INDATA_REG_B=CLOCK0
7+
INIT_FILE=../../bin/onchip_mem.hex
128
INTENDED_DEVICE_FAMILY="Cyclone IV E"
13-
LPM_TYPE=altpll
14-
OPERATION_MODE=NORMAL
15-
PLL_TYPE=AUTO
16-
PORT_ACTIVECLOCK=PORT_UNUSED
17-
PORT_ARESET=PORT_USED
18-
PORT_CLKBAD0=PORT_UNUSED
19-
PORT_CLKBAD1=PORT_UNUSED
20-
PORT_CLKLOSS=PORT_UNUSED
21-
PORT_CLKSWITCH=PORT_UNUSED
22-
PORT_CONFIGUPDATE=PORT_UNUSED
23-
PORT_FBIN=PORT_UNUSED
24-
PORT_INCLK0=PORT_USED
25-
PORT_INCLK1=PORT_UNUSED
26-
PORT_LOCKED=PORT_USED
27-
PORT_PFDENA=PORT_UNUSED
28-
PORT_PHASECOUNTERSELECT=PORT_UNUSED
29-
PORT_PHASEDONE=PORT_UNUSED
30-
PORT_PHASESTEP=PORT_UNUSED
31-
PORT_PHASEUPDOWN=PORT_UNUSED
32-
PORT_PLLENA=PORT_UNUSED
33-
PORT_SCANACLR=PORT_UNUSED
34-
PORT_SCANCLK=PORT_UNUSED
35-
PORT_SCANCLKENA=PORT_UNUSED
36-
PORT_SCANDATA=PORT_UNUSED
37-
PORT_SCANDATAOUT=PORT_UNUSED
38-
PORT_SCANDONE=PORT_UNUSED
39-
PORT_SCANREAD=PORT_UNUSED
40-
PORT_SCANWRITE=PORT_UNUSED
41-
PORT_clk0=PORT_USED
42-
PORT_clk1=PORT_USED
43-
PORT_clk2=PORT_UNUSED
44-
PORT_clk3=PORT_UNUSED
45-
PORT_clk4=PORT_UNUSED
46-
PORT_clk5=PORT_UNUSED
47-
PORT_clkena0=PORT_UNUSED
48-
PORT_clkena1=PORT_UNUSED
49-
PORT_clkena2=PORT_UNUSED
50-
PORT_clkena3=PORT_UNUSED
51-
PORT_clkena4=PORT_UNUSED
52-
PORT_clkena5=PORT_UNUSED
53-
PORT_extclk0=PORT_UNUSED
54-
PORT_extclk1=PORT_UNUSED
55-
PORT_extclk2=PORT_UNUSED
56-
PORT_extclk3=PORT_UNUSED
57-
SELF_RESET_ON_LOSS_LOCK=OFF
58-
WIDTH_CLOCK=5
9+
LPM_TYPE=altsyncram
10+
NUMWORDS_A=2048
11+
NUMWORDS_B=2048
12+
OPERATION_MODE=BIDIR_DUAL_PORT
13+
OUTDATA_ACLR_A=NONE
14+
OUTDATA_ACLR_B=NONE
15+
OUTDATA_REG_A=UNREGISTERED
16+
OUTDATA_REG_B=UNREGISTERED
17+
POWER_UP_UNINITIALIZED=FALSE
18+
READ_DURING_WRITE_MODE_MIXED_PORTS=DONT_CARE
19+
READ_DURING_WRITE_MODE_PORT_A=NEW_DATA_WITH_NBE_READ
20+
READ_DURING_WRITE_MODE_PORT_B=NEW_DATA_WITH_NBE_READ
21+
WIDTHAD_A=11
22+
WIDTHAD_B=11
23+
WIDTH_A=64
24+
WIDTH_B=64
25+
WIDTH_BYTEENA_A=1
26+
WIDTH_BYTEENA_B=1
27+
WRCONTROL_WRADDRESS_REG_B=CLOCK0
5928
DEVICE_FAMILY="Cyclone IV E"
60-
CBX_AUTO_BLACKBOX=ALL
61-
areset
62-
inclk
63-
inclk
64-
clk
65-
clk
66-
locked
29+
address_a
30+
address_b
31+
clock0
32+
data_a
33+
data_b
34+
rden_a
35+
rden_b
36+
wren_a
37+
wren_b
38+
q_a
39+
q_b
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
//altsyncram ADDRESS_REG_B="CLOCK0" CBX_SINGLE_OUTPUT_FILE="ON" CLOCK_ENABLE_INPUT_A="BYPASS" CLOCK_ENABLE_INPUT_B="BYPASS" CLOCK_ENABLE_OUTPUT_A="BYPASS" CLOCK_ENABLE_OUTPUT_B="BYPASS" INDATA_REG_B="CLOCK0" INTENDED_DEVICE_FAMILY=""Cyclone IV E"" LPM_TYPE="altsyncram" NUMWORDS_A=131072 NUMWORDS_B=2048 OPERATION_MODE="BIDIR_DUAL_PORT" OUTDATA_ACLR_A="NONE" OUTDATA_ACLR_B="NONE" OUTDATA_REG_A="CLOCK0" OUTDATA_REG_B="CLOCK0" POWER_UP_UNINITIALIZED="FALSE" READ_DURING_WRITE_MODE_MIXED_PORTS="DONT_CARE" READ_DURING_WRITE_MODE_PORT_A="NEW_DATA_NO_NBE_READ" READ_DURING_WRITE_MODE_PORT_B="NEW_DATA_NO_NBE_READ" WIDTH_A=1 WIDTH_B=64 WIDTH_BYTEENA_A=1 WIDTH_BYTEENA_B=1 WIDTH_ECCSTATUS=3 WIDTHAD_A=17 WIDTHAD_B=11 WRCONTROL_WRADDRESS_REG_B="CLOCK0" address_a address_b clock0 data_a data_b q_a q_b wren_a wren_b
2+
//VERSION_BEGIN 17.0 cbx_mgl 2017:04:25:18:09:28:SJ cbx_stratixii 2017:04:25:18:06:30:SJ cbx_util_mgl 2017:04:25:18:06:30:SJ VERSION_END
3+
// synthesis VERILOG_INPUT_VERSION VERILOG_2001
4+
// altera message_off 10463
5+
6+
7+
8+
// Copyright (C) 2017 Intel Corporation. All rights reserved.
9+
// Your use of Intel Corporation's design tools, logic functions
10+
// and other software and tools, and its AMPP partner logic
11+
// functions, and any output files from any of the foregoing
12+
// (including device programming or simulation files), and any
13+
// associated documentation or information are expressly subject
14+
// to the terms and conditions of the Intel Program License
15+
// Subscription Agreement, the Intel Quartus Prime License Agreement,
16+
// the Intel MegaCore Function License Agreement, or other
17+
// applicable license agreement, including, without limitation,
18+
// that your use is for the sole purpose of programming logic
19+
// devices manufactured by Intel and sold by Intel or its
20+
// authorized distributors. Please refer to the applicable
21+
// agreement for further details.
22+
23+
24+
25+
//synthesis_resources = altsyncram 1
26+
//synopsys translate_off
27+
`timescale 1 ps / 1 ps
28+
//synopsys translate_on
29+
module mgeua2
30+
(
31+
address_a,
32+
address_b,
33+
clock0,
34+
data_a,
35+
data_b,
36+
q_a,
37+
q_b,
38+
wren_a,
39+
wren_b) /* synthesis synthesis_clearbox=1 */;
40+
input [16:0] address_a;
41+
input [10:0] address_b;
42+
input clock0;
43+
input [0:0] data_a;
44+
input [63:0] data_b;
45+
output [0:0] q_a;
46+
output [63:0] q_b;
47+
input wren_a;
48+
input wren_b;
49+
50+
wire [0:0] wire_mgl_prim1_q_a;
51+
wire [63:0] wire_mgl_prim1_q_b;
52+
53+
altsyncram mgl_prim1
54+
(
55+
.address_a(address_a),
56+
.address_b(address_b),
57+
.clock0(clock0),
58+
.data_a(data_a),
59+
.data_b(data_b),
60+
.q_a(wire_mgl_prim1_q_a),
61+
.q_b(wire_mgl_prim1_q_b),
62+
.wren_a(wren_a),
63+
.wren_b(wren_b));
64+
defparam
65+
mgl_prim1.address_reg_b = "CLOCK0",
66+
mgl_prim1.clock_enable_input_a = "BYPASS",
67+
mgl_prim1.clock_enable_input_b = "BYPASS",
68+
mgl_prim1.clock_enable_output_a = "BYPASS",
69+
mgl_prim1.clock_enable_output_b = "BYPASS",
70+
mgl_prim1.indata_reg_b = "CLOCK0",
71+
mgl_prim1.intended_device_family = ""Cyclone IV E"",
72+
mgl_prim1.lpm_type = "altsyncram",
73+
mgl_prim1.numwords_a = 131072,
74+
mgl_prim1.numwords_b = 2048,
75+
mgl_prim1.operation_mode = "BIDIR_DUAL_PORT",
76+
mgl_prim1.outdata_aclr_a = "NONE",
77+
mgl_prim1.outdata_aclr_b = "NONE",
78+
mgl_prim1.outdata_reg_a = "CLOCK0",
79+
mgl_prim1.outdata_reg_b = "CLOCK0",
80+
mgl_prim1.power_up_uninitialized = "FALSE",
81+
mgl_prim1.read_during_write_mode_mixed_ports = "DONT_CARE",
82+
mgl_prim1.read_during_write_mode_port_a = "NEW_DATA_NO_NBE_READ",
83+
mgl_prim1.read_during_write_mode_port_b = "NEW_DATA_NO_NBE_READ",
84+
mgl_prim1.width_a = 1,
85+
mgl_prim1.width_b = 64,
86+
mgl_prim1.width_byteena_a = 1,
87+
mgl_prim1.width_byteena_b = 1,
88+
mgl_prim1.width_eccstatus = 3,
89+
mgl_prim1.widthad_a = 17,
90+
mgl_prim1.widthad_b = 11,
91+
mgl_prim1.wrcontrol_wraddress_reg_b = "CLOCK0";
92+
assign
93+
q_a = wire_mgl_prim1_q_a,
94+
q_b = wire_mgl_prim1_q_b;
95+
endmodule //mgeua2
96+
//VALID FILE

0 commit comments

Comments
 (0)