Chisel 語言(Scala)學習 2 例項化模型和向量操作
Chisel 語言學習 2 例項化模型和向量操作
系列文章主要用來記錄學習Chisel和scala過程中遇到的難點或知識點
例項化模型:
帶有進位的加法器
Chisel程式碼如下:
// A 4-bit adder with carry in and carry out
class Adder4 extends Module {
val io = IO(new Bundle {
val A = Input(UInt(4.W))
val B = Input(UInt(4.W))
val Cin = Input(UInt(1.W))
val Sum = Output(UInt(4. W))
val Cout = Output(UInt(1.W))
})
// Adder for bit 0
val Adder0 = Module(new FullAdder())
Adder0.io.a := io.A(0)
Adder0.io.b := io.B(0)
Adder0.io.cin := io.Cin
val s0 = Adder0.io.sum
// Adder for bit 1
val Adder1 = Module(new FullAdder())
Adder1.io.a := io.A(1)
Adder1.io.b := io.B (1)
Adder1.io.cin := Adder0.io.cout
val s1 = Cat(Adder1.io.sum, s0)
// Adder for bit 2
val Adder2 = Module(new FullAdder())
Adder2.io.a := io.A(2)
Adder2.io.b := io.B(2)
Adder2.io.cin := Adder1.io.cout
val s2 = Cat(Adder2.io.sum, s1)
// Adder for bit 3
val Adder3 = Module(new FullAdder())
Adder3.io .a := io.A(3)
Adder3.io.b := io.B(3)
Adder3.io.cin := Adder2.io.cout
io.Sum := Cat(Adder3.io.sum, s2).asUInt
io.Cout := Adder3.io.cout
}
向量操作
val myVec = Vec(Seq.fill( <number of elements> ) { <data type> })
eg:
val ufix5_vec10 := Vec(Seq.fill(10) { UInt(5.W) })
定義一個向量暫存器:
val reg_vec32 = Reg(Vec(Seq.fill(32){ UInt() }))
定義一個16位加法器(向量的值包含例項時,我們用io來定義):
val FullAdders =
Vec(Seq.fill(16){ Module(new FullAdder()).io })
為了使程式碼簡潔,我們可以用下面這種寫法:
val initValues = Seq.fill(4) { 0.U(8.W) }
val delays = RegInit(Vec(initValues))
相關推薦
Chisel 語言(Scala)學習 2 例項化模型和向量操作
Chisel 語言學習 2 例項化模型和向量操作 系列文章主要用來記錄學習Chisel和scala過程中遇到的難點或知識點 例項化模型: 帶有進位的加法器 Chisel程式碼如下:
git的使用和學習(二)github遠端庫的連線和同步操作
1.github遠端庫的連線 開啟github官網github. 登入之後 點選這個 然後 輸入名字點選建立就會跳轉到這個介面 我們用紅色箭頭指的現有的庫 然後開啟git 1.這是把本地庫主分支的內容匯入到遠端庫 git push -u origin master 注
OpenGL(七) GeometryInstancing 幾何體例項化
幾何體例項化( GeometryInstancing ),是一種用於大批量重複物件渲染的GPU技術,以降低客戶端和顯示卡端資料傳輸量,所謂的“一次提交,多次渲染”。簡單說來就是合併DrawCall。原理通過glDrawElementsInstanced(GL_TRIANGLE
(7)學習tp5之控制器原理和使用
系統學習tp5框架,請點選下面的連線控制器的名稱空間從何而來,如何修改修改名稱空間的方式:注意:改config.php中的app_namespace配置是沒用的; 我用的是第2種方式,改完之後控制器的名稱空間不要忘記也改成xg\模組名\controller不繼承基類調模板如:
Spring啟動流程(四)之Bean初始化前後的一些操作
【Spring原始碼分析】非懶載入的單例Bean初始化前後的一些操作 再看AbstractApplicationContext的refresh方法中的細節: Spring預設載入的兩個Bean,systemProperties和systemEnvironment,
資料結構筆記(三)靜態連結串列的實現和基本操作
一、靜態連結串列的定義 用資料替代指標,來描述單鏈表。首先,資料的元素由兩個資料域組成,data和cur。資料域data,用來存放資料元素,即要處理的資料;遊標cur相當於單鏈表中的next指標。 //線性表的靜態單鏈表儲存結構 #define MAXSIZ
快看Sample代碼,速學Swift語言(2)-基礎介紹 快看Sample代碼,速學Swift語言(1)-語法速覽
ora ati 自動 一起 系統 welcome 布爾類型 效率 八進制 快看Sample代碼,速學Swift語言(2)-基礎介紹 Swift語言是一個新的編程語言,用於iOS, macOS, watchOS, 和 tvOS的開發,不過Swift很多部分內容,我們可以從
Log4net學習系列(二)——Log4net的例項
一、log4net簡單例項建立步驟如下 1、第一步:在專案中新增對log4net.dll的引用,這裡引用版本是2.0.8.0 2、第二步:程式啟動時讀取log4net的配置檔案。 讀取log4net的配置檔案有兩種方式 (1)如果是CS程式,在根目錄的Program.cs中的Main方法中新增
大資料學習初級入門教程(一) —— Hadoop 2.x 的安裝、啟動和測試
大資料最基礎的就是資料的儲存和計算,而 Hadoop 就是為儲存和計算而生,是最基礎的大資料處理工具。這篇簡單寫寫 Hadoop 2.x 的安裝,啟動和測試。 一、準備環境 大資料環境的部署,一般都是叢集,機器數量為奇數,這裡以 5 臺機器為例,作業系統為 CentOS 6.9_x64;
《使用Python進行自然語言處理(Nltk)》2
import nltk from nltk.corpus import * '''1、古騰堡語料庫''' gutenberg.fileids() #所有古騰堡語料庫中的文字 emma = nltk.corpus.gutenberg.words('austen-e
Vue學習(一):Vue例項
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vue例項建立</title> </head> &l
Python--列表(list)、元組(tuple)、字典(dict) 學習總結(2)
目錄 建立空元組 (2)、元組---tuple 1、元組的定義 tuple (元組) 與列表相似,不同之處是元組的 元素不能修改 元組 表示多個元素組成的序列 元組 在Python開發中有特定的應用場景 用於儲存 一串 資
Swift教程_零基礎學習Swift完整例項(七)_swift完整例項(構建展示層)
本章節主要來完善前前面已經建立好的storyboard中的頁面,包括自定義的view等。 1.PKOElementTableViewCell 該自定義view作為列表的行view,包含左側的圖片以及中間的文字描述。這裡要注意需要通過setNeedsDisplay告訴系統進行繪製。 程式碼如下。 import
Swift教程_零基礎學習Swift完整例項(八)_swift完整例項(新增View的動畫效果、新增View的陰影)
6.新增View的動畫效果 本章節主要來做明細頁面點選後翻轉的動畫效果,該效果可以進行多種改變,以達到想要的效果。 1.首先我們需要進行翻轉的正反兩個view,前面我們已經做好了,分別是PKOElementDetailImageView和PKOElementDetailIm
Mysql學習(三)Spark(Scala)寫入Mysql的兩種方式
package total import org.apache.spark.sql.{DataFrame, Row, SQLContext, SparkSession} import org.apache.spark.{SparkConf, SparkContext} imp
各種音視訊編解碼學習詳解之 編解碼學習筆記(三):Mpeg系列——Mpeg 1和Mpeg 2
最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit
Torch7學習(四)——學習神經網路包的用法(2)
總說 上篇部落格已經初步介紹了Module類。這裡將更加仔細的介紹。並且還將介紹Container, Transfer Functions Layers和 Simple Layers模組。 Module 主要有4個函式。 1. [output]f
Struts2 學習之路(二):2.2 完成簡單的統計使用者線上人數小功能
實時更新使用者線上人數(通過將使用者人數資料放入application的域屬性裡實現) 使用者登入後,顯示使用者名稱和當前線上人數+1 使用者登出後,當前線上人數-1 程式碼 1.前臺請求頁面
機器學習之(1)——學習樸素貝葉斯-三種模型理論+python程式碼程式設計例項
本文來源於: 部落格:http://blog.csdn.net/u012162613/article/details/48323777 http://blog.csdn.net/zhihaoma/article/details/51052064 感謝作者的分享,非常感謝
Servlet學習(三)Servlet程式設計例項-網站登入(修改版-增加資料庫-附原始碼)
public class UserDaoImpl implements UserDao{ /** * 新增使用者資訊 * @param conn * @param user * @throws SQLException */ @Override