2011年7月19日 星期二

MyHDL @ python

MyHDL 是個用 Python 的 HW simulator, 使用者可寫個類似像 Verilog 的 Python 語法, 之後在透過 Python 的 virtual machine 來做 simulation. 如果你夠懶, MyHDL 還提供 translator 的方式幫你把 Python 轉成 Verilog/VHDL.
ACTIVE_LOW, INACTIVE_HIGH = 0, 1

def Inc(count, enable, clock, reset, n):

   """ Incrementer with enable.

   count -- output
   enable -- control input, increment when 1
   clock -- clock input
   reset -- asynchronous reset input
   n -- counter max value

   """

   @always(clock.posedge, reset.negedge)
   def incLogic():
       if reset == ACTIVE_LOW:
           count.next = 0
       else:
           if enable:
               count.next = (count + 1) % n

   return incLogic
ps: 個人還是覺得用 SystemVerilog / SystemC 就 ok 了, 畢竟這還是主流. 至少有 EDA tool的廠商 support. 不過 Python 還真是好物, 可以用的 Lib 還真多, 不需要考慮物件的 type 跟 Memory release... 的問題. 多學點東西也是好的啦...XD ref:http://www.myhdl.org/doc/current/

3 則留言:

  1. 您好, 我是 PyHUG(Python Hsinchu User Group) 的 co-organizer, 我們對於你在 EDA 以及 Python MyHDL 上面的知識非常有興趣, 想邀請你來 PyHUG 作一場演講, 不知道方便嗎?我也非常希望能夠與您交流一下。

    jjhuang, or Albert Huang

    回覆刪除
    回覆
    1. 歡迎交流阿,演講時間確定是哪時候呢, 有聚會也可通知一聲

      刪除
    2. 嗨,很高興有機會跟你交流,我們是透過 meetup 來公布議程,http://www.meetup.com/pythonhug/ 我在裡面的帳號也是 Chun-Chieh Huang, 就麻煩你先加入 meetup 跟我洽談後續事宜,我們聚會時間是每個月的第一與第三個星期一,想邀請你在十二月份來演講,謝謝!

      Albert Huang(Chun-Chieh Huang)

      刪除