完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
` 本帖最后由 FPGAchuxue 于 2015-4-10 10:04 编辑
本篇教程出自Robei,更多精彩内容请关注:Robei 1.实验目的 数字逻辑是芯片电路的基本组成部分。本次实验主要分析数字逻辑门在Robei软件中利用Verilog语言实现的方式,并通过该实验让参与者快速体验并掌握“图形化+代码”的新型设计模式。 2.实验准备 2.1理论分析 逻辑门是数字电路的基础,常见的数字电路逻辑门有与门,或门,非门,与非门,或非门和异或门等。本次实验重点讨论其中的几个逻辑门用Verilog在Robei软件中的设计和仿真。以常见的与门为例,如图2-1-1所示,通过其真值表可以看出,只有当两个输入同时为1的时候,输出才是1,其他情况下均为0。与门的数学表达式为:
与门示意图和真值表 2.2软件准备 熟悉Robei软件。在Robei官方网站上下载最新版Robei软件,并安装。打开Robei软件,熟悉Robei软件的结构和菜单。将鼠标放在工具栏的每个图标上查看图标所代表的内容。在下拉菜单中点击“Help”,查看Robei最新版用户使用说明书。 3.实验内容 3.1 模型设计 1)新建一个模型。点击工具栏上的图标,或者点击菜单“File”然后在下拉菜单中选择“New”,会有一个对话框弹出在弹出的对话框中设置你所设计的模型。 对应的每项分析如下: (1)Module Name:模块名称,这里我们想创建一个叫andgate的模块,输入andgate。 (2)Module Type:模块类型,Robei支持3种类型,“module”,“testbench”和“constrain”。这里我们创建的是一个模块,选择“module”。 (3)Language:设计语言,这里只有一种设计语言Verilog。 (4)Input Ports:输入引脚的数目,我们设计的模块有2个输入引脚a和b,所以输入2。 (5)Output Ports:输出引脚的数目,我们设计的模块只有1个输出引脚y,所以输入1。 (6)Inout Ports:既可以作为输入又可以作为输出引脚的数目,我们设计的模块没有用到该类型引脚,所以输入0。 参数填写完成后点击“OK”按钮,Robei就会生成一个新的模块,名字就是andgate, 2)修改模型。在自动生成的界面图上用鼠标选中输入引脚“p0”,右侧的属性编辑栏就会展示该引脚相对应的属性。每条属性有其对应的名称。为了跟实验设计名称一致,我们把p0的名称改成a,p1的名称改成b,p2的名称改成y。修改的方法是在属性编辑器Name栏里面修改并点回车。为了区分每个引脚,我们可以修改每个引脚的Color值,并点回车保存。 3)输入算法。点击模型下方的Code进入代码设计区。 在代码设计区内输入以下Verilog代码: assign y = a & b; //学习Verilog assign的写法。 该代码实现的是与门逻辑运算。 4)保存。点击工具栏图标,或者点击菜单“File”中的下拉菜单“Saveas”,将模型另存到一个文件夹中。 5)运行。在工具栏点击或者点击菜单“Build”的下拉菜单“Run”,执行代码检查。如果有错误,会在输出窗口中显示。如果没有错误提示,恭喜你,模型andgate设计完成。 3.2测试文件设计 1)新建一个文件。点击工具栏上的图标,在弹出的对话框中参照图2-1-9进行设计。 2)修改各个引脚的颜色。选中每个引脚,在属性栏中修改其颜色,方便区分不同的引脚信号。 3)另存为测试文件。点击工具栏图标,将测试文件保存到andgate模型所在的文件夹下。 4)加入模型。在Toolbox工具箱的Current栏里,会出现一个andgate模型,单击该模型并在andtest上添加。 5)连接引脚。点击工具栏中的图标,或者选择菜单“Tool”中的“Connect”,连接引脚p0到a,p1到b和y到p2。这个时候,注意查看连接线的颜色。如果鼠标要变回选择模式,点击图标。 6)输入激励。点击测试模块下方的“Code”,输入激励算法。激励代码在结束的时候要用$finish 结束。 initial begin //学习initial begin和end的写法 p0 = 0; //设置初始值 p1 = 0; #1 //一个时钟延迟 p0 = 1; #1 //再加一个时钟延迟 p1 = 1; #1 p0 = 0; #1 p1 = 0; #1 $finish; //结束仿真的标志 end 7)执行仿真并查看波形。点击工具栏,查看输出信息。检查没有错误之后点击,或者点击菜单“View”中的“Waveview”。波形查看器就会打开。 8)点击右侧Workspace中的信号,进行添加并查看。点击波形查看器工具栏上的图标进行自动缩放。分析仿真结果并对照真值表,查看设计正确与否。 4.问题与思考 实验中以与门作为例子进行设计,你如何经过简单改动,按照同样的方式来设计或门,非门和以或门并进行仿真验证?
5.常见问题 1) 我为什么仿真之后看不到波形? Robei 的模型有四种类型:“module”,“model”, “testbench” 和“constrain”。 如果你想仿真之后看波形应该将顶层的仿真模块类型设置成“testbench”。同时,testbench的模块输入端口类型应为“reg”, 输出类型应为“wire”。 2) “model” 和 “module”有什么区别? 正在设计的模块叫做“module”, 一旦设计完成,并把此模块应用到其它的设计模块的时候,该模块的类型自动变成“model”。“model”的一些属性不可更改,是被保护了的。 3) 怎么样看到模块的完整代码? 在“Code”中,你只能看到用户输入的代码部分,而且这些代码不是从第一行开始计数的。点击菜单“View”中的下拉菜单“CodeView”,你可以看到所有的代码,包括自动生成的。 4) 我没有注册能不能仿真看波形? 可以。但是仿真的模块数目有限制。 `
|
||
|
相关推荐
|
||
|
如果有需要了解Robei的可以联系我,我可以提供更多资料。
|
|
|
|
|
|
|
|
|
欢迎大家到robei.cn注册下载Robei软件
|
|
|
|
|
|
|
|
647 浏览 0 评论
NVMe over Fabrics 国产 IP:高性能网络存储解决方案
618 浏览 0 评论
130 浏览 0 评论
NVMe高速传输之摆脱XDMA设计54:如何测试队列管理功能2
422 浏览 0 评论
NVMe高速传输之摆脱XDMA设计53:如何测试队列管理功能
748 浏览 0 评论
4574 浏览 64 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 21:09 , Processed in 0.821388 second(s), Total 71, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖