I recently released three small projects on my personal github:
Thursday, November 15, 2018
Kudos to Edaphic Studio
I have previously talked about my use of IntelliJ as my primary development environment for Scala, C++ (CLion), JavaScript (Webstorm), and Python (PyCharm). I cannot recommend it enough. As luck would have it, a company is developing an IntelliJ plugin for Verilog and SystemVerilog. The plugin is in beta phase but remains exceptionally usable. The author is responsive in addressing my bug reports. Most refreshing is the tools' transparent pricing structure. No EDA sales representatives to deal with!
In summary, I wholeheartedly recommend hardware developers check out: https://www.edaphic.studio/.
In summary, I wholeheartedly recommend hardware developers check out: https://www.edaphic.studio/.
Thursday, September 6, 2018
Register a bundle in Chisel3
A quick update to a previous post that I made: http://blog.edmondcote.com/2017/03/register-bundle-in-chisel.html. Here is how I now create a register (sequential storage element) of a bundle in Chisel3. The benefit is the elimination of the previously-necessary wire declaration.
val pageReg: Page = RegInit({ val page = Wire(new Page()) page.initialize() page })
Thursday, August 2, 2018
Cramming and (Re-)Learning
I remember "ignoring" my statistics class in undergrad. What I mean by that is I never attached real importance to the subject matter. I did enough work to get through midterm and final exams, but not much else. The result is that none of the content ever stuck. I felt lucky that I was able to cram sufficiently and pull off B+ or A- grades. In retrospect, I recognize that I could have done a much better job in absorbing the material. Not only in statistics but in other subjects as well...
Back to re-learning.
Saturday, July 7, 2018
Fix journalling issue older generation SSD performance in Linux
I found a solution to an issue that has been hampering my development efficiency for months. The symptom of the problem was any large file I/O operations on my secondary SSD stalled my Linux system. The drive only contains applications and it is not a working volume.
My initial guess was a failing SSD. SMART values did not indicate as such. The drive was only a few years old and was from some obscure brand (PNY).
IO profiling indicated that process [jdb2/sdd1-8] had high IO write wait times while the system was "stalled". I reproduced the behavior by writing a large random file to the disk.
Fast forward a few hours of research and unsuccessful attempts at modifying filesystem settings. The solution was to disable journaling for this "previous generation" SSD drive. It is work noting that the problem does not occur on my "newer generation" Samsung 840 root drive.
Lesson learned? It would have been nice to "call IT" and have them fix it. Not much else. I guess that learned about IO system profiling and file system journalling. It's time to get back to real work.
# monitor journalling process sudo iotop -obtqqq | grep "jbd2" # write large random file head -c 10G < /dev/urandom > tmp # disable journaling, need to unmount first sudo tune2fs -O ^has_journal /dev/sdd1 # drive information === START OF INFORMATION SECTION === Device Model: SSD2SC120G3LA726B087-327 Firmware Version: 560ABBF0
https://www.harddrivebenchmark.net/hdd.php?hdd=SSD2SC120G3LA726B087-327
Subscribe to:
Posts (Atom)