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,所以不须要明白指出。除了上述方式外,还能够例如以下定义:

class ScalaIO extends Bundle{
  val in = new MyFloat().asInput
  val scala = new MyFloat().asInput
  val out = new MyFloat().asOutput
}

此处的方法asInput、asOutput为MyFloat中全部的元素指定方向。

时间: 2024-12-29 16:56:13

Chisel Tutorial(六)——port的相关文章

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

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会自动推测,上例中就没有定义

动手动脑,第六次Tutorial——数组

动手动脑,第六次Tutorial--数组 这次的Tutorial讲解了Java中如何进行数组操作,包括数组声明创建使用和赋值运算,写这篇文章的目的就是通过实际运用已达到对数组使用的更加熟练,下面是实践代码之后的感悟与总结: 动手动脑1:PassArray.java 1 // PassArray.java 2 // Passing arrays and individual array elements to methods 3 4 public class PassArray { 5 6 pub

Python Tutorial 学习(六)--Modules

6. Modules 当你退出Python的shell模式然后又重新进入的时候,之前定义的变量,函数等都会没有了. 因此, 推荐的做法是将这些东西写入文件,并在适当的时候调用获取他们. 这就是为人所知的脚本文件. 随着编程的深入,代码的增多,你可能又会将代码存到不同的文件中方便管理. 你会想到去使用之前的编程中已经写好了的一个函数的定义. Python有自己的方式去实现这些.它会将这些保存了定义的函数,类等的文件(文件夹)称作module; 一个module中的定义的函数 类等可以被导入到另一个

Ruby on Rails Tutorial 第六章 用户模型

1.用户模型(1)数据库迁移Rails默认使用关系数据库存储数据,数据库中的表有数据行组成,每一行都有相应的列,对应数据属性.把列名命名为相应的名字后,ActiveRecord会自动把他们识别为用户对象的属性. $ rails generate controller Users new #生成用户控制器和new动作,控制器名是复述Users $ rails generate model User name:string email:string #生成用户模型,模型名是单数User $ bund

Mule ESB-Content-Based Routing Tutorial(2)

承接 Mule ESB-Content-Based Routing Tutorial(1) 五.运行应用程序 完成创建,配置,并保存你的新的应用程序,您就可以在嵌入Mule的服务器上运行(包括在Mule Studio中,作为捆绑下载的一部分). 1.在Package Explorer窗格中,右键单击Basic Tutorial.mflow文件,然后选择Run As>Mule Application. (如果您还没有保存,Mule会提示您现在保存. 2.Mule会立即显示运行进度齿轮,开始您的应用

2018-08-24 第三十六课

第三十六课 非关系统型数据库-mangodb 目录 二十四 mongodb介绍 二十五 mongodb安装 二十六 连接mongodb 二十七 mongodb用户管理 二十八 mongodb创建集合.数据管理 二十九 php的mongodb扩展 三十 php的mongo扩展 三十一 mongodb副本集介绍 三十二 mongodb副本集搭建 三十三 mongodb副本集测试 三十四 mongodb分片介绍 三十五 mongodb分片搭建 三十六 mongodb分片测试 三十七 mongodb备份

通过rinetd实现port转发来訪问内网的服务

一.   问题描写叙述 通过外网来訪问内网的服务 二.   环境要求 须要有一台能够外网訪问的机器做port映射.通过数据包转发来实现外部訪问阿里云的内网服务 三.   操作方法 做port映射的方案有非常多.Linux下的ssh tunnel和windows下的portmap等等,这里分享一个更稳定和简单的小工具rinetd 四.   下载安装 $ wget http://www.boutell.com/rinetd/http/rinetd.tar.gz $ tar -xvf rinetd.t

Python之路【第十六篇】:Django【基础篇】

Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserver