0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在线学习SystemVerilog-Problem 7-9

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2022-08-17 11:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

HDLBits 是一组小型电路设计习题集,使用 Verilog/SystemVerilog 硬件描述语言 (HDL) 练习数字硬件设计~

网址如下:

https://hdlbits.01xz.net/

关于HDLBits的Verilog实现可以查看下面专栏:

https://www.zhihu.com/column/c_1131528588117385216

缩略词索引

  • SV:SystemVerilog

Problem 7-Xnorgate

题目说明

创建一个 XNOR 门的模块。

edf4ef42-1dd4-11ed-ba43-dac502259ad0.png
图片来自 HDLBits

这个题目的核心就是上面的图片,模块和端口已经被定义好了,黑色的框图以及箭头代表模块和端口。我们需要做的工作是完成图中绿色的部分,即完成一个XNOR 门。

模块端口声明

moduletop_module(
inputa,
inputb,
outputout);

题目解析

这个题目重点还是看懂题目的图片,还是复习一下:

ee04d542-1dd4-11ed-ba43-dac502259ad0.png

题目中的绿色部分就是上图的同或门,主要由

这里也可以利用数电逻辑来写代码,同或门的逻辑就是同或门 (XNor Gate) 是异或门 (Nor Gate) 的取反输出。异或门的输入输出可以概括为:(输入)相同(输出)为 0 ,不同为 1

moduletop_module(
inputlogica,
inputlogicb,
outputlogicout);

assignout=~(a^b);

endmodule
ee3a4a88-1dd4-11ed-ba43-dac502259ad0.png

点击Submit,等待一会就能看到下图结果:

ee542656-1dd4-11ed-ba43-dac502259ad0.png

注意图中的Ref是参考波形,Yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红(后面会展示)。

这一题就结束了。

Problem 3-Wire4

题目说明

创建一个具有 3 个输入和 4 个输出的模块,其行为类似于下面演示的这些连线:

a->w
b->x
b->y
c->z
ee859c36-1dd4-11ed-ba43-dac502259ad0.png
图片来自 HDLBits

这个题目的核心就是上面的图片,模块和端口已经被定义好了,黑色的框图以及箭头代表模块和端口。我们需要做的工作是完成图中绿色的部分,即完成这条连线

模块端口声明

moduletop_module(
inputa,b,c,
outputw,x,y,z);

题目解析

主要使用assign语句实现上面的连线,难度较低。

moduletop_module(
inputlogica,b,c,
outputlogicw,x,y,z
);

assignw=a;
assignx=b;
assigny=b;
assignz=c;

endmodule
ee9d8288-1dd4-11ed-ba43-dac502259ad0.png

点击Submit,等待一会就能看到下图结果:

eec09c96-1dd4-11ed-ba43-dac502259ad0.png

注意图中的Ref是参考波形,Yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红(后面会展示)。

这一题就结束了。

Problem 4-Notgate

题目说明

创建一个实现非门(Notgate)的模块。

eef20614-1dd4-11ed-ba43-dac502259ad0.png
图片来自 HDLBits

从这个题目开始实现几个经典组合电路,非门的的核心就是上面的图片,模块和端口已经被定义好了,黑色的框图以及箭头代表模块和端口。我们需要做的工作是完成图中绿色的部分,实现一个非门。

模块端口声明

moduletop_module(inputin,outputout);

题目解析

主要使用assign语句实现非门,也很简单就一个语句“assign out = ~in;”。这里注意一个逻辑取反和逐位取反的区别。

moduletop_module(inputlogicin,
outputlogicout
);

assignout=~in;

endmodule

上面使用“assign out = ~in ;”和“assign out = !in ;”无区别,因为只有一位变量。

ef033740-1dd4-11ed-ba43-dac502259ad0.png

点击Submit,等待一会就能看到下图结果:

ef1de392-1dd4-11ed-ba43-dac502259ad0.png

注意图中的Ref是参考波形,Yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红(后面会展示)。

这一题就结束了。

Problem 5-Andgate

题目说明

创建一个与门(Andgate)模块。。

ef357c00-1dd4-11ed-ba43-dac502259ad0.png
图片来自 HDLBits

与门的的核心就是上面的图片,模块和端口已经被定义好了,黑色的框图以及箭头代表模块和端口。我们需要做的工作是完成图中绿色的部分,实现一个与门。

模块端口声明

moduletop_module(
inputa,
inputb,
outputout);

题目解析

主要使用assign语句实现与门,也很简单就一个语句“assign out = a & b;”。值得注意的是 & 和 && 的区别。

moduletop_module(
inputlogica,
inputlogicb,
outputlogicout);

assignout=a&b;

endmodule
ef50eef4-1dd4-11ed-ba43-dac502259ad0.png

点击Submit,等待一会就能看到下图结果:

ef7795c2-1dd4-11ed-ba43-dac502259ad0.png

注意图中的Ref是参考波形,Yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红(后面会展示)。

这一题就结束了。

Problem 6-Norgate

题目说明

创建一个实现 NOR 门的模块。或非门(Norgate)是一个输出反相的或门。用 Verilog 编写的 NOR 门需要两个运算符。

ef8a3b64-1dd4-11ed-ba43-dac502259ad0.png
图片来自 HDLBits

或非门的的核心就是上面的图片,模块和端口已经被定义好了,黑色的框图以及箭头代表模块和端口。我们需要做的工作是完成图中绿色的部分,实现一个或非门。从图中可以看出就是一个或门输出取反,核心就是先实现一个或门,之后再输出端取反即可,可以使用两个assign语句或者一个assign语句实现。

模块端口声明

moduletop_module(
inputa,
inputb,
outputout);

题目解析

这一题的关键是看懂题目给的符号,给大家一个常用的门电路示意图:

ee04d542-1dd4-11ed-ba43-dac502259ad0.png

HDLbits网站上的使用的是国外流行图形符号一栏,从题目给定的符号,对比上一图就是典型的或非门,由或门和非门组合实现。

moduletop_module(
inputlogica,
inputlogicb,
outputlogicout);

assignout=~(a|b);

endmodule

代码中(a|b)实现一个或门,然后取反即可~(a | b)。

efd4c6ac-1dd4-11ed-ba43-dac502259ad0.png

点击Submit,等待一会就能看到下图结果:

eff3c7dc-1dd4-11ed-ba43-dac502259ad0.png

注意图中的Ref是参考波形,Yours是你的代码生成的波形,网站会对比这两个波形,一旦这两者不匹配,仿真结果会变红。

错误示范

一开始代码写错了,写成:

moduletop_module(
inputlogica,
inputlogicb,
outputlogicout);

assignout=~a|b;

endmodule

仿真结果如下:

f00af79a-1dd4-11ed-ba43-dac502259ad0.png

造成上面结果的主要原因还是因为Verilog/SV中逻辑操作,运算符等有优先级(和数学里的加减乘除乘除一样),具体优先级如下:

f03eba1c-1dd4-11ed-ba43-dac502259ad0.png

所以上面的代码会优先做~a然后在和b或,加上括号解决。

总结

今天的5道题就结束了,整体难度不大,后面的题目难度会越来越大~

最后我这边做题的代码也是个人理解使用,有错误欢迎大家批评指正,祝大家学习愉快~

代码链接:

https://github.com/suisuisi/SystemVerilog/tree/main/SystemVerilogHDLBit

审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2822

    浏览量

    52847
  • 电路设计
    +关注

    关注

    6732

    文章

    2579

    浏览量

    218094

原文标题:HDLBits: 在线学习 SystemVerilog(二)-Problem 7-9

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    激光雪深监测站—实时在线监测积雪厚度

    在线监测
    pingao141378
    发布于 :2025年11月29日 11:55:09

    KM在线监测方案保障水泵安全生产#在线监测

    在线监测
    KM预测性维护专家
    发布于 :2025年11月28日 09:18:13

    破解平压平模切机监测难题!KMPHM在线监测方案大揭秘 #在线监测

    在线监测
    KM预测性维护专家
    发布于 :2025年09月16日 16:26:25

    KM告诉你 人工监测VS在线监测 谁才是效率王者?#在线监测

    在线监测
    KM预测性维护专家
    发布于 :2025年08月15日 10:06:36

    维信诺亮相2025上海显示技术及应用创新展

    2025年被称作“AI显示元年”。8月7-9日,一年一度的显示盛会国际(上海)显示技术及应用创新展(DIC EXPO)举办,主题为“AI·显示,再谋新篇”。
    的头像 发表于 08-08 16:34 3444次阅读

    KM在线监测标杆计划招募中#在线监测

    在线监测
    KM预测性维护专家
    发布于 :2025年07月25日 13:41:08

    KM告诉你什么是在线监测?#

    在线监测
    KM预测性维护专家
    发布于 :2025年06月19日 14:07:22

    KMPHM在线监测系统 让设备故障无处遁形#在线监测#振动在线监测

    在线监测
    KM预测性维护专家
    发布于 :2025年05月22日 16:30:08

    亿纬锂能亮相2025德国慕尼黑智慧能源展览会

    此前,2025年5月7-9日,欧洲最大能源行业展览会The smarter E Europe在慕尼黑盛大开幕。亿纬锂能携创新储能产品与全场景解决方案重磅亮相展会,引领储能行业高质量发展,为推动全球能源低碳转型贡献力量。
    的头像 发表于 05-12 16:50 1010次阅读

    华为智能光储产品亮相Intersolar Europe 2025

    此前,2025年5月7-9日,Intersolar Europe在慕尼黑盛大启幕。华为数字能源携全场景构网的智能光储产品和解决方案,以场景化方式诠释全面构网时代的前沿技术成果和标杆商业应用,助力新型电力系统的建设,推动全球新能源产业的高质量发展。
    的头像 发表于 05-10 10:49 1372次阅读

    KMPHM在线监测平台赋能设备管理升级#在线监测#振动监测

    在线监测
    KM预测性维护专家
    发布于 :2025年03月06日 14:51:51

    微气象在线监测装置气象环境实时在线监测数据稳定可靠

    在线监测
    jf_96960730
    发布于 :2024年12月27日 09:17:07

    使用wavevison5软件时,FPGA中的程序是在线加载的,CY7C68013A中的固件也是在线加载的吗?

    指示灯都没有亮,但是OVER_RANGE指示灯亮了,请问这是什么原因呢? 再请教一个问题,使用wavevison5软件时,FPGA中的程序是在线加载的,CY7C68013A中的固件也是在线加载的吗?
    发表于 12-27 08:11

    《具身智能机器人系统》第7-9章阅读心得之具身智能机器人与大模型

    研读《具身智能机器人系统》第7-9章,我被书中对大模型与机器人技术融合的深入分析所吸引。第7章详细阐述了ChatGPT for Robotics的核心技术创新:它摒弃了传统的分层控制架构,创造性地
    发表于 12-24 15:03

    KMPHM在线监测平台实现设备高效管理#在线监测#振动监测#振动在线监测

    在线监测
    KM预测性维护专家
    发布于 :2024年12月24日 13:34:35