色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SpinalHDL BlackBox時(shí)鐘與復(fù)位

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

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

當(dāng)BlackBox中只有一個(gè)時(shí)鐘的時(shí)候可以直接使用mapClockDomain完成時(shí)鐘信號(hào)和復(fù)位信號(hào)的賦值。在mapClockDomain中如果沒有指定時(shí)鐘域的話就采用的是默認(rèn)時(shí)鐘域。

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

當(dāng)有兩個(gè)時(shí)鐘域的時(shí)候,就需要把時(shí)鐘域給指定一下了,在下面代碼中將時(shí)鐘域通過參數(shù)的方式傳了進(jìn)來。

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)//默認(rèn)時(shí)鐘域和新建的時(shí)鐘域b
    bk.din <> din
    bk.dout <> dout
}
object TestBlackBox extends App{
    SpinalVerilog(new TestBlackBox)
}

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

因?yàn)樵赟pinalHDL中默認(rèn)時(shí)鐘域是高復(fù)位的,但是我們已有的IP可能是低復(fù)位的,這個(gè)時(shí)候就需要在mapClockDomain中指定一下復(fù)位信號(hào)是HIGH還是LOW。在下面代碼中就將時(shí)鐘域b下面的復(fù)位指定為低復(fù)位。

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

以上三種情況應(yīng)該足夠應(yīng)對(duì)一般情況下BlackBox的時(shí)鐘域的賦值了。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110074
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1733

    瀏覽量

    131447
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    327

    瀏覽量

    47376
  • 復(fù)位
    +關(guān)注

    關(guān)注

    0

    文章

    171

    瀏覽量

    24211
  • 時(shí)鐘信號(hào)
    +關(guān)注

    關(guān)注

    4

    文章

    448

    瀏覽量

    28542

原文標(biāo)題:SpinalHDL BlackBox時(shí)鐘與復(fù)位

文章出處:【微信號(hào):FPGA開源工坊,微信公眾號(hào):FPGA開源工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SpinalHDL里實(shí)現(xiàn)優(yōu)雅的添加待跟蹤波形信號(hào)

    波形跟蹤信號(hào)。在SpinalHDL里,我們可以借助blackBox及scala語言本身實(shí)現(xiàn)在SpinalHDL環(huán)境里實(shí)現(xiàn)對(duì)ILA的集成。上面的代碼實(shí)現(xiàn)了用于添加ILa單元實(shí)現(xiàn)波形追蹤的代碼,在調(diào)用
    發(fā)表于 06-22 14:37

    SpinalHDL的設(shè)計(jì)中集成現(xiàn)有RTL設(shè)計(jì)(IP)的渠道——BlackBox

    在集成IP時(shí)需顯示映射IP的時(shí)鐘復(fù)位信號(hào),SpinalHDL提供了mapClockDomain、mapCurrentClockDomain兩個(gè)函數(shù)用于時(shí)鐘映射,mapClockDom
    發(fā)表于 06-22 14:59

    關(guān)于SpinalHDL仿真中信號(hào)驅(qū)動(dòng)那點(diǎn)事兒

    時(shí)鐘信號(hào)從低電平到高電平變化完成之后才推出。那么我們?cè)陔S后對(duì)dataIn的賦值其實(shí)是發(fā)生在clk上升沿到來后的0+時(shí)間才發(fā)生的。 從這里代碼分析我們可以看出,在SpinalHDL的仿真里:復(fù)位信號(hào)會(huì)
    發(fā)表于 06-24 16:34

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

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

    談?wù)?b class='flag-5'>SpinalHDL中StreamCCByToggle組件設(shè)計(jì)不足的地方

      模塊設(shè)計(jì)很巧妙,從原理分析的角度來講挺完美的。但是,百密一疏,這個(gè)模塊在設(shè)計(jì)時(shí),對(duì)于兩側(cè)時(shí)鐘復(fù)位信號(hào)的處理,作者并未有妥善的考慮?! ‖F(xiàn)象分析  先來看下面這個(gè)example和其測(cè)試代碼
    發(fā)表于 06-30 15:11

    如何在SpinalHDL里啟動(dòng)一個(gè)仿真

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

    記錄一個(gè)在使用BlackBox中parameter踩到的坑

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

    SpinalHDL設(shè)計(jì)錯(cuò)誤總結(jié)相關(guān)資料分享

    設(shè)計(jì)。以下是SpinalHDL檢查的簡(jiǎn)要概括:  重復(fù)賦值  時(shí)鐘域交叉  層次化違例  組合邏輯環(huán)路  Latch  未驅(qū)動(dòng)的信號(hào)  位寬不匹配  得不到的switch生命  在每個(gè)SpinalHDL
    發(fā)表于 10-24 15:37

    使用 Blackbox 實(shí)施類型的通用組件的方法

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

    SpinalHDL時(shí)鐘域中的定制與命名

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

    STM32電源管理、復(fù)位時(shí)鐘

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

    BlackBox在VCS中加密存儲(chǔ)文件

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

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

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

    原來SpinalHDLBlackBox封裝數(shù)組接口如此簡(jiǎn)單

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

    淺析SpinalHDL中Pipeline中的復(fù)位定制

    之前有系列文章介紹了SpinalHDL中Pipeline的使用,最近在一個(gè)功能模塊中真實(shí)的使用了這個(gè)lib。
    的頭像 發(fā)表于 03-17 17:31 ?1036次閱讀
    淺析<b class='flag-5'>SpinalHDL</b>中Pipeline中的<b class='flag-5'>復(fù)位</b>定制
    主站蜘蛛池模板: 亚洲 日韩 欧美 另类 蜜桃| 国产偷抇久久精品A片蜜臀AV| 欧美极品尿交| 97在线免费观看| 男人和女人一级黄色大片| 2020国产成人免费视频| 老妇xxxxbbbb| 97人人添人人澡人人澡人人澡 | 亚洲第一成年人网站| 国产色精品久久人妻无码| 亚洲爱视频| 娇小老少配xxxxx| 伊人久久大香线蕉综合亚洲| 久久永久视频| 最近中文字幕MV高清在线| 嗯 用力啊 嗯 c我 啊哈老师| av天堂电影网| 三级网站视频| 国产精品无码久久av| 亚洲精品无码国产爽快A片百度| 极品虎白在线观看| 最美白嫩的极品美女ASSPICS| 男人把女人桶到高潮嗷嗷叫| 啊灬啊灬啊灬快高潮视频| 日韩中文字幕欧美在线视频| 国产精品福利片| 亚洲另类国产综合在线| 久久re热线视频国产| 0951影音在线| 欧美一区二区视频高清专区| 俄罗斯美幼| 亚洲欧美强伦一区二区另类| 久热久热精品在线观看| caoporn免费视频在线| 色翁荡息又大又硬又粗又爽电影| 国产午夜精品一区二区| 夜色55夜色66亚洲精品网站| 男女边吃奶边做边爱视频| 干性感美女| 亚洲三级视频在线| 蜜桃传媒视频|