Version Notes
(Current Version - 2.50.200 - February 18, 2022)
Summary
The current release introduces the Digital Storage Oscilloscope (associated with the virtual DAC component) and the new Attenuator components. An experimental, anti-plagiarism system (included in the Deeds-DcS tool), is also introduced. Moreover, few bugs have been fixed and small improvements have been introduced.
Digital Storage Oscilloscope (DSO)
With the current version, we add a new feature to the Digital to Analog Converter (DAC) components. Before introducing it, let's have a look at what DACs could do in the previous versions of Deeds, by means of an example (see the next figure).
During a simulation session, two DACs (4-bit and 8-bit) are displaying the waveform corresponding to the received data, directly on the component symbol. This feature has been maintained in the present version, too. Deeds's DAC are very useful to get a virtual representation of the signal that a real DAC will generate, but this way of displaying signals presented significant limitations.
To overcome them, the current version of Deeds makes available a special tool that replicates the main feature of a real instrument: the Digital Storage Oscilloscope (DSO). See the example in the next screenshot.
During simulation, a click on a DAC component opens the Oscilloscope window. Alternatively, you can activate the window using the context menu of the component (see the next figure).
Once opened, the window can be positioned and resized as desired. When it will be successively reopened, the position and its dimensions will be automatically restored.
Tool Bar
The command toolbar is highlighted in the figure below. In this case, the arrow points to the field showing the label that was previously assigned to the DAC component.
Tracking and Trigger Modes
The next figure highlights two buttons. They allow choosing between the operating mode of the oscilloscope. Pressing the one on the left, the 'Tracking Mode' will be set, while pressing the other the 'Trigger Mode' (the two modes are mutually exclusive).
In 'Tracking Mode', the oscilloscope is in the continuous acquisition and display mode (this is the default), with automatic scrolling to the left of the samples already acquired (the green arrow in the next figure shows the direction of scrolling).
In this mode, by default, the right margin of the drawing is placed against the border of the window (however, the horizontal scroll bar at the bottom of the window allows you to move the view). The drawing of the waveform highlights the acquisition of the last acquired sample (the rightmost, see the yellow arrow in the figure above). In fact, the 'little pencil' will seem to draw the line, sample after sample, as already happens in the component symbol.
In 'Trigger Mode' the oscilloscope behaves exactly as expected in a real instrument. The display can be frozen (synchronized) in a fixed position, definable by adjusting the level of the trigger threshold, and the relative slope. In this operating mode, a vertical panel is displayed on the right side of the window (see the next figure).
The vertical scroll bar (yellow arrow) permits to define the trigger threshold level, while two buttons [+] and [-] (green arrow) set the requested slope in the trigger point. The value of the chosen trigger threshold is also displayed (red arrows) as a number and as a horizontal line in the drawing.
While waiting to intercept the trigger threshold, with the desired slope, the waveform is shown flowing to the left, as in Tracking Mode. As soon as the trigger has been found, the flow of the waveform stops and a vertical dashed line is displayed when passing through the threshold (see the next figure).
Meanwhile, the acquisition of the samples continues and, at a certain point, the trigger is identified again (in the next cycle of the waveform) displaying the new situation (as shown in the next figure).
Up to three trigger instants can be displayed, as seen in the next figure, where the trigger was found again, in the following waveform cycle (the three vertical dashed lines are colored differently).
If we move the view a little more to the right, using the horizontal scroll bar (as shown in the next figure), we will be able to observe the arrival of the new samples, one after the other, while the waveform drawing remains stationary on the trigger points.
Clock Animation
The following figure highlights the clock animation toggle button. Its functionality is the same as the one at the bottom of the main window.
From an educational point of view, sometimes it is very useful to stop the simulation clock, thus allowing a detailed examination of the waveform.
Horizontal Axis
The toggle button highlighted in the figure below allows to show/hide the horizontal scale (it numbers the samples present in the memory buffer).
Below, the same particular of the drawing, with and without the numbered scale.
Horizontal Zoom In/Out
The three buttons highlighted in the next figure are used to manage the zoom of the drawing in the horizontal direction. The [+] button allows you to zoom in, the [-] button will zoom out, and the third [View All] is useful to view the entire acquisition.
The zoom ranges from 256 pixels/sample to 2048 samples/pixel.
Vertical Zoom In/Out
The drawing zoom in the vertical direction is controlled by the three buttons shown in the next figure. The [+] button allows you to zoom in, the [-] button will zoom out, and the third [View All] is useful to adequate the vertical zoom to the maximum amplitude of the digital signal.
Vertical Axis
The numerical scale of the vertical axis is always displayed, on the left side of the drawing. The density of the scale is automatically adjusted, taking into account the current vertical magnification. The next figure shows some examples.
Memory Buffer Size
The button highlighted in the figure below allows you to define the size of the sample memory buffer. The default is 4K, but it can range from 256 to 1M samples.
The buffer size can be changed at any time, even if the animation clock is active. If the new requested size is smaller that the one in use, the user is notified that the oldest samples that cannot fit in the new buffer size will be eliminated.
Hardcopy Current View on Clipboard
For documentation purposes, the current view of the waveform drawing can be saved (as an image) to the clipboard. The button to use is shown in the following figure.
An example of image, saved to the clipboard, in the next figure. Note that only the diagram area is included.
Saving Data as Comma Separated Value (CSV) file
In the next figure, the button pointed by the arrow allows to save the samples in the buffer in a Comma Separated Value (CSV) text file.
As shown in the figure, the button opens a panel on which some controls are used to define the desired file format. Data can be separated by various combinations of Comma, Semicolon, Space, and Tab characters. Each line can contain 1, 4, 8, 16, 32 or 64 numbers and can be terminated by a few combinations of Space, Carriage Return and Line Feed characters.
The file is saved with the extention of '.csv', and the format suggested in the figure above has been tested with MS Excel (R), that reads the file without any problem.
Saving Oscilloscope Setup
The oscilloscope settings can be made persistent, using the button shown in the next figure. It allows you to save them in the circuit file (otherwise, every parameter change will be temporary).
When this button is pressed, the user is notified with a message that the current setting will be saved in the circuit file (in relation to the DAC component it depends on).
Pay attention that the file will result modified, and that therefore, after exiting the simulation, it will be necessary to save the file in the main window. The settings will be stored separately for each DAC component in the circuit. Storing the parameters results in the creation of an UNDO entry, so the operation can be canceled.
Drawing colors setting
The arrow in the next figure indicates the penultimate button on the toolbar. Pressing it opens a 4-item menu, which allows you to choose between 4 possible sets of colors for drawing the waveform.
In the next figure we show the four possibilities in the following order: 'Native', 'Azure', 'Classic' and 'White'.
Automatic DSO re-opening
On the right in the Toolbar (see the figure below), we have a toggle button to set the automatic reopening of the DSO window when the simulation starts.
This information is saved in the Windows Registry, along with the position and dimensions of the DSO window.
Status Bar
At the bottom of the window we find the Status Bar (highlighted in the figure below).
It is divided into 4 fields.
- The first field on the left shows the current mode (Tracking or Trigger Mode).
- The second field, if the Clock Animation is on, shows the number of samples acquired versus the buffer size; otherwise, the field shows the index and the value of the sample pointed by the mouse (see the example subsequently reported).
- The third field displays the horizontal scale of the drawing, in terms of pixels / sample or sample / pixel, depending on the zoom level.
- The last field is active only in the Trigger Mode and shows the waveform period, evaluated as the number of samples occurred between the last and the previous trigger instant.
In the following example, the Animation Clock is stopped.
The white arrow shows a vertical cursor following the mouse movement. The second field of the Status Bar reports that, at the cursor position, the sample is stored at the index 3506 of the memory buffer, and that its value is equal to +16609.
The oscilloscope and the Timing Diagram.
The oscilloscope window can also be displayed when in the Timing Diagram Simulation Mode. However, consider that the waveform drawing is updated only at the end of each simulation interval.
The oscilloscope can be opened by simply clicking on the DAC component, when the timing diagram window is active. Alternatively, the DAC tracks show a menu item useful to show/hide the corresponding oscilloscope (see the next figure).
The automatic reopening of the window is inhibited in timing simulation, so that button is not visible. Also the buttons of the clock animation and of the choice of mode (here always Tracking) are made not visible (see the next figure).
A working example
The next figure shows a test circuit that enable you to play with the oscilloscope functionalities (click on the figure to open the circuit in the Deeds-DcS, in Auto-Play Mode [note: you need to have the latest Deeds version installed]).
Opening the file, the simulation with start automatically, thanks to the Auto-Play Mode set. What is necessary to do is... to click on the DAC component. The oscilloscope will open, as shown in the next figure.
New Attenuator Components
Two different 'Attenuator' components are now available (see the next figure):
The first one works with 8-bit signed numbers, the other with 16-bit signed numbers (two's complement coded). D is the input, R the output. The two components are graphically similar except for the overall dimensions and the bus pin size. C is the control parameter. The components work according to the following relation:
Where C is an unsigned fixed-point number, with the point set just after the first bit on the left. So, its value ranges from 0.0 to 1.0 (when expressed in decimal), since numbers greater than 1.0 are automatically set to 1.0.
The figure below shows the menu items that allow inserting the 'Attenuator' components in the schematic.
Basic example
The next figure shows a simple test circuit for the 16-bit type attenuator (click on the figure to open the circuit in the Deeds-DcS, in Auto-Play Mode [note: you need to have the latest Deeds version installed]).The example in the figure shows the input D receiving the binary signed number '1110011110100100' (-6236 in decimal), while the control input C is set to '0.100000000000000' (0.5 in decimal). Then the resulting output R is half of the input: '1111001111010010' (-3118 in decimal).
Low Pass Filter example
In the next figure, two 16-bit Attenuator components, together with a 16-bit adder and a parallel register, are employed to obtain a first order low pass digital filter (click on the figure to open it in the Deeds-DcS, in Auto-Play Mode [note: you need to have the latest Deeds version installed]).
To test this circuit, initially observe the output increasing from zero, following an exponential trend, after the activation of the reset. Then, click on the switch 'INPUT', on the left side of the schematic. In this way, you'll change the input value, selecting it between the 'LOWER' and 'HIGHER' values. Try to change it again, for instance inverting the switch state repeatedly.
By clicking on the DAC16 component with the mouse (during the simulation), you can open the related Digital Storage Oscilloscope, obtaining a timing diagram similar to the one shown in the following picture.
Low Pass Filter extended example
In the following figure, the same filter is driven by a square wave generator, whose frequency is controllable via the 4 switch array labeled 'Frequency' (click on the figure to open it in the Deeds-DcS, in Auto-Play Mode [note: you need to have the latest Deeds version installed]).
Also in this case, if you click on the DAC16 components (during the simulation), you'll open and configure their Digital Storage Oscilloscopes. In the following figure you can observe an overall windows setup, useful to analyze the relation between the input and the output waves.
New Anti-plagiarism System (under development)
The pandemic has forced many schools and universities to offer distance learning. As a result, many problems arose in relation to remote examinations and the need to prevent the phenomenon of plagiarism. So, thanks to the suggestion and collaboration of Luis Claudio Gamboa Lopes and, previously, of Arkadi Poliakov, we have added to Deeds an experimental system with the aim of controlling the phenomenon and its dissuasion.
The purpose of the system is to verify the authenticity of the work performed by the students and, moreover, to act as a deterrent to avoid copying and, in general, to counteract plagiarism. The system enables you to detect when and from whom a file or part of it has been copied, also allowing you to go back along the tree of contents exchanges.
Until now, only the core mechanism enabling plagiarism detection has been developed. It produces raw data difficult to read at first glance. The high-level tool interpreting them has yet to come. In the meanwhile, the documentation presented here could be useful for teachers to develop their own customized analysis system.
Please contact the author for any clarifications on the matter or suggestions.
Operating principle
All the components will get a few encrypted records that register the identifiers of the author and its particular Deeds installation. When one or more components are copied from a system to another one, these encrypted records are integrated with the identifiers of both the systems, maintaining a 'tree' structure that allows to know the Deeds installation that was used in the previous copying passages, and the date and time of the copy.
A teacher normally has all the files submitted by the students available, so this kind of information allows to build a 'tree of copies' between the students. To do this is necessary to have a particular external tool (at the present it is on development) that will analyze all the information that Deeds-DcS will make available for each delivered file.
The Deeds-DcS tool can generate a so-called 'anti-plagiarism report text file', starting from every '.pbs' or '.cbe' file submitted by the students. There are two ways to obtain the report file.
The first involves the use of a dedicated menu item. Note that the presence of this command also has the parallel purpose of constituting a concrete psychological deterrent, being clearly visible to the student.
The second way allows you to generate the report file in batch mode, from the command line. This mode allows an external, automatic tool to perform an overall test on all the files submitted by the students.
Menu item mode
In the figure below, the green arrow indicates the command 'Plagiarism Check' that allows to generate the anti-plagiarism report. It is available under the main menu item 'Circuit':
Note that the menu command is enabled only when the simulation is not active and when the timing diagram is not open. When the user clicks on this menu command, the following dialog box is shown.
After choosing the path and name of the plagiarism report file, it will be constructed and saved (in '.txt' text format).
Command line mode
To generate the report in batch mode, the '-r' command line command is available. Here an example:
DeedsDCS.exe -r "D:\Deeds\MyCircuit.pbs" "D:\Tests\MyCircuit.txt"
This command line runs the Deeds-DcS 'silently', telling it to open the '.pbs' (or '.cbe') file specified and to generate the report file, named as specified. Omitting the second file reference will default to the same path and name, but with the extension '.txt'.
Anti-plagiarism report text file contents
In the first rows of the file we find a historical list of the identifiers of the Deeds installations in which the file was opened, modified and then saved. Each line includes the identifier of the Deeds installation and the date and time of opening/creation of the file. See the following example:
ID-- Time---------------
0F0F 2021/10/03-17:07:45
F043 2021/10/05-09:34:16
3CA5 2021/10/05-09:38:20
As an example, consider the case in which the teacher gives to the student a 'template' file to be completed. In this situation, when the student ends its work, in the list there should be only two identifiers. The one registered in the original file (as saved by the teacher) and the one of the student, respectively in the first and second row of the list.
In the example above, it is evident that the file was processed in between through a third system.
This could be a case where the student has used multiple computers to finish his work. A cross-check among the delivered files will make it possible to exclude that the intermediate identifier belongs to some other student, or that more students have received, for instance, a contribution from an external 'expert'.
The next part of the file lists all the components and wires included in the circuit file. Each row includes the following fields, in the order:
1) Cbe-Prog-Type,
2) Own Creation ID,
3) Last Creation ID,
4) Origin Creation ID,
5) X1, Y1, X2, Y2 and Component
The first field represents simply the internal identifier of the component. The fifth (and last) field reports its coordinates and type (AND, OR, MUX...).
Fields 2, 3 and 4 are more interesting, and represent the 'creation identifiers' of the component.
When a component (or wire) is inserted ex-novo in the schematic, a newly created identifier is stored as 'Own Creation ID', that also includes the identifier of the Deeds installation. The 'Own Creation ID' is duplicated also in the 'Origin Creation ID'. The 'Last Creation ID', instead, is initially cleared to testify that the component is original and it has NOT been copied (yet) from anywhere.
When a component is inserted in the circuit through a copy-and-paste operation, a new 'Own Creation ID' is created, but the other two identifiers came from the copied 'source' component. The source 'Own Creation ID' is copied in the 'Last Creation ID', while the source 'Origin Creation ID' is copied in the 'Origin Creation ID'.
See the following example of a row (here divided into several lines for ease of reading):
000-000A-0403
3CA5-03DE80F2-2021/10/05-09:39:59
F043-11D62399-2021/10/05-09:39:49
F043-11D62399-2021/10/05-09:39:49
120 30 - - Multiplexer 8->1
In this example we see that:
1) The system in which the component has been pasted is identified by the number '3CA5';
2) It was directly copied from another file saved in a different Deeds installation, identified as 'F043';
3) It was originally created just there, in the system 'F043'.
The 'Last Creation ID' allows us to uniquely back-trace the component and the Deeds installation from which the copy was made in the last copy-and-paste operation. Thanks to this information, we have the possibility to reconstruct backwards the 'copying chain' of the components through the Deeds installations.
The 'Original Creation ID' allows us to directly know the 'forefather' component and Deeds installation that originated the copy-and-paste chain (it represents the 'mark of guilt' of the first author of the file). Note that we can distinguish if the copy-and-paste comes from files saved in the same installation of the student, or from files coming from other sources.
Here the complete report file of the example (you can click on the figure to open the text file):
Mouse Wheel button
In the schematics editor, it was possible to enter the panning command by pressing and then releasing the middle mouse button (or the mouse wheel used as a button). Starting with the present version, if we are already in the panning command, pressing and then releasing the middle mouse button again will return to the idle state.
New '.pbs' and '.cbe' file version
The internal format of the '.pbs' and '.cbe' files has changed (version '1.038'). As usual, the old files are readable by the new Deeds version, while files created by the current version are not compatible with the older Deeds-DcS releases.
CBE Copy & Paste Bug Fix
Due to a bug, it was possible to insert, but not to paste, components of type 'Test Point' (of any pin size), into the schematic of a CBE (Circuit Block Element). The problem has been fixed.
CBE Simbol Editor Bug Fix
When rotating a CBE component, in the Circuit Block Symbol Editor, in one of the orientations, sometimes the symbol was displayed cut off at the top, as shown in the figure below.
Now the problem has been solved, and you can scroll correctly the view:
Timing Diagram Bug Fixes
In the timing diagram window you can save the simulation screen in a high resolution PNG (the next figure shows the available command).
Sometimes, in the 'quality' version of the timing diagram, the captions of the tracks, shown on their left, were incorrectly positioned in the vertical order. This problem has been solved (see an example of the resulting PNG image in the next figure).
In addition to this, a bug related to the display of the simulation trace of 4-bit DACs (as the one shown above) has been corrected. The values displayed next to the transitions were incorrect.
Animation Bug Fixes
In the next figure are highlighted two of the controls available at the bottom of the main window. 'Clock Animation Speed' (yellow arrow) and 'Clock Animation ON/OFF' (green arrow).
Due to a bug, these animation parameters were erroneously restored to the default values, if the timing diagram window was opened and in meantime we moved the focus on another application. Now the problem has been fixed.
DMC8 Debugger Bug Fixes
In the previous version, the possibility to clear the '.mc8' project loaded in a DMC8 component has been added. See the figure below, where the 'Clear Project' button is highlighted.
Sometime, when clearing the DMC8 project, an error occurred, resulting in a crash. Now the problem has been solved, and the deletion now behaves in the same way of inserting a new 'empty' component.