远程FPGA虚拟实验平台用SystemVerilog HDL实现硬布线控制器

本文介绍了使用SystemVerilog在远程FPGA虚拟实验平台上实现硬布线控制器的过程。实验涉及两种指令,通过OPCODE进行区分,并详细展示了RegFile和sALU模块的设计。代码中,作者利用译码器控制sALU操作,并通过实例化RegFile和sALU模块完成数据处理。实验还包括七段显示的连接和测试。
摘要由CSDN通过智能技术生成

远程FPGA虚拟实验平台用SystemVerilog HDL实现硬布线控制器


前言:上次微程序有错呜呜呜 传送的地方有错已经改了 老板们去康康!!疯狂鞠躬.gif->是21年更新博客的时候写的前言,现在抄的话不用管,已经是对的了
这个实验做完了之后差不多课设了,课设不让外传,除了我们学校应该没人学这些,所以我不是很敢发。
有问题可以联系我qq,CSDN经常看不见消息。
找到我的方式参考这里
我人超好的,请找我玩!(请带我打王者,我课设除了数据结构之外都是A,暗示.jpg)
感谢您一路以来的阅读!鞠躬.gif

原理

参考材料

这次和前两次一样也是直接套用参考材料,所以没有原理直接看实验内容。

实验内容

在这里插入图片描述
先看实验平台有个大概思路。
在这里插入图片描述
从慕课里的表来看,就是有两种指令,一种用俩寄存器运算,一种用一个寄存器和一个直接数据运算,由OPCODE[3]决定用哪种。

源代码

参考材料

VirtalBoard

写这个主要先回顾一下sALU的功能,M0=0做加法,M0=1做减法,S1S0=00正常加减,01与,10或,11异或。然后把OPCODE译码一下,RegFile和sALU实例化一下。

`default_nettype none 
module VirtualBoard (
    input  logic  CLOCK,      // 10 MHz Input Clock 
    input  logic [19:0] PB,   // 20 Push Buttons, logical 1 when pressed
    input  logic [35:0] S,    // 36 Switches
    output logic [35:0] L,    // 36 LEDs, drive logical 1 to light up
    output logic  [7:0] SD7,  // 8 common anode Seven-segment Display
    output logic  [7:0] SD6,
    output logic  [7:0] SD5,
    output logic  [7:0] SD4,
    output logic  [7:0] SD3,
    output logic  [7:0] SD2,
    output logic  [7:0] SD1,
    output logic  [7:0] SD0
);

/********* Seven-segment decoder instantiation **********/
logic [3:0] HD[7:0];  // 8 hexadecimal display 
SevenSegDecode ssdecode_inst7(.iData(HD[7]), .oSeg(SD7));
SevenSegDecode ssdecode_inst6(.iData(HD[6]), .oSeg(SD6));
SevenSegDecode ssdecode_inst5(.iData(HD[5]), .oSeg(SD5));
SevenSegDecode ssdecode_inst4(.iData(HD[4]), .oSeg(SD4));
SevenSegDecode ssdecode_inst3(.iData(HD[3]), .
  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值