Emulator 小註解

根據 WIKI, Emulator 分為 hardware [1], software [2] 兩種. Hardware Emulator 是用 hardware 去模擬 IC 硬體, software emulator 則是用軟體去模擬 IC. 後者比較單純, 以我用過的 Analogic Device 的 DSP emulator, 只要設定 SRAM 的 delay cycle, 就可以知道自己寫的程式在 IC 能否跑得動.

而在 WIKI 的定義中,  ICE (In Circuit Emulator) 算 HW emulator, 但 FPGA (Field Programmable Gate Arrays) proto-typing 不算 HW emulator. 問題不出在 FPGA 不能當 HW Emulator, 而是出在 FPGA proto-typing 和 HW Emulator 有差距.

知乎這篇 [3] 說到, FPGA proto-typing 和 HW Emulator 的本質不同

  1. HW Emulator 可以處理的 gate 數較大, 即使要驗的電路變複雜, 也不像 FPGA 那樣 routing 愈複雜就跑得愈慢.
  2. HW Emulator 是由 CAD 提供一整套系統. 而 FPGA 買回來之後通常是 HW SD 做一張板子, IC designer 提供特製的 RTL 跑出來的 bitfile 檔. 為了配合 FPGA 的先天限制, 連 IC 的功能都不會完整放上 FPGA. 例如實際上跑 4 核 CPU, FPGA 上只放一核.
  3. “emulator可认为是软件simulator的硬件化,是虚拟世界;FPGA prototype是物理芯片流片前的原型化,是真实世界。” 這句話直接引用 [3]. 雖然兩者的 clock 都不夠真實, 但 emulator 下所有 IP 的 clock 能維持相對比例, 例如 CPU 可以模擬 1.5GHz, 並切搭配跑 700MHz 的 GPU. 但 FPGA 上的 CPU 就是和其它 IP 一樣都跑 MHz 等級.

三大 CAD 公司都有 Emulator 的產品, Cadence Palladium, Synopsys ZeBu, Mentor Veloce. 有趣的是,  Palladium 用特製的 processor 來實現, Veloce 用 ASIC 來實現, 而 Zebu 就是用 Xilinx 的 FPGA 來實現. 難怪 HW SD 會說: “你就把它想像成一個超大的 FPGA.”

Emulator 還有不同的操作模式:

  1. Stand-alone: 全部電路在 emulator 中單獨跑.
  2. ICE: 待測電路放在 emulator, 透過  speed bridge 接到高速週邊 USB 等等.
  3. Co-simulation: 和 server 上的 sw simulator co-sim. 例如模擬 Android 跑在 IC 上就有可能用到.

先筆記到這裡.

[Ref]

  1. https://en.wikipedia.org/wiki/Hardware_emulation
  2. https://en.wikipedia.org/wiki/Emulator
  3. https://www.zhihu.com/question/47732296

HDCP 2.3 小註解

上次寫了一篇 HDCP 相容性的筆記, 引起一些網友發問. 最近又浮出 Miracast 的客戶, 只好再研究一下, 順便拋磚引玉.

HDCP 分為應用於 on HDMI 以及應用於 Interface Independent (AV stream) 兩個狀況. 兩者最顯著的差異, 我認為是 encryption 就不同.

HDMI 的 HDCP cipher 在 section 3.0 HDCP encryption 中的 3.2.

AV stream 在 section 3.4 中描述的 HDCP cipher 則如下. 

兩張圖雖然都是 Figure 3.2, 但 AV stream 輸入的會以 32 bit 的  stream counter 和 64 bit 輸入的 LSB 做 XOR. HDCP TX 會針對每一個 PES 指定一個 32 bit 的 stream counter. 當然每個節目 (program) 的 stream counter 也會不一樣. 這樣切台時, 就要重新算一次新的值, 而不能跨台共用.


接下來關心 V2.3 和 V2.2 的差異. 在 Interface Independent 的部分.

V2.3 的規格書比 V2.2 多了一個 appendix 的 test vector 章節, 官網還特別放了 HDCP independent (for AV stream) 和 over HDMI 兩種 test vector 相容性測試文件. 除此之外, 最大的差異反映在 revoke 的能力, 其它的差異不大.  因此有家 Inside Secure 宣稱可以提供軟體升級 HDCP V2.3 [5].

所謂的 revoke 是說, upstream device (HDMI TX) “may” 對 downstream device (HDMI RX) 做 revoke list 的檢查. 如果這個 HDMI RX 是一個 repeater, 後面還接著一堆 HDMI device, 那麼它們的 receiver ID 也都在被檢查之列. 如果 receiver ID 出現在黑名單, 那 HDCP 的 authentication 就算失敗. 

基於這一點, V2.3 的 page 42 最前面還多了一段描述, 特別指出拔掉已經驗證過 HDCP receiver 也會觸發 RxStatus 變成不 ready.

第二大的差異是 HDCP V2.2 只提它和 HDCP2_0 的相容性, 這暗示 HDCP V2.2 和 V2.1 比較相容. 但 HDCP V2.3 常用 HDCP2_LEGACY 概括描述先前版本, 或者同時提到 V2.2 和 V2.1.

最後有個微小的差異是,  V2.3 當中, 有 18 處提到 TMDS (傳輸最小化差分訊號) 這個名詞, 而 V2.2 當中只提到 4 次 TMDS, 多出的這 14 個地方是用來釐清: TMDS 訊號未必都是 video pixel.

至於 HDCP V2.2 和 V2.3 都各自出現了 13 次 T.M.D.S. 沒有句點的 TMDS 是指訊號, T.M.D.S 是指這個技術, 常出現在方塊圖.


在 on HDMI 的部分. V2.3 和 V2.2 的差異也都是那些: test vector, revoke 之類的. 我看到唯二更不同是:

(1) 特別提到 audio 要參照 Exhibit C section 3.3.1.

(2) Page 39 的 Figure 2.16 的說明改了. State C0: Unauthenticated 多了一個 upstream side de-assert HDCP_HPD 的選項. 原本 State C0 就是 receiver 在等著進到 authentication 而已.

[Ref]

  1. https://www.digital-cp.com/sites/default/files/specifications/HDCP%20Interface%20Independent%20Adaptation%20Specification%20Rev2_2_FINAL.pdf
  2. https://digital-cp.com/sites/default/files/HDCP%20Interface%20Independent%20Adaptation%20Specification%20Rev2_3.pdf
  3. https://www.digital-cp.com/sites/default/files/specifications/HDCP%20on%20HDMI%20Specification%20Rev2_2_Final1.pdf
  4. https://www.digital-cp.com/sites/default/files/HDCP%20on%20HDMI%20Specification%20Rev2_3.pdf
  5. https://advanced-television.com/2019/01/08/inside-secure-debuts-software-only-solution-for-hdcp-2-3/

 

3140.HK vs SPY 小整理

放假了, 仔細思考一下手上的投資.

先前隨著買進港股的中國 ETF (28兩01.HK, 3169.HK), 也買了一些港股的 S&P500 (3140.HK). 不過近日對它的績效有所懷疑, 因此拿最近幾年的數字來 PK 一下. 先講結論, 其實買原生的 SPY 比較好. 如果是買中國相關 ETF, 則是港股比美股好.

根據 Yahoo Finance 的歷史資料, 3140.HK 最早一筆資料是 2015/7, 而這個 ETF 創立於 2015/5/18, 所以已經涵蓋幾乎整個週期了. 假設我用 100 HKD 去買 2015/7 收盤價的 3140.HK 與 SPY, 先不管手續費等等開銷, 那麼個字可以買到的數量如下.

  HKD USD 匯率
  100 12.90183 7.75084
3140.HK 14.9    
SPY   199.16  
股數 6.711409 0064781  

兩種 ETF 每一季每一股的配息數字如下:

Dividen 3140.HK SPY
2015Q3 0.05 1.3343
  0.05 1.21155
2016Q1 0.04 1.0496
  0.05 1.07844
2016Q3 0.04 1.08207
  0.04 1.32893
2017Q1 0.05 1.033
  0.05 1.183
2017Q3 0.05 1.235
  0.05 1.351
2018Q1 0.04 1.097
  0.05 1.246
2018Q3 0.06 1.323
  0.06 1.435
2019/3/2 股價 20.05 280.41

乘上持有的股數, 每一季配息的金額如下:

Profit 3140.HK SPY
2015Q3 0.33557 0.086438
  0.33557 0.078486
2016Q1 0.268456 0.067994
  0.33557 0.069863
2016Q3 0.268456 0.070098
  0.268456 0.08609
2017Q1 0.33557 0.066919
  0.33557 0.076636
2017Q3 0.33557 0.080005
  0.33557 0.087519
2018Q1 0.268456 0.071065
  0.33557 0.080717
2018Q3 0.402685 0.085706
  0.402685 0.092961
所有股息 4.563758 1.100496

我們可以看到美股的股息明顯比較厲害, 右邊的利息就算抓匯率是七倍, 7.7 都遠大於 4.563758. 倒是 1.100496 x 0.7 (稅後) x 7.75084 (匯率) ~= 5.971 比較接近 3140.HK 的股息. 因此我們可以推斷 3140.HK 的股息都是美國扣稅之後的.

那有沒有可能是不是股息發得少, 但本金的淨值比較高呢? 我們把股息和淨值兩者加在一起比較.

  3140.HK SPY
2019/3/2 淨值 134.5638 18.1653
2019/3/2 淨值 + 所有股息 139.1275 19.2658
按 2015/7 匯率換成成港幣 139.1275 149.3261
美股股息打七折   0.770347
2019/3/2 淨值 + 所有股息 (美股七折) 139.1275 18.93565
按 2015/7 匯率換成成港幣 139.1275 146.7672
按 2019/3/2匯率換成成港幣  139.1275 148.7035

因此就算不含匯損, 港股的績效還不如美股股息打七折. 除非美金下跌, 港幣狂飆, 不然買 SPY 比買 3140.HK 好. 原因之一可能是管理費有差異, 3140.HK (0.18%) vs SPY (0.0945%).