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

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

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

SpinalHDL中不可不知的位拼接符

Spinal FPGA ? 來源:Spinal FPGA ? 作者:玉騏 ? 2022-11-12 11:34 ? 次閱讀

編 者 按

在之前寫Verilog時,位拼接符是一個很常見的東西,今天來看下在SpinalHDL中常見的位拼接符的使用。

建議SpinalHDL 版本不低于1.7.1(1.7.1版本Bug較多,再往上~)

》{a,b,c}=c 將一個信號的不同bit賦值給不同的信號,這種拼接方式可以在SpinalHDL中按照如下的形式進行書寫:

case class demo() extends Component{
  val dataIn=in Bits(8 bits)
  val dataOut0,dataOut1= out Bits(4 bits)
  (dataOut0,dataOut1):=dataIn
}
》d={a,b,c}

對于這種形式的拼接賦值,在SpinalHDL中可以采用如下形式:

case class demo() extends Component{
  val a,b,c=in Bits(2 bits)
  val d= out Bits(6 bits)
  d:=Cat(a,b,c)
}
》{d,e}={a,b,c}

對于這種形式的拼接賦值,是上面兩種形式的組合體,那么可以這么來寫:

case class demo() extends Component{
  val a,b,c=in Bits(2 bits)
  val d,e= out Bits(3 bits)
  (d,e):=Cat(a,b,c)
}

針對這種形式,當然也可以更簡化一些:

case class demo() extends Component{
  val a,b,c=in Bits(2 bits)
  val d,e= out Bits(3 bits)
  (d,e):=(a,b,c)
}
》b={n{a}}

這種類型的賦值在SpinalHDL中提供了兩個API

case class demo() extends Component{
  val a=in Bits(2 bits)
  val b= out Bits(6 bits)
  b:=B(a,3) //不是B(a,3 bits),別搞混
}
case class demo() extends Component{
 val a=in Bits(2 bits)
  val b= out Bits(6 bits)
  b:=Repeat(a,3)
}

這兩種實現(xiàn)方式最終生成的Verilog代碼略不優(yōu)雅,只是將a機械的重復了n次:

`timescale 1ns/1ps


module demo (
input      [1:0]    a,
output     [5:0]    b
);




assign b = {a,{a,a}};


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

    關注

    28

    文章

    1333

    瀏覽量

    109713
  • HDL
    HDL
    +關注

    關注

    8

    文章

    324

    瀏覽量

    47230

原文標題:SpinalHDL中不可不知的位拼接符

文章出處:【微信號:Spinal FPGA,微信公眾號:Spinal FPGA】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    買筆記本電腦不可不知道的10個熱點問題

    買筆記本電腦不可不知道的10個熱點問題
    發(fā)表于 08-10 10:49

    不可不知的嵌入式工程師經(jīng)驗(總結(jié)篇)

    不可不知的嵌入式工程師經(jīng)驗(總結(jié)篇)
    發(fā)表于 08-20 10:52

    不可不知的ARM技術學習訣竅

    不可不知的ARM技術學習訣竅
    發(fā)表于 08-20 23:52

    寫好LabVIEW程序不可不知的利器——匯總篇

    1、寫好LabVIEW程序不可不知的利器(一):模塊化功能 VI2、寫好LabVIEW程序不可不知的利器(二):State Machine3、寫好LabVIEW程序不可不知的利器(三):進階應用4、寫好LabVIEW程序
    發(fā)表于 11-20 15:38

    看下在SpinalHDL中常見的拼接的使用

    在之前寫Verilog時,拼接是一個很常見的東西,今天來看下在SpinalHDL中常見的拼接
    發(fā)表于 11-18 15:21

    七則不可不知的電池常識

    七則不可不知的電池常識         一、電池有保質(zhì)期嗎?  電池是通過其內(nèi)部的正負極發(fā)生化學反應,
    發(fā)表于 11-14 10:40 ?689次閱讀

    充電電池不可不知的基本常識

    充電電池不可不知的基本常識        一.電壓:兩極間的電位差稱為電池的電壓。主要有標稱(額定)電壓、開路電壓、充電終止(截止)
    發(fā)表于 11-14 10:45 ?3624次閱讀

    手機使用常識及手機電池不可不知的小常識

    手機使用常識及手機電池不可不知的小常識 手機使用常識 1、使用手機時,不要接觸天線,否則會影響
    發(fā)表于 11-23 15:20 ?1886次閱讀

    不可不知的投影幕選購常識

    不可不知的投影幕選購常識 前言:   當今,無論是商務活動,還是居家生活,人們對于大屏幕顯示畫面、高亮度、高分辨率以及高
    發(fā)表于 02-10 11:10 ?694次閱讀

    電腦木馬識別的三個小命令(不可不知)

    電腦木馬識別的三個小命令(不可不知) 一些基本的命令往往可以在保護網(wǎng)絡安全上起到很大的作用,下面幾條命令的作用就非常突出。
    發(fā)表于 02-23 14:17 ?1150次閱讀

    顯示卡不可不知15大參數(shù)

    顯示卡不可不知15大參數(shù) 1、 幀率(Frames
    發(fā)表于 01-12 09:49 ?931次閱讀

    微軟Azure大放異彩 Azure術語不可不知

    微軟Azure大數(shù)據(jù)服務魅力凸顯 Azure術語不可不知 大數(shù)據(jù)正上增工,不僅是規(guī)模,知名度也在上升。
    發(fā)表于 11-10 11:02 ?1070次閱讀

    PCB板工藝不可不知的五大小原則

    本文主要詳細闡述了PCB板工藝不可不知的小原則。
    的頭像 發(fā)表于 10-05 08:48 ?5893次閱讀

    電氣人不可不知的45個電機知識盤點

    本文主要匯總了電氣人不可不知的45個電機知識,具體的跟隨小編一起來了解一下。
    的頭像 發(fā)表于 10-05 09:06 ?4625次閱讀

    MOSFET基礎電路不可不知

    MOSFET電路不可不知MOSFET已成為最常用的三端器件,給電子電路界帶來了一場革命。沒有MOSFET,現(xiàn)在集成電路的設計似乎是不可能的。它們非常小,制造過程非常簡單。由于MOSFET的特性,模擬
    的頭像 發(fā)表于 05-10 16:35 ?1381次閱讀
    MOSFET基礎電路<b class='flag-5'>不可不知</b>