Chisel Tutorial(四)——函数

以下内容依据2015-7-10版的Chisel 2.2 Tutorial整理

我们可以把一些重复的逻辑定义为函数,然后在多处使用,例如:如下定义了一个简单的函数:

def clb(a:UInt, b:UInt, c:UInt, d:UInt) = (a & b) | (~c & d)

函数clb有四个参数a、b、c、d,此处的def是Scala中定义的关键字,用来定义函数,每个参数后面跟一个冒号,然后是数据类型。在参数之后定义返回类型,也可以不定义,Chisel会自动推测,上例中就没有定义返回类型。等号之后的就是函数体。函数定义之后,其使用方法如下:

val out = clb(a, b, c, d)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 16:54:39

Chisel Tutorial(四)——函数的相关文章

Swift中文教程(四)--函数与闭包

原文:Swift中文教程(四)--函数与闭包 Function 函数 Swift使用func关键字来声明变量,函数通过函数名加小括号内的参数列表来调用.使用->来区分参数名和返回值的类型: 1 func greet(name: String, day: String) -> String { 2 return "Hello \(name), today is \(day)." 3 } 4 greet("Bob", "Tuesday")

rwkj 1332 C语言实验四(函数):题目1、数字根

C语言实验四(函数):题目1.数字根 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:305            测试通过:185 描述 正整数的数字根是将数位上的数字求和进行计算而来.如果各位数字之和为一位的整数,那么这个整数就是这个数的数字根:如果之后为多位数,那么重复运用此规则进行计算直至求出一个一位数.例如12,那么它的数字根就为1+2=3:例如39那么它的数字根就为3+9=12,1+2=3,最终为3. 输入 每行输入

python(四)函数

一.背景 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 while True:     if cpu利用率 > 90%:         #发送邮件提醒         连接邮箱服务器         发送邮件         关闭连接     if 硬盘使用空

ES6系列四 函数的扩展

一丶ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面. function log(x, y = 'World') { console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // Hello 二丶与解构赋值结合 function fetch(url, { body = '', method = 'GET', headers = {} }

Chisel Tutorial(六)——port

下面内容根据2015-7-10版的Chisel 2.2 Tutorial整理 port就是硬件单元对外的接口,须要指明方向(输入还是输出).一个port声明的样例例如以下: class Decoupled extends Bundle{ val ready = Bool(OUTPUT) val data = UInt(INPUT, 32) val valid = Bool(INPUT) } INPUT.OUTPUT指定方向,后面指出宽度.对于Bool类型.其宽度就是1,所以不须要明白指出.除了上

Chisel Tutorial(七)——模块

下面内容根据2015-7-10版的Chisel 2.2 Tutorial整理 Chisel中的模块与Verilog HDL中模块的概念十分相似,都是用层次结构描写叙述电路.Chisel中的module是一个类,其定义遵循下面几点: 继承自Module类 有一个命名为io的port 在其构造函数中连接子电路 例如以下是一个2选1选择器的模块定义: class Mux2 extends Module{ val io = new Bundle{ val sel = UInt(INPUT, 1) val

JavaScript基础篇(四)— — 函数

一.函数基础 ??1.返回值:如果某个函数没有显式的return返回值,默认它的返回值为undefined ??2.参数:内建变量arguments,能返回函数所接收的所有参数 ???? ??3.预定义(内建)函数 -- isNaN: ????a.检测parseInt / parseFloat调用是否成功. ???? ????b.NaN不存在等值的概念, 也就是说表达式NaN === NaN 返回的是false 二.函数的变量作用域 ??1.变量提升:函数域优先于全局域,所有局部a会覆盖掉所有与

【C++系列经典例子】C++默认构造,拷贝,赋值,析构四函数

本例子来自于学习视频,不是原创. 首先,我们已经知道我们创建类时会有四个默认函数(实际是有6个,具体以后再探究) 分别是:(以test类为例子) class test { private: int value; } 1.构造函数: test(int x=0) 2.拷贝构造函数: test(const test& it) 3.赋值函数 test &operator(const test& it) 4.析构函数 ~test() 以下是具体应用四个函数的过程的一个经典例子,能让我们更好的

python学习笔记(四):函数

一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method. 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 二.使用函数的好处: 1.简化代码2.提高代码的复用性3.代码可扩展 三.p