summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tmp/anonymization.txt13
-rw-r--r--tmp/c_coding4
-rw-r--r--tmp/qucs-debian-wheezy8
-rw-r--r--tmp/review_nonblocking_verilog_kill67
4 files changed, 92 insertions, 0 deletions
diff --git a/tmp/anonymization.txt b/tmp/anonymization.txt
new file mode 100644
index 0000000..cb6fc86
--- /dev/null
+++ b/tmp/anonymization.txt
@@ -0,0 +1,13 @@
+
+"Policy and Law: Identifiability of de-identified data"
+(includes, specifically, medial)
+http://latanyasweeney.org/work/identifiability.html
+
+EFF de-anon tool for browsers
+Netflix/IMDB dataset
+search query dataset
+
+"how many bits" type of identification
+
+https://en.wikipedia.org/wiki/Data_anonymization
+https://en.wikipedia.org/wiki/De-anonymization
diff --git a/tmp/c_coding b/tmp/c_coding
new file mode 100644
index 0000000..68760f9
--- /dev/null
+++ b/tmp/c_coding
@@ -0,0 +1,4 @@
+
+The Lost Art of C Structure Packing
+http://www.catb.org/esr/structure-packing/
+
diff --git a/tmp/qucs-debian-wheezy b/tmp/qucs-debian-wheezy
new file mode 100644
index 0000000..b5d9714
--- /dev/null
+++ b/tmp/qucs-debian-wheezy
@@ -0,0 +1,8 @@
+
+0.15.0 was in squeeze repo; seems to have "just worked"?
+
+Compiling 0.17.0 from scratch:
+- needed: libgd-gd2-perl libxml-libxml-perl
+ (trying to use debian packages vs. CPAN versions)
+- checkout 0.17 tag
+- need to use the --enable-maintainer-mode, at least for qucs-core
diff --git a/tmp/review_nonblocking_verilog_kill b/tmp/review_nonblocking_verilog_kill
new file mode 100644
index 0000000..296f8c5
--- /dev/null
+++ b/tmp/review_nonblocking_verilog_kill
@@ -0,0 +1,67 @@
+to: team@leaflabs.com
+subj: paper review: "Nonblocking Assignments in Verilog Synthesis..."
+
+TL;DR: this is something like a "goto considered harmful" w/r/t using confusing
+blocking assignment in (non-sythesizable?) Verilog.
+
+# Context
+
+This paper was written in 2000 and seems to target Verilog programmers who
+write non-synthesizable simulation code. Despite the word "Synthesis" in the
+title. After reading, the implication that this paper might have any new
+insights for an engineer whose failure might "kill" stikes fear in my gut.
+
+Apparently this won a "Best Paper" award at a conference back when it was
+published.
+
+On page 15 there is a note about about synthesis performance: "The latter would
+be inefficient from a simulation time perspective"; perhaps this was the
+historical temptation of these bad practices?
+
+# Judgement
+
+There's really nothing new here (for jess/aj/bryan at least): for sequential
+logic use nonblocking assignment in always@ blocks, and for combinatoral logic
+use 'assign' statements outside of a block, unless you have something really
+tight and complicated going on, in which case use an always block with a
+carefully selected sensitivity list and all blocking assignments inside.
+
+# Nuggets
+
+From page 20: "Nonblocking assignments are updated after all $display
+commands". I did not know this! The example given is pretty good; $strobe is
+recommended as the alternative:
+
+ module display_cmds;
+ reg a;
+ initial $monitor("\$monitor: a = %b", a);
+ initial begin
+ $strobe ("\$strobe : a = %b", a);
+ a = 0;
+ a <= 1;
+ $display ("\$display: a = %b", a);
+ #1 $finish;
+ end
+ endmodule
+
+gives:
+
+ $display: a = 0
+ $monitor: a = 1
+ $strobe : a = 1
+
+# Appendix: Verilog Coding Guidelines
+
+Verbatim from paper:
+
+1: When modeling sequential logic, use nonblocking assignments.
+2: When modeling latches, use nonblocking assignments.
+3: When modeling combinational logic with an always block, use blocking
+.
+4: When modeling both sequential and combinational logic within the same always
+nonblocking assignments.
+5: Do not mix blocking and nonblocking assignments in the same always block.
+6: Do not make assignments to the same variable from more than one always block.
+7: Use $strobe to display values that have been assigned using nonblocking
+.
+8: Do not make assignments using #0 delays.