Hayashi's Blog
External icon
Yodalee's Blog
About
Series
  • Hello Verilator—高品質&開源的 SystemVerilog(Verilog) 模擬器介紹&教學(二)

    Dec 29, 2020 c++ verilator verilog systemverilog

    在前面一篇文章中分享了作者使用 verilator 來模擬數位 IC 的經驗。Verilator 具有對新語法的支援度、相當好的可靠度,速度甚至在商用工具之上,這篇文章將會用個簡單的案例分享 verilator 的用法。

    [系列文連結在此]

    Read More
  • Hello Verilator—高品質&開源的 SystemVerilog(Verilog) 模擬器介紹&教學(一)

    Dec 28, 2020 c++ verilator verilog systemverilog

    台灣的 CIC 免費提供學界許多昂貴的 EDA tool,在這個影響下,講到 SystemVerilog(Verilog) 模擬器(太長了,下面簡稱模擬器),多數人第一個想到的都是經典的 Cadence 的 ncsim,或是 Synopsys 的 vcs。說到免費的模擬器,有些人可能聽過 iverilog 這個知名的替代品,然而受到實做上的限制,iverilog 的效能基本上無法作為 production 使用。於是我打算用幾篇文章來介紹近年來興起的 verilator,他是一個優秀的模擬器替代品,我自己的使用經驗中,效能甚至可以超越商用昂貴的模擬器。

    [系列文連結在此]

    Read More
  • 從一個 C++ class 自動生成另外一個 adaptor class(二)

    Dec 13, 2020 c++ template adaptor pattern

    程式設計師常常會用到 code generator,code generator 可以只根據簡短的描述,自動產生出具有許多額外功能的 class 程式碼。上一篇中提到了,程式設計師有時會想要替生成程式中的 class 的,加入新的功能,這時 adaptor pattern 就很好用了。

    [系列文連結在此]

    Read More
  • 從一個 C++ class 自動生成另外一個 adaptor class

    Dec 5, 2020 c++ template adaptor pattern

    程式設計師常常會用到 code generator,code generator 可以只根據簡短的描述,自動產生出具有許多額外功能的 class 程式碼。舉筆者常用的 code generator 為例,protobuf 可以自動生成「把 JSON 解析成 C++ 中的 STL 物件」的 class(object serialization);verilator 可以把 Verilog 轉換成「可以用 C++/SystemC 進行模擬」的 class。

    [系列文連結在此]

    Read More
  • C++ string 的兩種實做

    Nov 8, 2020 c++ stl string

    最近在玩一些比較老舊的程式碼的時候,發現 g++ 5 前後的 sizeof(std::string) 的大小有相當大的差異,在 64-bit 平台下,有 g++ 5 之前是 8 bytes,之後是 32 bytes。這其中的差異蠻有趣的,尤其是舊版的 string 只要一個 pointer 的大小,於是就找了一下資料並記錄下來。

    Read More
  • C++ smart pointer 之速度之討論(二)

    Oct 25, 2020 c++ pointer

    在系列的上一篇中,提到了如何使用 shared_ptr 才能增加程式中「函數間互相傳資料」的速度。然而首先,C++ 的 shared_ptr 是 thread-safe 的,有時候我的程式並不需要 thread-safety,但為了維持這個性質可能會產生不少 overhead。其次,前文中使用 shared_ptr 時每次放資料都要自己 push/pop,寫起來也不是很乾淨。有沒有可能自己寫一個簡單的 shared_ptr 來增加效率以及增加使用時的方便性呢?

    [系列文連結在此]

    Read More
  • C++ smart pointer 之速度之討論(一)

    Oct 6, 2020 c++ pointer

    在 C++11 中,引入了 unique_ptr 以及 shared_ptr 兩種新的 smart pointer 來取代 C++03 很難用的 auto_ptr。網路上有許多文章在討論 auto_ptr 的缺點,這不在本的討論範圍內,基本的 unique_ptr 功能也不在本文的討論範圍。本文中,我將會用一個例子,討論如何使用這兩種 smart pointer 才能增進程式運行速度。

    [系列文連結在此]

    Read More
  • DRAM 的運作 (Computer Architecture 側)(二)

    Sep 29, 2020 computer architecture

    早先的文章中介紹了 DRAM 的運作方式,而這篇文章的將會從市面上買到的 DRAM 為出發點,試著把前一篇文章的偏理論內容跟實際可買到的 DRAM 連結起來。

    [系列文連結在此]

    Read More
  • 現代編譯器優化竟然可以作國中等級的代數運算?

    Sep 24, 2020 c++ compiler

    這篇是我 2018 年在 stackoverflow 發的問題,當時在 stackoverflow 上也有不少討論,也讓我賺了不少 stackoverflow 點數,最近有機會重新整理一下這篇文章,寫在自己的網站上。

    Read More
  • 用 C++ 測試記憶體延遲

    Sep 21, 2020 c++ data structure computer architecture

    許多的 benchmark 工具 (e.g., geekbench v4, aida64) 都具有測量記憶體延遲的功能,有些甚至還能測試快取的延遲。 於是我就很好奇,到底這些工具是怎麼定義記憶體延遲的呢? 進一步說,有可能用簡單的 C++ 程式就重現出這些工具的測量結果嗎?

    Read More
    • ««
    • «
    • 1
    • 2
    • 3
    • 4
    • 5
    • »
    • »»

Hayashi's Blog

Ahoy! 平凡無奇的工程師部落格 peko
Read More

Featured Posts

  • Systemverilog interface/modport 簡介&使用方法 (6 years after)
  • 在 Xilinx SoC 上放上自己的 IP(一)
  • 從一開始的 Xilinx SoC 開發,PetaLinux 使用(一)
  • 從零開始的 Xilinx SoC 開發(五)
  • 從零開始的 Xilinx SoC 開發(一)
  • 來開發 Visual Studio Code SystemVerilog plugin 吧!開發紀錄(四)
  • 來開發 Visual Studio Code SystemVerilog plugin 吧!開發紀錄(三)
  • 來開發 Visual Studio Code SystemVerilog plugin 吧!開發紀錄(二)
  • 來開發 Visual Studio Code SystemVerilog plugin 吧!開發紀錄(一)
  • SystemVerilog 中的 universal verfication methodology (UVM) 是什麼(二)
  • SystemVerilog 中的 universal verfication methodology (UVM) 是什麼(一)
  • Systemverilog interface/modport 簡介&使用方法
  • Hello Verilator—高品質&開源的 SystemVerilog(Verilog) 模擬器介紹&教學(三)
  • Hello Verilator—高品質&開源的 SystemVerilog(Verilog) 模擬器介紹&教學(二)
  • Hello Verilator—高品質&開源的 SystemVerilog(Verilog) 模擬器介紹&教學(一)
  • 從一個 C++ class 自動生成另外一個 adaptor class(二)
  • 從一個 C++ class 自動生成另外一個 adaptor class
  • 將 N 個球隨機放入 M 個桶子的數學問題
  • C++ smart pointer 之速度之討論(二)
  • C++ smart pointer 之速度之討論(一)
  • DRAM 的運作 (Computer Architecture 側)(二)
  • 現代編譯器優化竟然可以作國中等級的代數運算?
  • 用 C++ 測試記憶體延遲
  • 整數定數除法的代換 (constant integer division)
  • DRAM 的運作 (Computer Architecture 側)

Recent Posts

  • 各種好用的 SystemVerilog 語法 (07) - local variable
  • 各種好用的 SystemVerilog 語法 (06) - typedef (union)
  • 各種好用的 SystemVerilog 語法 (05) - typedef (struct)
  • 各種好用的 SystemVerilog 語法 (04) - typedef (enum)
  • 各種好用的 SystemVerilog 語法 (03) - typedef (integer types)
  • 各種好用的 SystemVerilog 語法 (02) - always
  • 各種好用的 SystemVerilog 語法 (01) - logic
  • Boost hana:強大的 compile-time library(一)

categories

TECHNICAL 43 TOOL 18 ARCHITECTURE 3 PERFORMANCE 3 MATH 2 GAME 1 SYNTAX 1 THEMES 1

series

好用的 SYSTEMVERILOG 語法 7 從零開始的 XILINX SOC 開發 5 開發 VISUAL STUDIO CODE SYSTEMVERILOG PLUGIN 4 HELLO VERILATOR 系列 3 在 XILINX SOC 上放上自己的 IP 3 從一開始的 XILINX SOC 開發,PETALINUX 使用 3 DRAM 的運作 2 SMART POINTER 速度 2 自動 CLASS 生成 2 BOOST::HANA 1
All series
BOOST::HANA1 DRAM 的運作2 FACTORIO 介紹1 HELLO VERILATOR 系列3 SMART POINTER 速度2 在 XILINX SOC 上放上自己的 IP3 好用的 SYSTEMVERILOG 語法7 從一開始的 XILINX SOC 開發,PETALINUX 使用3 從零開始的 XILINX SOC 開發5 自動 CLASS 生成2 開發 VISUAL STUDIO CODE SYSTEMVERILOG PLUGIN4
[A~Z][0~9]

tags

SYSTEMVERILOG 14 C++ 12 XILINX 12 VIVADO 8 VERILOG 6 VSCODE 4 COMPUTER ARCHITECTURE 3 PETALINUX 3 TEMPLATE 3 VERILATOR 3
All tags
ADAPTOR PATTERN2 BINOMIAL1 BOOST2 C++12 COMPILER2 COMPUTER ARCHITECTURE3 CSS1 DATA STRUCTURE1 FACTORIO1 FEATURED1 HANA1 HTML1 MAKEFILE1 MARKDOWN1 MULTINOMIAL1 PETALINUX3 POINTER2 STL1 STRING1 SYSTEMC2 SYSTEMVERILOG14 TEMPLATE3 THEMES1 UVM2 VERILATOR3 VERILOG6 VIM1 VIVADO8 VSCODE4 XILINX12
[A~Z][0~9]

2024 HAYASHI'S BLOG. (CC BY-NC-SA)