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

    文章

    2849

    浏览量

    53433
  • 电路设计
    +关注

    关注

    6745

    文章

    2793

    浏览量

    220206

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入剖析MCP1256/7/8/9电荷泵评估板:功能、使用与设计要点

    深入剖析MCP1256/7/8/9电荷泵评估板:功能、使用与设计要点 在电子工程领域,DC - DC转换电路是极为关键的一部分,尤其在电池供电的应用场景中,对高效、低噪声的DC - DC转换方案需求
    的头像 发表于 04-07 12:05 204次阅读

    KM在线监测厂家闪耀2026国际TnPM大会#在线监测#振动监测

    在线监测
    KM预测性维护专家
    发布于 :2026年04月03日 14:18:13

    上汽大众ID. ERA 9X全球首发搭载Momenta R7强化学习世界模型

    3月30日,Momenta R7强化学习世界模型全球首发搭载车型——上汽大众ID. ERA 9X正式开启预售。
    的头像 发表于 03-31 13:48 362次阅读

    Momenta R7强化学习世界模型即将推出

    3月16日,上汽大众举办以“人本科技”为主题的ID. ERA技术发布会,首次揭晓了ID. ERA 系列包括智能辅助驾驶在内的诸多核心技术亮点。会上,Momenta CEO曹旭东正式宣布:Momenta R7强化学习世界模型即将推出,并将全球首发搭载于上汽大众全新旗舰SUV
    的头像 发表于 03-17 13:57 1191次阅读

    PI7C9X130:PCI Express与PCI - X的高效桥梁

    PI7C9X130:PCI Express与PCI - X的高效桥梁 在当今的电子系统设计中,如何实现不同总线标准之间的高效连接是一个关键问题。PI7C9X130作为一款PCI Express到
    的头像 发表于 03-13 16:05 252次阅读

    KM在线监测实现设备高效管理#在线监测

    在线监测
    KM预测性维护专家
    发布于 :2026年02月27日 14:24:25

    9DBL0255/9DBL0455:PCIe Gen1 - 7时钟扇出缓冲器的设计与应用

    9DBL0255/9DBL0455:PCIe Gen1 - 7时钟扇出缓冲器的设计与应用 在PCIe系统的设计中,时钟分配是确保系统稳定运行的关键环节。Renesas的9
    的头像 发表于 02-09 16:30 307次阅读

    全面解说谐波在线监测装置

    谐波在线监测装置,7x24小时不间断的在线监测,实时掌握系统健康状况。精准定位谐波源。为治理方案提供权威数据支撑。满足电网公司对谐波注入的合规性要求。
    的头像 发表于 12-22 16:39 541次阅读
    全面解说谐波<b class='flag-5'>在线</b>监测装置

    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 3727次阅读

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

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

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

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

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

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