【计算机组成与体系结构Ⅰ】实验7 IP核的使用、D触发器

一、实验目的

1:学会设计用IP核和原理图的方式设计电路,完成涉及1位数据的2选1多路选择器。

2:设计带异步置零和写使能端的D触发器。

二、实验环境

  1. 软件:Vivado 2015.4
  2. 操作系统:Windows 10

三、实验内容

2.2.1 多路选择器的设计
1:添加IP核文件

 

2:添加bd文件,在Block Design界面中进行设计


3:放置门电路及端口

 
4:添加仿真文件并仿真

 

 

 


5:管脚分配

由于本实验不需要进行硬件实验,故2.2.1至此完毕

 

2.3.1 D触发器的设计

1:设置输入输出端口

2:编写源程序文件

 3:编写仿真程序文件

4 :仿真得到模拟图

 

四、分析Verilog 程序的功能,并编写仿真测试程序

源程序分析:

module reg8(
input clk, // 输入时钟信号input clrn, // 输入清除信号input wen, // 输入写使能信号input [7:0] d, // 输入数据信号output [7:0] q // 输出数据信号);reg [7:0] p; // 定义一个 8 位寄存器变量 palways @(posedge clk or negedge clrn) // 在时钟上升沿或清除信号下降沿时执行以下语句if(!clrn) // 如果清除信号为 0p <= 0; // 将寄存器清零else if (!wen) // 如果写使能信号为 0p <= d; // 将寄存器更新为输入数据信号assign q = p; // 将输出数据信号连接到寄存器变量 p 上
endmodule // 模块定义结束

仿真程序:

module reg8_sim;// Inputsreg clk;reg clrn;reg wen;reg [7:0] d;// Outputswire [7:0] q;// Instantiate the module to be testedreg8 dut (.clk(clk),.clrn(clrn),.wen(wen),.d(d),.q(q));// Clock generatoralways #5 clk = ~clk;// Testbench logicinitial begin// Initialize inputsclk = 0;clrn = 1;wen = 0;d = 0;// Wait for a few clock cycles#10;// Reset the moduleclrn = 0;#5 clrn = 1;// Wait for another few clock cycles#10;// Write some data to the modulewen = 1;d = 8'hAB;#5 wen = 0;// Wait for a few more clock cycles#10;// Read the data from the modulewen = 0;#5;$display("q = %h", q);// Finish the simulation#10;$finish;end
endmodule

仿真结果:

 

五、总结实验中遇到问题和解决方法

遇到的问题:

1:mux2x1verilog源文件在实验指导中存在一定问题,在仿真时c的输出为Z,即无输出。

解决的办法:

1:将源文件修改如下

module mux2x1verilog(

    input a,

    input b,

    input s,

    output c

    );

    wire a1,b1,sel;

    notgate_0 u0(.a(s),.c(sel));

    andgate_0 u1(.a(a),.b(sel),.q(a1));

    andgate_0 u2(.a(s),.b(b),.q(b1));

    orgate_0 u3(.a(a1),.b(b1),.q(c));

endmodule

 

由于实验指导里面未写入与门和或门的逻辑,因此无法正确运行程序。错误的仿真结果如下图:

 

根据代码语义分析后,可以得到a1为与门1的输出、b1为与门2的输出,sel为非门的输出。根据电路图重写语句后,仿真结果符合预期。

其他说明:

Exp_2文件夹中,Exp_2、mux2x1verilog为2.2.1的实验内容,dffe为2.3.1的实验内容,reg8为第四部分的实验内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22219.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql:常见的面试题和答案

1. 数据库事务的特性&#xff1f; 原子性&#xff1a;即不可分割性&#xff0c;事务要么全部被执行&#xff0c;要么就全部不被执行。一致性或可串性。事务的执行使得数据库从一种正确状态转换成另一种正确状态隔离性。在事务正确提交之前&#xff0c;不允许把该事务对数据的任…

Python django开发

第一步&#xff1a;创建开发环境 mkvirtualenv py2_django 第二步&#xff1a;安装django pip install django2.2.5 # 选择2.2.5的原因是这个版本是持久维护的 pip list # 查看安装的信息 第三步&#xff1a;start 一个项目&#xff0c;并创建子应用 cd ~/Myproject # 选择…

系统调用与函数调用有什么区别?

本文我们来聊聊系统调用与普通的函数调用之间的区别。 作为程序员你肯定写过无数的函数&#xff0c;假设有这样两个函数&#xff1a; void funcB() {} void funcA() { funcB();} 函数之间是可以相互调用的&#xff0c;这很简单很happy有没有。 要知道是代码、是函数就可以相…

软件测试要学习哪些技术才能月入15K

目录 前言 一、Linux必备知识 二、Shell脚本 三、互联网程序原理 四、Mysql数据库 五、抓包工具 六、接口测试工具 七、Web自动化测试Java&Pyhton 八、接口与手机自动化 九、敏捷测试&TestOps构建 十、性能测试&安全测试 总结&#xff1a; 前言 我一直…

[chatgpt+Azure]unity AI二次元小女友之使用微软Azure服务实现RestfulApi->语音识别+语音合成

1.简述 如题所述&#xff0c;这个小项目是在unity引擎端&#xff0c;使用了chatgpt微软azure的一个AI二次元女友对话的项目&#xff0c;实现原理也比较简单&#xff0c;即在unity端实现AI二次元女友的交互界面&#xff0c;接入chatgpt-3.5-turbo的api接口&#xff0c;借助chatg…

LabVIEW和Web Service交互方式?LabVIE本地项目如何发布到互联网上让外网访问

LabVIEW全称Laboratory Virtual Instrument Engineering Workbench&#xff0c; 是一种图形化编程语言(通常称为G语言)&#xff0c;即实验室虚拟仪器集成环境。LabVIEW 经过多年的持续创新&#xff0c;已经从单纯的仪器控制软件发展成为面向设计、测量和控制的综合性图形化开发…

【详解】C语言冷门知识点之--位段

文章目录 一&#xff0c; 位段的解释二&#xff0c; 位段的声明和使用位段的声明&#xff1a;位段的使用&#xff1a; 三&#xff0c;位段的空间大小计算第一个例子&#xff1a;第二个例子&#xff1a;注意&#xff1a; 四&#xff0c; 位段的内存分配五&#xff0c;位段的跨平…

Visual Studio下2022Opencv的配置

Visual studio2022 opencv的配置 先从官网下载opencv &#xff1a; opencv releases 下载 ​ 我这里的开发环境是window版本&#xff0c;我们选择Windows版本进行下载 点开下载的文件&#xff0c;输入需要保存的路径 记住你保存的路径(我这里安装再F:) 安装需要时间静等安装…

基于单片机的盲人导航智能拐杖老人防丢防摔倒发短息定位

功能介绍 以STM32单片机作为主控系统&#xff1b; OLED液晶当前实时距离&#xff0c;安全距离&#xff0c;当前经纬度信息&#xff1b;超声波检测小于设置的安全距离&#xff0c;蜂鸣器报警提示&#xff1a;低于安全距离&#xff01;超声波检测当前障碍物距离&#xff0c;GPS进…

综合小实验

第一步&#xff1a;计划IP R1的环回&#xff1a;192.168.1.0/28 R2的环回&#xff1a;192.168.1.16/28 R123的O/O/0接口&#xff1a;192.168.1.32/28 R3-4&#xff1a;192.168.1.128/30 Vlan2&#xff1a;192.168.1.48/28 vlan3&#xff1a;192.168.1.64/28 192.168.1.0/24 0区…

深度学习——优化器Optimizer

代码以及详细注释&#xff1a; import torch import torch.utils.data as Data import torch.nn.functional as F import matplotlib.pyplot as plt# torch.manual_seed(1) # reproducible """超参数 """ # 学习率 LR 0.01 # 批大小 BATCH_…

Java中abstract关键字

文章目录 由来语法格式使用说明应用举例 由来 举例1&#xff1a; 随着继承层次中一个个新子类的定义&#xff0c;类变得越来越具体&#xff0c;而父类则更一般&#xff0c;更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象&#xff0c;以至于它…