计算机组成实验(1)

本文介绍了使用Vivado进行EDA实验,包括熟悉设计环境、自定义模块设计、逻辑模块原理学习以及在NEXYS A7开发板上实现流水灯和MUX控制。通过实验,学习了VHDL/Verilog编程、模块化设计以及硬件验证。
摘要由CSDN通过智能技术生成

实验目的:

1. 熟练掌握EDA开发工具和开发流程

2. 复习数字逻辑设计实现方法

3. 扩展优化逻辑实验基本模块

4. 优化计算机系统实现的辅助模块

5. 了解计算机硬件系统将中到的最基本模块

实验设备:

 1. 计算机(Intel Core i5以上,4GB内存以上)系统

2. NEXYS A7开发板

3. Vivado 2017.4及以上开发工具

实验目标及任务:

1. VIVADO工具学习

 目标:熟悉VIVADO设计环境,掌握EDA工具 

任务:利用VIVADO完成water_LED的全流程设计

2. 自定义模块设计学习 

目标:自定义模块设计,熟悉模块化流程

任务:利用VIVADO完成多选器(MUX) 的设计和封装

3. 基本逻辑模块的原理学习、Xilinx IP 生成

目标:熟悉多选器、逻辑运算、数据扩展等模块的设计 原理,掌握存储器的IP生成方法

任务1:熟悉基本模块功能,在VIVADO环境中采用 verilog进行基本模块的设计和仿真验证;

任务2:学习利用VIVADO生成Xilinx 库中的IP,以存储 器ROM、RAM为例,并完成其存储内容的初始化

4. 利用自定义模块构建实验平台

目标:了解实验板的资源情况,熟悉RTL TOP-DOWN的 设计流程,完成实验平台muxctrl的构建。 任务:采用verilog编码的设计方法,完成多选器控制LED 的设计并利用NEXYS A7实验板进行硬件验证。

实验内容:

1.流水灯的实现:

如图,为NEXYS-A7上的16个并行LED流水灯原理图, 所有的阴极(负极)接 地(共阴极),当阳极接高电平时,点亮。

LED流水灯源程序, 输入时钟( 100MHZ),输入复位(低电平有效),输出 LED灯驱动(高电平有效)。设置中间计数器C0每计数100000000翻转 一次,产生1HZ(1S)的时钟来更新一次LED 点亮状态(若不延缓以前的100M快时钟, 则会影响流水灯的观察)。通过左移一位高电平的方式逐个点亮LED, 形成流水 。

其对应的顶层文件为:

`timescale 1ns / 1ps
module Water_LED(
    input CLK_i,
    input RSTn_i,
    output reg [3:0]LED_o
    );
    reg [31:0]C0;
always @(posedge CLK_i)
    if(!RSTn_i) begin
        LED_o <= 4'b1;
        C0 <= 32'h0;
    end
    else begin
        if(C0 == 32'd100_000_000) begin
            C0 <= 32'h0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

博学者普克尔特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值