1 |
37 |
wfjm |
$Id: README.txt 811 2016-10-03 07:24:02Z mueller $
|
2 |
5 |
wfjm |
|
3 |
|
|
Release notes for w11a
|
4 |
|
|
|
5 |
|
|
Table of content:
|
6 |
|
|
|
7 |
|
|
1. Documentation
|
8 |
25 |
wfjm |
2. Change Log
|
9 |
5 |
wfjm |
|
10 |
9 |
wfjm |
1. Documentation -------------------------------------------------------------
|
11 |
5 |
wfjm |
|
12 |
|
|
More detailed information on installation, build and test can be found
|
13 |
|
|
in the doc directory, specifically
|
14 |
|
|
|
15 |
|
|
* README.txt: release notes
|
16 |
30 |
wfjm |
* README_known_issues.txt: known issues
|
17 |
5 |
wfjm |
* INSTALL.txt: installation and building test benches and systems
|
18 |
25 |
wfjm |
* FILES.txt: short description of the directory layout, what is where ?
|
19 |
5 |
wfjm |
* w11a_tb_guide.txt: running test benches
|
20 |
|
|
* w11a_os_guide.txt: booting operating systems
|
21 |
6 |
wfjm |
* w11a_known_issues.txt: known differences, limitations and issues
|
22 |
5 |
wfjm |
|
23 |
25 |
wfjm |
2. Change Log ----------------------------------------------------------------
|
24 |
5 |
wfjm |
|
25 |
37 |
wfjm |
- trunk (2016-10-02: svn rev 37(oc) 811(wfjm); untagged w11a_V0.74) +++++++++
|
26 |
|
|
- Preface
|
27 |
|
|
- the current version of the memory controller for the micron mt45w8mw16b
|
28 |
|
|
'cellular ram' used on nexys2, nexys3, and nexys4 uses the asynchronous
|
29 |
|
|
access mode. The device supports a 'page mode' to speed up read access to
|
30 |
|
|
subsequent addresses. Even though prepared in the controller logic this
|
31 |
|
|
feature was simply forgotten. This is now properly implemented and
|
32 |
|
|
results in a bit faster cache line load times. The overall performance
|
33 |
|
|
of a w11a design is measurably, but marginally better.
|
34 |
|
|
- many unit tests still used a ISE environment. All board independent
|
35 |
|
|
tests were converted now to a vivado environment, only tests which
|
36 |
|
|
really depend a FPGA not supported by vivado stay with ISE.
|
37 |
|
|
- a total of 82 unit or system tests are currently available. Many of them
|
38 |
|
|
can be executed by different simulation engines, ghdl or the ISE/vivado
|
39 |
|
|
build-in simulators, and for different stages of the implementation flow,
|
40 |
|
|
from initial behavioral simulation over post-synthesis functional to final
|
41 |
|
|
post-routing timing simulation. This results in a large number of possible
|
42 |
|
|
tests. All test benches are all self-checking, but the execution of them
|
43 |
|
|
was so far not sufficiently automatized.
|
44 |
|
|
This was addressed with 'tbrun', a test bench driver, which obtains a
|
45 |
|
|
list of all available test benches from configuration files, selects
|
46 |
|
|
a subset given by selection criteria, and executes them. It can handle
|
47 |
|
|
the parallel execution of tests so multi-core systems can be very
|
48 |
|
|
easily exploited. Running all tests is now a single shell command.
|
49 |
|
|
- a new tool 'tbfilt' simplifies the logic of self-checking test benches
|
50 |
|
|
and can also be used as a tool to analyze the full log files produced
|
51 |
|
|
by the test benches
|
52 |
|
|
- several test benches have been added to this release, most notably the
|
53 |
|
|
memory tester sys_tst_sram_* which was originally developed to verify
|
54 |
|
|
the s3board SRAM controller and later ported to verify the nexys* CRAM
|
55 |
|
|
controller.
|
56 |
|
|
- the system test benches with SRAM and CRAM now include the PCB trace
|
57 |
|
|
delay between FPGA and memory chip. The new entity simbididly models a
|
58 |
|
|
bi-directional bus delay.
|
59 |
|
|
- so far test benches ended by stopping the clock, all processes were
|
60 |
|
|
written such that they enter a permanent wait, which causes the simulation
|
61 |
|
|
to stop. Worked for fine behavioral simulations, but fails when Xilinx
|
62 |
|
|
MMCMs are involved in post-synthesis simulations. The UNISIM models
|
63 |
|
|
apparently have timed waits. The test benches were modified to stop via a
|
64 |
|
|
report with severity failure, the test environment detects this specific
|
65 |
|
|
assertion/report failure and accepts it as successful termination of
|
66 |
|
|
the simulation.
|
67 |
|
|
- the configuration of the board switches in system test benches was done
|
68 |
|
|
in a sub-optimal way which could lead to startup problems. tbrun_tbwrri
|
69 |
|
|
uses now a different mechanism which ensures that all board and test
|
70 |
|
|
bench configuration is done in the first ns of the simulation and has
|
71 |
|
|
thus completed well before all other activities.
|
72 |
|
|
- finally a caveat: post-synthesis simulations work fine with ISE, but
|
73 |
|
|
currently not with vivado, even in case of almost identical designs,
|
74 |
|
|
like sys_tst_rlink_n3 vs sys_tst_rlink_n4. Is under investigation.
|
75 |
|
|
|
76 |
|
|
- Summary
|
77 |
|
|
- upgraded CRAM controller, now with 'page mode' support
|
78 |
|
|
- new test bench driver tbrun, give automatized test bench execution
|
79 |
|
|
|
80 |
|
|
- New features
|
81 |
|
|
- new modules
|
82 |
|
|
- rtl/bplib/issi/tb/* - added unit test for is61lv25616al model
|
83 |
|
|
- rtl/bplib/micron/tb/* - added unit test for mt45w8mw16b model
|
84 |
|
|
- rtl/sys_gen/tst_serloop - add serloop2 (2 clock) designs for n3,n4
|
85 |
|
|
- nexys3/sys_tst_serloop2_n3.vhd
|
86 |
|
|
- nexys4/sys_tst_serloop2_n4.vhd
|
87 |
|
|
- rtl/sys_gen/tst_sram - add sram test design for
|
88 |
|
|
- nexys2/*
|
89 |
|
|
- nexys3/*
|
90 |
|
|
- nexys4/*
|
91 |
|
|
- s3board/*
|
92 |
|
|
- rtl/vlib/genlib/tb
|
93 |
|
|
- clkdivce_tb.vhd - copy for tb usage of clkdivce
|
94 |
|
|
- rtl/vlib/rlink/tb
|
95 |
|
|
- rlink_tba.vhd - rlink test bench adapter
|
96 |
|
|
- tb_rlink_tba.vhd - test bench for rbus devices
|
97 |
|
|
- tbd_tba_ttcombo.vhd - tba tester for ttcombo
|
98 |
|
|
- rtl/vlib/simlib
|
99 |
|
|
- simbididly.vhd - bi-di bus delay model
|
100 |
|
|
- rtl/vlib/xlib
|
101 |
|
|
- gsr_pulse.vhd - pulse GSR at startup
|
102 |
|
|
- gsr_pulse_dummy.vhd - no-action dummy (for bsim models)
|
103 |
|
|
- rtl/w11a/tb
|
104 |
|
|
- tb_rlink_tba_pdp11core.vhd - tba tester for w11a
|
105 |
|
|
|
106 |
|
|
- new files
|
107 |
|
|
- doc/man/man1 - added tbrun,tbfilt man pages
|
108 |
|
|
- */tbrun.yml - test bench descriptors for tbrun
|
109 |
|
|
- rtl/sys_gen/w11a/tb
|
110 |
|
|
- tb_w11a_mem70*.dat - stim files for additional tests
|
111 |
|
|
- rtl/w11a/tb
|
112 |
|
|
- tb_pdp11core_ubmap.dat - stim files for additional test
|
113 |
|
|
- tools/bin
|
114 |
|
|
- njobihtm - determine #jobs
|
115 |
|
|
- tbfilt - test bench output filter
|
116 |
|
|
- tbrun - test bench driver
|
117 |
|
|
- ticonv_rri - converts old 'mode rri' for ti_rri
|
118 |
|
|
- tools/tcl/tst_sram/*.tcl - support for sys_tst_sram
|
119 |
|
|
|
120 |
|
|
- Changes
|
121 |
|
|
- rtl/bplib
|
122 |
|
|
- arty/tb/tb_arty.vhd - add gsr_pulse (provisional....)
|
123 |
|
|
- */tb/tb_*.vhd - tbcore_rlink without CLK_STOP now
|
124 |
|
|
- fx2lib/tb/fx2_2fifo_core.vhd - proc_ifclk: remove clock stop
|
125 |
|
|
- nexys2/tb/tb_nexys2_core.vhd - use simbididly
|
126 |
|
|
- nexys3/tb/tb_nexys3_core.vhd - use simbididly
|
127 |
|
|
- nexys4/tb/tb_nexys4_cram.vhd - use simbididly
|
128 |
|
|
- nxcramlib
|
129 |
|
|
- nx_cram_memctl_as.vhd - add page mode support
|
130 |
|
|
- nxcramlib.vhd - add cram_*delay functions
|
131 |
|
|
- s3board
|
132 |
|
|
- s3_sram_memctl.vhd - drop "KEEP" for data (better for dbg)
|
133 |
|
|
- tb/tb_s3board_core.vhd - use simbididly
|
134 |
|
|
- rtl/make_ise
|
135 |
|
|
- generic_ghdl.mk - ghdl_clean: remove also gcov files
|
136 |
|
|
- rtl/make_viv
|
137 |
|
|
- generic_ghdl.mk - ghdl_clean: remove also gcov files
|
138 |
|
|
- generic_vivado.mk - viv_clean: rm only vivado logs
|
139 |
|
|
- generic_xsim.mk - xsim work dir now xsim..
|
140 |
|
|
- rtl/sys_gen/tst_serloop
|
141 |
|
|
- */tb/tb_tst_serloop*.vhd - remove CLK_STOP logic
|
142 |
|
|
- tb/tb_tst_serloop.vhd - remove CLK_STOP logic
|
143 |
|
|
- rtl/sys_gen/w11a/nexys*
|
144 |
|
|
- sys_conf.vhd - use cram_*delay functions
|
145 |
|
|
- rtl/vlib/rlink
|
146 |
|
|
- rlink_core.vhd - remove 'assert false' from report stmts
|
147 |
|
|
- tb/tb_rlink.vhd - use clkdivce_tb
|
148 |
|
|
- tbcore/tbcore_rlink.vhd - conf: add .wait, CONF_DONE; drop CLK_STOP
|
149 |
|
|
- rtl/vlib/simlib
|
150 |
|
|
- simbus.vhd - rename SB_CLKSTOP > SB_SIMSTOP
|
151 |
|
|
- simclk.vhd - CLK_STOP now optional port
|
152 |
|
|
- rtl/vlib/xlib
|
153 |
|
|
- */s*_cmt_sfs_*.vhd - remove 'assert false' from report stmts
|
154 |
|
|
- tools/bin
|
155 |
|
|
- tbrun_tbwrri - add --r(l|b)mon,(b|s)wait; configure
|
156 |
|
|
now via _conf={...}
|
157 |
|
|
- tbw - use {} as delimiter for immediate mode
|
158 |
|
|
- vbomconv - add VBOMCONV_GHDL_OPTS and .._GHDL_GCOV
|
159 |
|
|
- xise_ghdl_* - add ghdlopts as 1st option; def is -O2
|
160 |
|
|
|
161 |
|
|
- removed files
|
162 |
|
|
- tools/bin/ghdl_assert_filter - obsolete (use tbfilt now)
|
163 |
|
|
- renames
|
164 |
|
|
- rtl/make_viv/viv_*.tcl -> tools/vivado - separate make and tools
|
165 |
|
|
|
166 |
|
|
- Bug fixes
|
167 |
|
|
- tools/bin
|
168 |
|
|
- tbw - xsim: append -R to ARGV (was prepended...)
|
169 |
|
|
- xtwi - add ":." to PATH even under BARE_PATH
|
170 |
|
|
|
171 |
|
|
- Known issues
|
172 |
|
|
- all issues: see README_known_issues.txt
|
173 |
|
|
- no resolved or new issues in this release
|
174 |
|
|
|
175 |
36 |
wfjm |
- trunk (2016-06-26: svn rev 36(oc) 779(wfjm); untagged w11a_V0.73) +++++++++
|
176 |
|
|
- Preface
|
177 |
|
|
- the 'basic vivado support' added with V0.64 was a minimal effort port of
|
178 |
|
|
the code base used under ISE, leading to sub-optimal results under vivado.
|
179 |
|
|
- the FSM inference under vivado is quirky and has several issues. The
|
180 |
|
|
most essential one prevented re-coding with 'one_hot' encoding, which
|
181 |
|
|
lead to high logic depth and low clock rates. Proper work-arounds were
|
182 |
|
|
applied to almost all FSMs, now vivado infers all (but one) properly
|
183 |
|
|
and re-codes them as 'one_hot'. That is especially important for the
|
184 |
|
|
pdp11_sequencer, which has 113 states. The sys_w11a_n4 system can now
|
185 |
|
|
run with up to 90 MHz (was 75-80 MHz before).
|
186 |
|
|
- due to a remaining synthesis issue the dmscnt and dmcmon debug units
|
187 |
|
|
are currently disabled for Artix based systems (see issue V0.73-3).
|
188 |
|
|
- memory inference is now used for all distributed and block rams under
|
189 |
|
|
vivado. The memory generators in memlib are still used under ISE
|
190 |
|
|
Note: they were initially setup to work around ISE synthesis issues.
|
191 |
|
|
- vivado synthesis and implementation use now 'explore' type flows for
|
192 |
|
|
optimal timing performance.
|
193 |
|
|
- the two clock dram based fifo was re-written (as fifo_2c_dram2) to allow
|
194 |
|
|
proper usage of vivado constraints (e.g. scoped xdc).
|
195 |
|
|
|
196 |
|
|
- vivado is now the prime platform for all further development
|
197 |
|
|
- the component test benches run now by default under Vivado with an
|
198 |
|
|
Artix-7 as default target. The makefiles for ISE with a Spartan-6 target
|
199 |
|
|
are available as 'Makefile.ise' and via the 'makeise' command.
|
200 |
|
|
- a message filter (xviv_msg_filter) has been developed which lists only
|
201 |
|
|
the unexpected message of a synthesis or implementation run. Filter
|
202 |
|
|
rule sets (.vmfset files) are available for all designs.
|
203 |
|
|
- full support for the vivado simuator 'xsim' has been added, there are
|
204 |
|
|
make targets to build a behavioral simulation as well as post-synthesis,
|
205 |
|
|
post-optimize, and post-routing functional and timing models. All these
|
206 |
|
|
models are now created in separate sub-directories and can now co-exist.
|
207 |
|
|
However see issues V.073-1 and 0.73-2 for severe caveats on xsim.
|
208 |
|
|
- vivado write_vhdl generates code which violates a vhdl language rule.
|
209 |
|
|
Attributes of port signals are declared in the wrong place. xsim and
|
210 |
|
|
other simulators accept this, but ghdl doesn't. As a work-around the
|
211 |
|
|
generated code is cleaned up by a filter (see xviv_sim_vhdl_cleanup).
|
212 |
|
|
|
213 |
|
|
- additional rlink devices
|
214 |
|
|
- the XADC block, available on all 7Series FPGAs, is now accessible via
|
215 |
|
|
rlink on all Arty, Basys3 and Nexys4 designs. Especially useful on the
|
216 |
|
|
Arty board because on this board also the currents are monitored.
|
217 |
|
|
- the USR_ACCESS register, available on all 7Series FPGAs, is now readable
|
218 |
|
|
via rlink on all Arty, Basys3 and Nexys4 designs. The vivado build flow
|
219 |
|
|
initializes this register with the build timestamp. This allows to
|
220 |
|
|
verify the build time of a design at run time.
|
221 |
|
|
|
222 |
|
|
- the cache used by the w11a (pdp11_cache) was initialy developed with the
|
223 |
|
|
tight block ram resources of the early Spartan-3 systems in mind. It had
|
224 |
|
|
8 kByte and used 5 BRAMs of size 18 kBit. With very little changes the
|
225 |
|
|
implenenation is now parametrized, and can generate also 16,32, 64 and
|
226 |
|
|
even 128 kByte caches which also use the 36 kBit BRAMs on the Artix.
|
227 |
|
|
There is a trade-off between cache sizes and clock rate due to routing
|
228 |
|
|
delays to the BRAM blocks. The w11a on the nexys4 runs with 16 kByte
|
229 |
|
|
cache and 90 MHz clock or with 64 kByte cache and 80 MHz. For practical
|
230 |
|
|
work loads, like a kernel compile, the 64 kByte configuration is better
|
231 |
|
|
and thus the default.
|
232 |
|
|
|
233 |
|
|
- resolved known issue V0.64-7: was caused by a combination of issues
|
234 |
|
|
and is now resolved by a combination of measures: add portsel logic for
|
235 |
|
|
arty tb, proper portsel setup, configurable timeout, and finally proper
|
236 |
|
|
timeout setting.
|
237 |
|
|
- resolved known issue V0.64-3: So far the arty, basys3 and nexys4 serial
|
238 |
|
|
port, based on a FTDI FT2232, was often operated at 10 MBaud. This rate
|
239 |
|
|
is in fact not supported by FTDI, the chip will use 8 instead of 10 MBaud.
|
240 |
|
|
Due to auto-bauding, which simly adapts to the actual baud rate, this went
|
241 |
|
|
undetected for some time. Now all designs use a serport block clocked with
|
242 |
|
|
120 MHz and can be operated with 12 MBaud.
|
243 |
|
|
|
244 |
|
|
- Summary
|
245 |
|
|
- new reference system: switched to Vivado 2016.2 (from 2015.4)
|
246 |
|
|
- code base cleaned-up for vivado, fsm now inferred
|
247 |
|
|
- xsim support complete (but many issues to be resolved yet)
|
248 |
|
|
- added configurable w11a cache
|
249 |
|
|
- removed some never documented and now strategically obsolete designs:
|
250 |
|
|
- sys_tst_fx2loop (for nexys2 and nexys3)
|
251 |
|
|
- sys_tst_rlink_cuff_ic3 (a three channel variant of the fx2 interface)
|
252 |
|
|
|
253 |
|
|
- New features
|
254 |
|
|
- new modules
|
255 |
|
|
- rtl/vlib
|
256 |
|
|
- generic_clk_100mhz.xdc - generic 100 MHz on CLK constraint (for tbs)
|
257 |
|
|
- rtl/vlib/cdclib - new directory for clock domain crossing
|
258 |
|
|
- cdc_pulse.vhd - cdc for a pulse (moved in from genlib)
|
259 |
|
|
- cdc_signal_s1.vhd - cdc for a signal, 2 stage
|
260 |
|
|
- cdc_vector_s0.vhd - cdc for a vector, 1 stage
|
261 |
|
|
- rtl/vlib/memlib
|
262 |
|
|
- fifo_2c_dram2.vhd - re-write of fifo_2c_dram to allow
|
263 |
|
|
proper usage of vivado constraints
|
264 |
|
|
- rtl/vlib/rbus
|
265 |
|
|
- rb_sres_or_6.vhd - rbus result or, 6 input
|
266 |
|
|
- rbd_usracc.vhd - return usr_access register
|
267 |
|
|
- rtl/vlib/rlink
|
268 |
|
|
- rlink_sp2c.vhd - rlink_core8 + serport_2clock2 combo
|
269 |
|
|
- rtl/vlib/serport
|
270 |
|
|
- serport_2clock2.vhd - like serport_2clock, use fifo_2c_dram2
|
271 |
|
|
- rtl/vlib/xlib
|
272 |
|
|
- usr_access_unisim.vhd - Wrapper for USR_ACCESS* entities
|
273 |
37 |
wfjm |
- new files
|
274 |
36 |
wfjm |
- tools/bin
|
275 |
|
|
- xise_msg_summary - list all filtered ISE messages
|
276 |
|
|
- xviv_msg_filter - message filter for vivado
|
277 |
|
|
- xviv_msg_summary - list all filtered vivado messages
|
278 |
|
|
- xviv_sim_vhdl_cleanup - cleanup vivado generated vhdl for ghdl
|
279 |
|
|
- makeise - wrapper for make -f Makefile.ise
|
280 |
|
|
- tools/tcl/rbtest
|
281 |
|
|
- test_flow.tcl - test back pressure and flow control
|
282 |
|
|
|
283 |
|
|
- Changes
|
284 |
|
|
- rtl/bplib/*/*_pins.xdc - add BITSTREAM.CONFIG.USR_ACCESS setup
|
285 |
|
|
- rtl/bplib/*/tb/tb_*.vbom - use -UUT attribute
|
286 |
|
|
- rtl/sys_gen/*/*/tb/tb_*.vbom - use -UUT attribute
|
287 |
|
|
- rtl/make_ise
|
288 |
|
|
- generic_ghdl.mk - use ghdl.?sim as workdir for ghdl
|
289 |
|
|
- generic_xflow.mk - use .imfset for ISE message rules
|
290 |
|
|
- rtl/make_viv
|
291 |
|
|
- generic_ghdl.mk - use ghdl.?sim as workdir for ghdl
|
292 |
|
|
- generic_vivado.mk - add [sorep]sim.v and %.vivado targets
|
293 |
|
|
- vmfset support, use xviv_sim_vhdl_cleanup
|
294 |
|
|
- generic_xsim.mk - [rep]sim models; use xsim.?sim as workdir
|
295 |
|
|
- viv_tools_build.tcl - use explore flows; prj,opt,pla modes
|
296 |
|
|
- viv_tools_config.tcl - add USR_ACCESS readback
|
297 |
|
|
- viv_tools_model.tcl - add [sor]sim_vhdl [sorepd]sim_veri modes
|
298 |
|
|
- rtl/sys_gen/*/* (all rlink based designs)
|
299 |
|
|
- sys_*.vhd - define rlink SYSID
|
300 |
|
|
- rtl/sys_gen/*/* (all rlink and 7series based designs)
|
301 |
|
|
- sys_*.vhd - add rbd_usracc, use serport_2clock2
|
302 |
|
|
- sys_conf.vhd - use PLL for clkser_gentype
|
303 |
|
|
- rtl/sys_gen/w11a/*
|
304 |
|
|
- sys_conf.vhd - add sys_conf_cache_twidth
|
305 |
|
|
- rtl/sys_gen/tst_serloop/nexys4
|
306 |
|
|
- sys_tst_serloop1_n4.vhd - clock now from cmt and configurable
|
307 |
|
|
- rtl/sys_gen/tst_serloop/tb
|
308 |
|
|
- tb_tst_serloop.vhd - use serport_(uart_rxtx|xontx)_tb
|
309 |
|
|
- rtl/vlib/*/tb/tb_*.vbom - use -UUT attribute
|
310 |
|
|
- rtl/vlib/*/tb/tbd_*.vbom - use generic_clk_100mhz.xdc
|
311 |
|
|
- rtl/vlib/comlib/comlib.vhd - leave return type unconstraint
|
312 |
|
|
- rtl/vlib/simlib/simlib.vhd - add writetimens()
|
313 |
|
|
- rtl/w11a
|
314 |
|
|
- pdp11_bram_memctl.vhd - use memory inference now
|
315 |
|
|
- pdp11_cache.vhd - now configurable size (8,16,32,64,128 kB)
|
316 |
|
|
- pdp11_sequencer.vhd - proc_snum conditional (vivado fsm fix)
|
317 |
|
|
- rtl/*/*.vbom - use memory inference for vivado
|
318 |
|
|
- rtl/*/*.vhd - workarounds and fixes to many FSMs
|
319 |
|
|
- tools/bin
|
320 |
|
|
- tbrun_tbw - use _bsim.log for behavioral sim log
|
321 |
|
|
- tbrun_tbwrri - use _bsim.log for behavioral sim log
|
322 |
|
|
use 120 sec timeout for simulation
|
323 |
|
|
- tbw - add '-norun', -run now default
|
324 |
|
|
- ti_rri - add --tout option
|
325 |
|
|
use 120 sec timeout for simulation
|
326 |
|
|
- vbomconv - add file properties (-UUT,-SCOPE_REF)
|
327 |
|
|
full xsim support now in -vsim_prj
|
328 |
|
|
- tools/src/librlink
|
329 |
|
|
- RlinkConnect - add USR_ACCESS register support
|
330 |
|
|
- tools/src/librlinktpp
|
331 |
|
|
- RtclRlinkConnect - add USR_ACCESS, timeout access
|
332 |
|
|
- tools/tcl/rbtest
|
333 |
|
|
- test_data.tcl - add dinc register tests
|
334 |
|
|
- tools/tcl/rlink
|
335 |
|
|
- util.tcl - add USR_ACCESS register support
|
336 |
|
|
|
337 |
|
|
- removed designs
|
338 |
|
|
- rtl/sys_gen/tst_fx2loop/nexys*/*/sys_tst_fx2loop_*_n*
|
339 |
|
|
- rtl/sys_gen/tst_rlink_cuff/nexys2/ic3/sys_tst_rlink_cuff_ic3_n2
|
340 |
|
|
- renames
|
341 |
|
|
- *.mfset -> *.imfset - to be complementary to new .vmfset
|
342 |
|
|
- Makefile -> Makefile.ise - old ISE makefiles in component areas
|
343 |
|
|
|
344 |
|
|
- Bug fixes
|
345 |
|
|
- rtl/bplib/arty/tb
|
346 |
|
|
- tb_arty.vhd: - add portsel logic
|
347 |
|
|
- rtl/bplib/sysmon
|
348 |
|
|
- sysmon_rbus_core.vhd - use s_init (and not s_idle) after RESET
|
349 |
|
|
- rtl/vlib/xlib
|
350 |
|
|
- s7_cmt_sfs_*.vhd - correct mmcm range check boundaries
|
351 |
|
|
- tools/bin
|
352 |
|
|
- ti_w11: - proper portsel oob for -fx
|
353 |
|
|
- tbrun_tbwrri: - proper portsel oob for -hxon
|
354 |
|
|
|
355 |
|
|
- Known issues
|
356 |
|
|
- all issues: see README_known_issues.txt
|
357 |
|
|
- resolved issues:
|
358 |
|
|
- V0.72-1: since vivado 2016.1 xelab builds models which use DPI in a
|
359 |
|
|
mixed vhdl-verilog language environment.
|
360 |
|
|
- V0.72-2: now full support to build behavioral as well as functional and
|
361 |
|
|
timing simulations with xsim. See V.073-1 and 0.73-2 for caveats.
|
362 |
|
|
- V0.64-7: flow control issues with simulation models resolved
|
363 |
|
|
- V0.64-3: basys3, nexys4 and arty designs support now 12 MBaud.
|
364 |
|
|
|
365 |
|
|
- new issues:
|
366 |
|
|
- V0.73-1: as of vivado 2016.2 xelab shows sometimes extremely long build
|
367 |
|
|
times, especially for generated post-synthesis vhdl models. But also
|
368 |
|
|
building a behavioral simulation for a w11a design can take 25 min.
|
369 |
|
|
Even though post-synthesis or post-routing models are now generated
|
370 |
|
|
in verilog working with xsim is cumbersome and time consuming.
|
371 |
|
|
- V0.73-2: Many post-synthesis functional and especially post-routing
|
372 |
|
|
timing simulations currently fail due to startup and initialization
|
373 |
|
|
problems. Cause is MMCM/PLL startup, which is not properly reflected
|
374 |
|
|
in the test bench. Will be resolved in an upcoming release.
|
375 |
|
|
- V0.73-3: The 'state number generator' code in pdp11_sequencer causes
|
376 |
|
|
in vivado 2016.1 (and .2) that the main FSM isn't re-coded anymore,
|
377 |
|
|
which has high impact on achievable clock rate. The two optional
|
378 |
|
|
debug units depending on the state number, dmscnt and dmcmon, are
|
379 |
|
|
therefore currently deactivated in all Artix based systems (but are
|
380 |
|
|
available on all Spartan based systems).
|
381 |
|
|
|
382 |
35 |
wfjm |
- trunk (2016-03-19: svn rev 35(oc) 746(wfjm); untagged w11a_V0.72) +++++++++
|
383 |
|
|
- Preface
|
384 |
|
|
- The new low-cost Digilent Arty board is a very attractive platform.
|
385 |
|
|
The DDR3 memory will take some time to integrate, in this release thus
|
386 |
|
|
only designs using the BRAMs.
|
387 |
|
|
- added support for the Vivado simulator. Simple test benches work fine.
|
388 |
|
|
Rlink based test benches don't work due to a bug in Vivado 2015.4.
|
389 |
|
|
- A rather esoteric CPU bug was fixed in release V0.71 but forgotten to
|
390 |
|
|
mention in the README. See ECO-027-trap_mmu.txt for details.
|
391 |
|
|
|
392 |
|
|
- Summary
|
393 |
|
|
- added Arty support. The w11a design uses BRAMs as memory, like the
|
394 |
|
|
Basys3 version. This gives 176 KByte memory, not enough for 2.11BSD,
|
395 |
|
|
but for many other less demanding OS available for a PDP11.
|
396 |
|
|
- added support for SYSMON/XADC (see README_xadc.txt)
|
397 |
|
|
- Vivado flow is now default for test benches of components and all Artix
|
398 |
|
|
based systems. If applicable an ISE flow is available under Makefile.ise
|
399 |
|
|
(resolves known issues V0.64-4 and V0.64-5).
|
400 |
|
|
- re-factored tbcore_rlink to support DPI and VHPI
|
401 |
|
|
- Vivado supports with DPI (from SystemVerilog) a mechanism to call
|
402 |
|
|
external C code. The rlink test bench code so far relies on VHPI, which
|
403 |
|
|
is supported by ghdl, but not by ISE ISim or Vivado xsim. The code was
|
404 |
|
|
restructured and can use now DPI or VHPI to support both ghdl and
|
405 |
|
|
Vivado. Unfortunately has Vivado 2015.4 a bug, DPI doesn't work in a
|
406 |
|
|
mixed vhdl-verilog language environment (see Known issues), so the
|
407 |
|
|
code base is there, but utilization will habe to wait.
|
408 |
|
|
- Vivado synthesis by default keeps hierarchy. This leads to doubly defined
|
409 |
|
|
modules if a component is used in both test bench and unit under test.
|
410 |
|
|
To avoid this copies of s7_cmt_sfs and some serport_* modules were
|
411 |
|
|
created and are now used in the test benches.
|
412 |
|
|
|
413 |
|
|
- New features
|
414 |
|
|
- new directory trees for
|
415 |
|
|
- rtl/bplib/arty - board support files for arty
|
416 |
|
|
- rtl/bplib/sysmon - driver + rbus iface for SYSMON/XADC
|
417 |
|
|
- rtl/vlib/rlink/tbcore - new location for rlink tb iface code
|
418 |
|
|
- tools/tcl/rbsysmon - sysmon/xadc support
|
419 |
|
|
- new modules
|
420 |
|
|
- rtl/bplib/bpgen
|
421 |
|
|
- rgbdrv_* - driver + rbus iface for 3 color RGBLED
|
422 |
|
|
- rtl/vlib/rlink/tbcore
|
423 |
|
|
- rlink_cext_iface_dpi.sv - DPI based cext iface
|
424 |
|
|
- rlink_cext_iface_vhpi.vhd - VHPI based cext iface
|
425 |
|
|
- rlink_cext_dpi.c - dpi to vhpi adapter
|
426 |
|
|
- rtl/vlib/serport/tb
|
427 |
|
|
- serport_uart_*_tb - added copies for tb usage
|
428 |
|
|
- rtl/vlib/xlib/tb
|
429 |
|
|
- s7_cmt_sfs_tb - added copy for tb usage
|
430 |
36 |
wfjm |
|
431 |
35 |
wfjm |
- new files
|
432 |
|
|
- doc/man/man1
|
433 |
|
|
- tbrun_tbw.1 - man file for tbrun_tbw
|
434 |
|
|
- tbrun_tbwrri.1 - man file for tbrun_tbwrri
|
435 |
|
|
- new systems
|
436 |
|
|
- rtl/sys_gen/tst_rlink - rlink tester
|
437 |
|
|
- arty/sys_tst_rlink_arty - for Arty
|
438 |
|
|
- rtl/sys_gen/w11a - w11a
|
439 |
|
|
- arty_bram/sys_w11a_br_arty - for Arty (BRAM only, 176 MByte)
|
440 |
|
|
|
441 |
|
|
- Changes
|
442 |
|
|
- */.cvsignore - all ignore files re-organized
|
443 |
|
|
- */tb/Makefile - Vivado now default, keep Makefile.ise
|
444 |
|
|
- rtl/bplib/*/tb/tb_*.vhd - use s7_cmt_sfs_tb and serport_master_tb
|
445 |
|
|
- rtl/vlib/comlib
|
446 |
|
|
- comlib.vhd - add work-around for vivado 2015.4 issue
|
447 |
|
|
- rtl/vlib/rbus
|
448 |
|
|
- rb_sres_or_mon - supports 6 inputs now
|
449 |
|
|
- rtl/vlib/serport
|
450 |
|
|
- serport_master - moved to tb, _tb appended to name
|
451 |
|
|
- rtl/vlib/rlink/tbcore
|
452 |
|
|
- tbcore_rlink - re-structured to use rlink_cext_iface
|
453 |
|
|
- rtl/sys_gen/...
|
454 |
|
|
- sys_tst_rlink_b3 - hardwire XON=1, support XADC
|
455 |
|
|
- sys_tst_rlink_n4 - support XADC and RGBLEDs
|
456 |
|
|
- sys_w11a_b3 - hardwire XON=1, support XADC; 72 MHz now
|
457 |
|
|
- sys_w11a_n4 - support XADC
|
458 |
|
|
- tools/bin
|
459 |
|
|
- tbrun_tbw - add vivado xsim and Makefile.ise support
|
460 |
|
|
- tbrun_tbwrri - use --sxon and --hxon instead of --xon
|
461 |
|
|
- tbw - add XSim support
|
462 |
|
|
- ti_w11 - add arty support, add -fx
|
463 |
|
|
- vbomconv - add [ise,viv]; add @uut tag handling;
|
464 |
|
|
add preliminary --(vsyn|vsim)_export;
|
465 |
|
|
add vivado xsim support;
|
466 |
|
|
- xtwi,xtwv - add BARE_PATH to provide clean environment
|
467 |
|
|
|
468 |
|
|
- Bug fixes
|
469 |
|
|
- tools/tcl/rutil
|
470 |
|
|
- regdsc.tcl - regdsc: fix variable name in error msg
|
471 |
|
|
|
472 |
|
|
- Known issues
|
473 |
|
|
- all issues: see README_known_issues.txt
|
474 |
|
|
- resolved issues:
|
475 |
|
|
- V0.64-4: support added for Vivado xsim. See however issue V0.72-1+2.
|
476 |
|
|
- V0.64-5: w11a_tb_guide.txt covers xsim tests too.
|
477 |
|
|
|
478 |
|
|
- new issues:
|
479 |
|
|
- V0.72-1: Vivado 2015.4 xelab crashes when DPI is used in a mxied
|
480 |
|
|
vhdl-verilog language environment. This prevents currently to
|
481 |
|
|
build a xsim simulation model for rlink based test benches.
|
482 |
|
|
- V0.72-2: xsim simulations with timing annotation not yet available.
|
483 |
|
|
|
484 |
34 |
wfjm |
- trunk (2015-12-30: svn rev 34(oc) 722(wfjm); untagged w11a_V0.71) +++++++++
|
485 |
32 |
wfjm |
- Preface
|
486 |
34 |
wfjm |
- the w11a so far lacked any 'hardware debugger' support, which made the
|
487 |
|
|
debugging of CPU core issues a bit tedious. This release added a first
|
488 |
|
|
implementation of CPU debugger and monitoring features
|
489 |
|
|
- dmhbpt: hardware break point unit. Allows to set multiple break points
|
490 |
|
|
on instruction fetches (thus code break points) and on data
|
491 |
|
|
reads/writes (thus data access break points). The number of
|
492 |
|
|
breakpoints is configurable between 0 and 4, in current
|
493 |
|
|
designs 2 are available
|
494 |
|
|
- dmcmon: CPU state monitor. A buffer of configurable size which holds
|
495 |
|
|
a wide range of information on execution of the most recent
|
496 |
|
|
instructions. Tracing can be a instruction as well as on
|
497 |
|
|
micro cycle level.
|
498 |
|
|
- dmscnt: micro state counter. A counter array which allows to monitor
|
499 |
|
|
in which micro state the CPU time is spend, separated for
|
500 |
|
|
kernel and supervisor/user mode.
|
501 |
|
|
These three units together with the already existing ibus monitor allow
|
502 |
|
|
a very detailed and specific monitoring and debugging of the CPU.
|
503 |
32 |
wfjm |
|
504 |
34 |
wfjm |
The w11a CPU core is not functionally modified in this release, the only
|
505 |
|
|
exception is the suspend logic needed to implement hardware break points.
|
506 |
|
|
Both the hardware break point and the instruction level tracing in dmcmon
|
507 |
|
|
require a clean definition of instruction boundaries, which the current
|
508 |
|
|
w11a core does not provide in some cases. This leads to imprecise
|
509 |
|
|
breakpoints (CPU executes one additional instruction) and incomplete
|
510 |
|
|
dmcmon traces (at instruction level when exceptions are taken).
|
511 |
|
|
|
512 |
|
|
The w11a core will be modified in the next release to handle the above
|
513 |
|
|
mentioned conditions properly. The dmhbpt and dmcmon will be fully
|
514 |
|
|
documented when the w11a core changes are done, they work as expected
|
515 |
|
|
under all conditions, and the full back end integration is completed.
|
516 |
32 |
wfjm |
|
517 |
34 |
wfjm |
- bottom line is that this release has little added value for normal w11
|
518 |
|
|
usage. It is technically necessary to separate the addition of all
|
519 |
|
|
the debug units and modification of the CPU core into two releases.
|
520 |
32 |
wfjm |
|
521 |
|
|
- Summary
|
522 |
34 |
wfjm |
- new reference system
|
523 |
|
|
- switched to Vivado 2015.4 (from 2014.4)
|
524 |
|
|
Note: 2015.4 has WebPACK support for Logic Analyser and HLS. Both are
|
525 |
|
|
not used so far, but the logic analyser may come in handy soon.
|
526 |
|
|
- switched to tcl8.6 (from tcl8.5)
|
527 |
|
|
Note: tcl8.6 is default tcl in Ubuntu 2014.04LTS, but up to now the
|
528 |
|
|
tclshcpp helper was linked against tcl8.5. So far no tcl8.6
|
529 |
|
|
langauge features are used, but may be in future.
|
530 |
32 |
wfjm |
|
531 |
|
|
- New features
|
532 |
31 |
wfjm |
- new modules
|
533 |
34 |
wfjm |
- rtl/w11a
|
534 |
|
|
- pdp11_dmcmon - pdp11: debug&moni: cpu monitor
|
535 |
|
|
- pdp11_dmhbpt - pdp11: debug&moni: hardware breakpoint
|
536 |
|
|
- pdp11_dmhbpt_unit - pdp11: dmhbpt - individual unit
|
537 |
|
|
- pdp11_dmscnt - pdp11: debug&moni: state counter
|
538 |
|
|
- new files
|
539 |
31 |
wfjm |
- tools/bin
|
540 |
34 |
wfjm |
- dmscntanal - analyze dmscnt data
|
541 |
|
|
- dmscntconv - convert dmscnt data
|
542 |
|
|
- tools/asm-11/lib
|
543 |
|
|
- defs_mmu.mac - definitions for mmu registers
|
544 |
|
|
- defs_nzvc.mac - definitions for condition code combos
|
545 |
|
|
- defs_reg70.mac - definitions for 11/70 CPU registers
|
546 |
|
|
- tcode_std_base.mac - Default tcode base code for simple tests
|
547 |
|
|
- tcode_std_start.mac - Default tcode startup code
|
548 |
|
|
- vec_devcatch.mac - vector catcher for device interrupts
|
549 |
|
|
- vec_devcatch_reset.mac - re-write vector catcher
|
550 |
|
|
- tools/tbench
|
551 |
|
|
- w11a_cmon - directory with dmcmon tests
|
552 |
|
|
- w11a_hbpt - directory with dmhbpt tests
|
553 |
|
|
- tools/tcl
|
554 |
|
|
- ibd_(dl|lp|pc|rk|rl)11 - directory with register regdsc's
|
555 |
|
|
- tools/tcl/rutil
|
556 |
|
|
- fileio.tcl - new tofile and fromfile procs
|
557 |
31 |
wfjm |
- tools/tcl/rw11
|
558 |
34 |
wfjm |
- dmcmon.tcl - support code for dmcmon
|
559 |
|
|
- dmhbpt.tcl - support code for dmhbpt
|
560 |
|
|
- dmscnt.tcl - support code for dmscnt
|
561 |
|
|
- shell.tcl - new w11a tcl shell
|
562 |
|
|
- shell_egd.tcl - code for e,g,d commands
|
563 |
|
|
- tools/tcl/rw11util
|
564 |
|
|
- regmap.tcl - support for 'map of regdsc' definitions
|
565 |
31 |
wfjm |
|
566 |
|
|
- Changes
|
567 |
28 |
wfjm |
- rtl/vlib/rlink
|
568 |
34 |
wfjm |
- rlink_core.vhd - add proc_sres: strip 'x' from RB_SRES.dout
|
569 |
|
|
- rtl/vlib/rlink/tb
|
570 |
|
|
- tbcore_rlink - drive SB_CNTL from start to avoid 'U'
|
571 |
28 |
wfjm |
- rtl/w11a
|
572 |
34 |
wfjm |
- pdp11 - add defs for pdp11_dm(scnt|hbpt|cmon)
|
573 |
|
|
- pdp11_* - add support for pdp11_dm(scnt|hbpt|cmon)
|
574 |
|
|
- rtl/sys_gen/w11a/*
|
575 |
|
|
- sys_conf - add sys_conf_(dmscnt|dmhbpt*|dmcmon*)
|
576 |
|
|
- rtl/sys_gen/w11a/*/tb
|
577 |
|
|
- sys_conf_sim - add sys_conf_(dmscnt|dmhbpt*|dmcmon*)
|
578 |
27 |
wfjm |
- tools/bin/
|
579 |
34 |
wfjm |
- ti_w11 - add -ghw option
|
580 |
|
|
- tmuconv - fix '.' handling for br/sob instructions
|
581 |
|
|
correct xor (now r,dst, and not src,r)
|
582 |
|
|
- tools/tcl/rutil
|
583 |
|
|
- regdsc.tcl - add regbldkv,reggetkv
|
584 |
|
|
- util.tcl - rename optlist2arr->args2opts, new logic
|
585 |
|
|
- tools/tcl/rw11
|
586 |
|
|
- asm.tcl - new arg list format in asm(run|treg|tmem)
|
587 |
|
|
- dasm.tcl - add dasm_inst2txt
|
588 |
|
|
- tools/tcl/ibd_ibmon
|
589 |
|
|
- util.tcl - add symbolic register dump
|
590 |
27 |
wfjm |
|
591 |
|
|
- Bug fixes
|
592 |
34 |
wfjm |
- rtl/bplib/micron
|
593 |
|
|
- mt45w8mw16b - fix issue when 1st access is to addr 0
|
594 |
|
|
- rtl/bplib/nxcramlib
|
595 |
|
|
- nx_cram_memctl_as - always define imem_oe in do_dispatch()
|
596 |
|
|
- rtl/ibus
|
597 |
|
|
- ibdr_tm11 - add missing BESET to sensitivity list
|
598 |
|
|
- rtl/w11a
|
599 |
|
|
- pdp11_sequencer - proper trap_mmu and trap_ysv handling
|
600 |
|
|
- tools/bin
|
601 |
|
|
- asm-11 - fix '.' handling in instructions
|
602 |
27 |
wfjm |
|
603 |
|
|
- Known issues
|
604 |
34 |
wfjm |
- all issues: see README_known_issues.txt
|
605 |
27 |
wfjm |
|
606 |
34 |
wfjm |
- w11a_V0.7 (2015-06-21) +++++++++++++++++++++++++++++++++++++++++++++++++++++
|
607 |
|
|
cummulative summary of key changes from w11a_V0.6 to w11a_V0.7
|
608 |
|
|
- Bugfix for DIV instruction (in w11a_V0.61, see ECO-026-div.txt)
|
609 |
|
|
- revised rbus protocol V4 (in w11a_V0.62, see README_Rlink_V4.txt)
|
610 |
|
|
- add basic Vivado support (in w11a_V0.64)
|
611 |
|
|
- add Nexys4 and Basys3 port of w11a (in w11a_V0.64)
|
612 |
|
|
- add RL11/RL02 disk support (in w11a_V0.64)
|
613 |
|
|
- add RH70+RP/RM disk support (in w11a_V0.65)
|
614 |
|
|
- add TM11/TY10 tape support (in w11a_V0.66)
|
615 |
|
|
- reference system now ISE 14.7, Vivado 2014.4; Ubuntu 14.04 64 bit, ghdl 0.31
|
616 |
27 |
wfjm |
|
617 |
34 |
wfjm |
for details see README-w11a_V.60-w11a_V0.70.txt
|
618 |
5 |
wfjm |
|
619 |
25 |
wfjm |
- w11a_V0.6 (2014-06-06) +++++++++++++++++++++++++++++++++++++++++++++++++++++
|
620 |
|
|
|
621 |
34 |
wfjm |
cummulative summary of key changes from w11a_V0.5 to w11a_V0.6
|
622 |
23 |
wfjm |
- revised ibus protocol V2 (in w11a_V0.51)
|
623 |
|
|
- revised rbus protocol V3 (in w11a_V0.52)
|
624 |
|
|
- backend server rewritten in C++ and Tcl (in w11a_V0.53 and w11a_V0.562)
|
625 |
|
|
- add Nexys3 port of w11a (in w11a_V0.54)
|
626 |
|
|
- add Cypress FX2 support (in w11a_V0.56 and w11a_V0.57)
|
627 |
|
|
- added LP11,PC11 support (in w11a_V0.58)
|
628 |
|
|
- reference system now ISE 14.7 and Ubuntu 12.04 64 bit, ghdl 0.31
|
629 |
|
|
- many code cleanups; use numeric_std
|
630 |
|
|
- many documentation improvements
|
631 |
|
|
- development status upgraded to beta (from alpha)
|
632 |
|
|
|
633 |
25 |
wfjm |
for details see README-w11a_V.50-w11a_V0.60.txt
|
634 |
23 |
wfjm |
|
635 |
11 |
wfjm |
- w11a_V0.5 (2010-07-23) +++++++++++++++++++++++++++++++++++++++++++++++++++++
|
636 |
6 |
wfjm |
|
637 |
5 |
wfjm |
Initial release with
|
638 |
|
|
- w11a CPU core
|
639 |
|
|
- basic set of peripherals: kw11l, dl11, lp11, pc11, rk11/rk05
|
640 |
|
|
- just for fun: iist (not fully implemented and tested yet)
|
641 |
|
|
- two complete system configurations with
|
642 |
29 |
wfjm |
- for a Digilent S3board rtl/sys_gen/w11a/s3board/sys_w11a_s3
|
643 |
5 |
wfjm |
- for a Digilent Nexys2 rtl/sys_gen/w11a/nexys2/sys_w11a_n2
|