在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SpinalHDL BlackBox時鐘與復位

FPGA開源工坊 ? 來源:FPGA開源工坊 ? 2023-05-04 11:13 ? 次閱讀

在SpinalHDL中使用之前已有的Verilog等代碼的時候需要將這些代碼包在一個BlackBox里面,但是如果這些代碼里面有時鐘和復位,我們需要怎么將時鐘和復位端口和SpinalHDL中已有的時鐘域連接起來呢?

當BlackBox中只有一個時鐘的時候可以直接使用mapClockDomain完成時鐘信號和復位信號的賦值。在mapClockDomain中如果沒有指定時鐘域的話就采用的是默認時鐘域。

import spinal.core._
import spinal.lib._
class BK extends BlackBox{
    val clka = in Bool()
    val rsta = in Bool()
    val din = in Bool()
    val dout = out Bool()
    mapClockDomain(clock = clka, reset = rsta)
}
class TestBlackBox extends Component {
    val din = in Bool()
    val dout = out Bool()
    val bk = new BK
    bk.din <> din
    bk.dout <> dout
}
object TestBlackBox extends App{
    SpinalVerilog(new TestBlackBox)
}



5ce9429e-e75c-11ed-ab56-dac502259ad0.png

當有兩個時鐘域的時候,就需要把時鐘域給指定一下了,在下面代碼中將時鐘域通過參數的方式傳了進來。

import spinal.core._
import spinal.lib._
class BK(clockDomaina: ClockDomain, clockDomainb: ClockDomain) extends BlackBox{
    val clka = in Bool()
    val rsta = in Bool()
    val clkb = in Bool()
    val rstb = in Bool()
    val din = in Bool()
    val dout = out Bool()
    mapClockDomain(clockDomaina,clock = clka, reset = rsta)
    mapClockDomain(clockDomainb,clock = clkb, reset = rstb)
}
class TestBlackBox extends Component {
    val din = in Bool()
    val dout = out Bool()
    val clkb = in Bool()
    val resetb = in Bool()
    val clockDomainb = ClockDomain(clock = clkb,reset = resetb)
    val bk = new BK(this.clockDomain,clockDomainb)//默認時鐘域和新建的時鐘域b
    bk.din <> din
    bk.dout <> dout
}
object TestBlackBox extends App{
    SpinalVerilog(new TestBlackBox)
}

5d06724c-e75c-11ed-ab56-dac502259ad0.png

因為在SpinalHDL中默認時鐘域是高復位的,但是我們已有的IP可能是低復位的,這個時候就需要在mapClockDomain中指定一下復位信號是HIGH還是LOW。在下面代碼中就將時鐘域b下面的復位指定為低復位。

import spinal.core._
import spinal.lib._
class BK(clockDomaina: ClockDomain, clockDomainb: ClockDomain) extends BlackBox{
    val clka = in Bool()
    val rsta = in Bool()
    val clkb = in Bool()
    val rstb = in Bool()
    val din = in Bool()
    val dout = out Bool()
    mapClockDomain(clockDomaina,clock = clka, reset = rsta)
    mapClockDomain(clockDomainb,clock = clkb, reset = rstb, resetActiveLevel = LOW)
}
class TestBlackBox extends Component {
    val din = in Bool()
    val dout = out Bool()
    val clkb = in Bool()
    val resetb = in Bool()
    val clockDomainb = ClockDomain(clock = clkb,reset = resetb)
    val bk = new BK(this.clockDomain,clockDomainb)
    bk.din <> din
    bk.dout <> dout
}
object TestBlackBox extends App{
    SpinalVerilog(new TestBlackBox)
}

5d195d58-e75c-11ed-ab56-dac502259ad0.png

以上三種情況應該足夠應對一般情況下BlackBox的時鐘域的賦值了。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110396
  • 時鐘
    +關注

    關注

    11

    文章

    1747

    瀏覽量

    131803
  • HDL
    HDL
    +關注

    關注

    8

    文章

    328

    瀏覽量

    47468
  • 復位
    +關注

    關注

    0

    文章

    174

    瀏覽量

    24270
  • 時鐘信號
    +關注

    關注

    4

    文章

    453

    瀏覽量

    28666

原文標題:SpinalHDL BlackBox時鐘與復位

文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    SpinalHDL里實現優雅的添加待跟蹤波形信號

    波形跟蹤信號。在SpinalHDL里,我們可以借助blackBox及scala語言本身實現在SpinalHDL環境里實現對ILA的集成。上面的代碼實現了用于添加ILa單元實現波形追蹤的代碼,在調用
    發表于 06-22 14:37

    SpinalHDL的設計中集成現有RTL設計(IP)的渠道——BlackBox

    在集成IP時需顯示映射IP的時鐘復位信號,SpinalHDL提供了mapClockDomain、mapCurrentClockDomain兩個函數用于時鐘映射,mapClockDom
    發表于 06-22 14:59

    關于SpinalHDL仿真中信號驅動那點事兒

    時鐘信號從低電平到高電平變化完成之后才推出。那么我們在隨后對dataIn的賦值其實是發生在clk上升沿到來后的0+時間才發生的。 從這里代碼分析我們可以看出,在SpinalHDL的仿真里:復位信號會
    發表于 06-24 16:34

    聊一聊SpinalHDL 1.6.1引入的blackbox inline功能

    BlackBox在之前的文章中,曾介紹過如何封裝兼容別人的RTL代碼:SpinalHDL——集成你的RTL代碼整體的思路還是簡潔明了的,相信讀完后照著做很快就能上手。這對于保持設計的兼容性及混合
    發表于 06-29 16:02

    談談SpinalHDL中StreamCCByToggle組件設計不足的地方

      模塊設計很巧妙,從原理分析的角度來講挺完美的。但是,百密一疏,這個模塊在設計時,對于兩側時鐘復位信號的處理,作者并未有妥善的考慮。  現象分析  先來看下面這個example和其測試代碼
    發表于 06-30 15:11

    如何在SpinalHDL里啟動一個仿真

    withConfig(config: SpinalConfig)函數進行配置。這里的配置常用的是對時鐘域的配置,包含時鐘有效邊沿、復位信號類型、時鐘頻率等。如下例所示:而DUT的編譯則
    發表于 07-26 16:59

    記錄一個在使用BlackBox中parameter踩到的坑

    SpinalHDL doc里面也曾提到,在創建BlackBox時,關于原始RTL代碼中的parameter的處理方式為:嗯,看起來很簡單,我們照貓畫虎就好了,最近在寫代碼時偶然間踩到了一個坑,這里用下面的代碼來說
    發表于 08-31 14:58

    SpinalHDL設計錯誤總結相關資料分享

    設計。以下是SpinalHDL檢查的簡要概括:  重復賦值  時鐘域交叉  層次化違例  組合邏輯環路  Latch  未驅動的信號  位寬不匹配  得不到的switch生命  在每個SpinalHDL
    發表于 10-24 15:37

    使用 Blackbox 實施類型的通用組件的方法

    如何使用 Blackbox 實施類型的通用組件
    的頭像 發表于 06-20 01:19 ?3302次閱讀
    使用 <b class='flag-5'>Blackbox</b> 實施類型的通用組件的方法

    SpinalHDL時鐘域中的定制與命名

    聊一聊在SpinalHDL時鐘域中時鐘的定制與命名。 相較于Verilog,在SpinalHDL里,其對時鐘域有著更細致的描述,從而也能夠
    的頭像 發表于 03-22 10:14 ?2175次閱讀

    STM32電源管理、復位時鐘

    第二篇文章——STM32電源、復位時鐘電源管理電源電壓調節器可編程電壓監測器(PVD: Programmable voltage detector )低功耗模式復位Cortex-M3的復位
    發表于 01-05 14:25 ?10次下載
    STM32電源管理、<b class='flag-5'>復位</b>、<b class='flag-5'>時鐘</b>

    BlackBox在VCS中加密存儲文件

    ./oschina_soft/blackbox.zip
    發表于 05-09 09:14 ?5次下載
    <b class='flag-5'>BlackBox</b>在VCS中加密存儲文件

    SpinalHDL里用于跨時鐘域處理的一些手段方法

    每一個做數字邏輯的都繞不開跨時鐘域處理,談一談SpinalHDL里用于跨時鐘域處理的一些手段方法。
    的頭像 發表于 07-11 10:51 ?1965次閱讀

    原來SpinalHDLBlackBox封裝數組接口如此簡單

    當在SpinalHDL中調用別人的RTL代碼時,需要采用BlackBox進行封裝。對于大多數場景,想必小伙伴們都已輕車熟路。今天著重來看下當RTL代碼的接口中存在數組形式的接口時如何處理。
    的頭像 發表于 05-22 10:04 ?835次閱讀
    原來<b class='flag-5'>SpinalHDL</b>中<b class='flag-5'>BlackBox</b>封裝數組接口如此簡單

    淺析SpinalHDL中Pipeline中的復位定制

    之前有系列文章介紹了SpinalHDL中Pipeline的使用,最近在一個功能模塊中真實的使用了這個lib。
    的頭像 發表于 03-17 17:31 ?1128次閱讀
    淺析<b class='flag-5'>SpinalHDL</b>中Pipeline中的<b class='flag-5'>復位</b>定制
    主站蜘蛛池模板: 一级特黄毛片 | 欧美高清免费一级在线 | 亚洲国产精品自在现线让你爽 | 四虎影院海外永久 | 四虎影院在线免费观看视频 | 成人三级在线播放线观看 | a级毛片毛片免费很很综合 a级男女性高爱潮高清试 | 免费一级特黄特色黄大任片 | 在线人成精品免费视频 | 看黄网站免费 | 免费在线观看视频网站 | 久久久久久青草大香综合精品 | 免费观看视频在线观看 | 天天天干干干 | 国产高清成人mv在线观看 | 日日夜夜操操 | 玖玖在线国产精品 | 国内自拍 亚洲系列 欧美系列 | 天天在线天天在线天天影视 | 免费一级毛毛片 | jiucao视频在线观看 | 五月婷婷六月丁香激情 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲一区二区三区在线播放 | 亚洲第8页 | 亚洲一区二区在线免费观看 | 午夜三级在线 | 在线观看三级网站 | 欧美日韩国产在线一区 | 456成人| 日韩免费观看一级毛片看看 | 免费毛片网站在线观看 | 黄网站免费大全 | 国产精品漂亮美女在线观看 | 久久久这里有精品999 | 色婷婷电影 | 在线观看午夜 | 一级做α爰片久久毛片 | 在线亚洲精品中文字幕美乳 | 亚洲理论片在线观看 | 色天天综合色天天天天看大 |