Category Archives: Computer Engineering
Add -g option to riscv-tests

To enable debug, “CFLAGS=-g ./configure” won’t work, edit ./isa/Makefile and add -g to variable RISCV_GCC_OPTS then it works. The dump file won’t show debug info, run “riscv64-unknown-elf-objdump -DS rv64ui-v-addi” then you see it
HKPS First RISC-V Board

Weact Logic Analyzer

https://github.com/WeActStudio/LogicAnalyzerV1
All the gates I have

如果想知道容器嘅原理

如果想知道容器嘅原理,我圈起左
IoT sensors

Good ELF diagram

http://blog.k3170makan.com/2018/10/introduction-to-elf-format-part-vi.html
Fixed dwarf bug

When i change kernelvec.S to -ggdb, my dwarf library broken but now fixed. Commit :e640c3d9 And I still don’t understand why .S won’t be an compile unit in dwarf, why design like that.
Quantr Dwarf Library – Print address/lineNo/ColNo from specific address

Install apache and php for http research

I need a super clean apache and forward all PHP requests to a independent php-cgi process which host by a specific port 1. Install Apache Mac In ubuntu, no need to build apache from source, just “sudo apt-get install apache2” Linux 2. Install PHP Mac Linux if you meet this error “configure: error: re2c 1.0.3 […]
The way to extend qemu TCG plugin functionality

Hi, if want to to provide other function-calls to TCG plugin, such as reading guest memory, follow these steps: https://peter.quantr.hk/2024/01/qemu-risc-v-log-all-memory-operations/ 5. Run in qemu 6. Edit xv6-riscv Makefile: References:
QEMU risc-v , log all memory operations

Step 1: Step 2: modify ./tests/tcg/plugins/mem.c , add this code in vcpu_mem() Step 3: in xv6-riscv change this to Then you see this References
Qemu’s trace_memory_region_ops_write

I was trying to find the body of trace_memory_region_ops_write function in qemu source code, can’t find it. It is generated by python script (log.py)
RISC-V qemu doesn’t log “PRIV” in every instruction

RISC-V qemu seems wrong because it doesn’t log “PRIV:” in every instruction in qemu.log. Even mret is execute and the mode is changed, it doesn’t log “PRIV”. To fix this:
Create a breadboard FPGA

We tried to ask GOWIN to let us generate the bitstream but seems they are not willing to open their standard, xilinx and altera has no hope too. So for education purpose we now go for build a simple one. We found the way to break logic into LUTs, so we want to build a […]
NOR vs NAND flash

i finally found the differences between NOR and NAND flash, but just dont know what is it
ENC28J60 + Arduino

Arduino Function Generator

I am using Nano and AD9833 to build a simple function generator. Code in here https://gitlab.com/quantr/hardware/arduino-function-generator
Arduino + AD9833 using library by Rob Tillaart

Buy the board here : https://item.taobao.com/item.htm?spm=a1z09.2.0.0.6caf2e8dU9c4dS&id=590166217396&_u=6buhab0a8d9 Install the library, see below Make sure connect these pins to the board, total 5 pins, follow below Refer to https://github.com/RobTillaart/AD9833 , more examples in https://github.com/RobTillaart/AD9833/tree/master/examples
Arduino + AD9833

Buy from here. I am using the example from here but ignore the switch buttons. You need to add this zip into the library and make sure don’t install the other library call “AD9833”, very important
Rotate button by Arduino

Refer to https://zhuanlan.zhihu.com/p/349824627 , buy from here
MCP4725 I2C DAC Breakout board

Bought from here Testing maximum frequency, around 800us
GY-4725 board

Bought from here. This code test maximum frequency, around 1ms period is peak Documents
計準NPN了

Main point: calculate Ib, we can do it by Ib=Ic / Beta min OR Ib=(Vb – 0.7) / Rb
FPGA Research

This is a synthesis of a simple verilog program in vivado
Funny Toy : Oscilloscope

I got this electronic toy from Taobao, i want to have more experience on soldering and putting different components on the PCB and making them work. After 3 hours in soldering and 1 hour in debugging, i finally make it works https://v.youku.com/v_show/id_XNjAyNDAwNDY2OA==.html?spm=a2hje.13141534.1_3.d_1&scm=20140719.manual.240103.video_XNjAyNDAwNDY2OA== All documents here
Nucleo-L476RG DAC

砌機 : FPGA

Lattice FPGA比STM32簡單, 我應該可以搞得掂 用户手册:           https://github.com/wuxx/icesugar-nano/blob/main/README.mdwin7串口驱动:   https://github.com/wuxx/icesugar-nano/blob/main/doc/usbser.inf原理图及源码:   https://github.com/wuxx/icesugar-nano 主要component其實得兩個: FGPA同粒Flash
Multimeter book, teach you how to build one

Arduino read/write AT24C256

Many examples not work from google, it is because it needs a delay after write operand, so i put delay(100)
Quantr-Logic + PLD

We are thinking of synthesis logic into FPGA but the task is quite complex, We found a new way to do what we want: We generate the jedec file and let the end user burn it into PLD. This brings us the ability to design logic from Quantr-Logic, kick a button, and burn it into […]
ATMEGA328P default fuse

RISC-V Day Hong Kong 2023

thank you Professor Ray invited us to join
VTC個online library係無敵嘅

Download論文一個click, 至少比Cityu無敵
Support debug using vscode for xv6-riscv

launch.json in “.vscode” folder tasks.json “.vscode” folder Remove “-O” in Makefile run: set some breakpoints in vscode make qemu-gdb click the “run” button in vscode, see below
Elec components related to FPGA

Nand / Nor

i know any gate can convert to NAND or NOR, asked many time why people always use NAND instead of NOR, no one can answer, but i found the answer now. NAND need voltage, NOR need current.
Heltec Arduino super simple tutorial

Buy from here. Offical website. Steps to make it work in arduino: 3. Burn these examples To try the wifi example 2. Change the wifi ID and password, case sensitive 3. Run it and see the result in serial monitor, set the baudrate to 115200. It grab the html from outside, see the code then […]
Arduino Nano V3.0 + NRF24L01

This little board is nearly the same size as nano but embedded with a NRF24L01, and also very cheap $4 USD. To make it works: The “RF24 > Scanner” will works like below 100% compatible with Arduino nano
CLB and IOB design

altera and xilinx probably copying each other