当前位置:网站首页>HDLBits: 在线学习 SystemVerilog(零)-在线“巡礼” HDLBits

HDLBits: 在线学习 SystemVerilog(零)-在线“巡礼” HDLBits

2022-08-10 17:05:00 碎碎思

HDLBits: 在线学习 SystemVerilog(零)-在线“巡礼” HDLBits

7de9d52b359b3bd9ec890b300014b4a6.jpeg

关于HDLBits,已经不止一次推荐给大家了,我也不在唠叨了,今天之后将使用约二十几篇文章使用SV实现HDLBits。

开篇第零篇当然是带大家先熟悉一下HDLBits网站。

网站介绍

网址如下:

https://hdlbits.01xz.net/

打开网页,首先就是网站的介绍:

373d094a4535e61a5f5f236518f7cc5b.png

简单翻译以下就是:

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

这里特意提醒了以下,如果想跟踪学习的进度或换到另一个浏览器使用,最好创建一个用户名和密码,以便可以从其他地方登录使用。

创建《用户名和密码》很简单,下面的界面:

662d566e261c72ba90a9ef2dd77c9363.png

点击箭头位置后,填写用户名和密码后,点击箭头位置就创建完成了。

260bd99504d808438c7fe20397602461.png

完成后登录就可以在箭头位置看到你的用户名和密码了。

b00ddb1a9da3959f5b9f91343078b689.png

核心内容

网站的核心当然是相关语法和题目了。首先就是几大主题:

8af4c292fbbc0305136e46ad2358d6ae.png

相关内容就是和Verilog相关的组合逻辑和时序逻辑了。点击Geting Started,开始练习题目。

c018ece724f12776a67ac0a23d038020.png

进去后就可以当成一本“语法书”使用了,涉及Verilog的相关语法整理,层级关系很Nice。

3f386922e7bc1530850efd546fdbd20f.png

点击进去相关标题就可以联系题目了~

关于题目

整个网站大约180道题左右,没有标准答案,网上很多关于Verilog的参考答案,度娘就有了,我们这次是使用SystemVerilog,网上目前好像还没有答案,不过我尽量快点更新~

练习题

我们今天更新两道练手用的练习题,主要熟悉整个网站的使用环境。

Step one

点击图片上的位置就可以第一道题目练习了,前面关于很多网站题目的介绍,大家有兴趣可以看看。

74935798f02ac287eeea83c9e46963c2.png

进度条拉到最后就看到第一道题目了:

ad4ca6a8dd504b5eb878c6e1c86e0227.png

其中:

  • 区域1:说明题目是实现什么功能;

  • 区域2:顶层声明(输入、输出声明一定要使用定义好的);

  • 区域3:编写代码

编写完代码后点击区域3中的Submit,就可以进行综合仿真了,我们接下来实际操作一下。

题目说明

设计一个没有输入和一个输出的电路,该输出端口时钟驱动逻辑 1(或逻辑高电平)。

模块端口声明如下:

module top_module( output one );

PS:这里注意一下下图中位置,这是在你不理解题目的情况下可以查看作者给的小小提示~

71f5faac00ba7b6e21849ff052c8a400.png

题目解析

这个没什么说的,一句话就可以了“assign one = 1;”。难度不大,对于SV来说,我们要修改一下输出端口的变量类型为logic,这部分内容可以查看《数字硬件建模SystemVerilog(八)-端口声明》,然后将下面的代码输入到区域3中即可。

module top_module (
    output var logic one
);

assign one = '1 ;
    
endmodule
ce95d2aad4433cd17022280787e45280.png

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

ea3cdabfe7eb85d3e9db578fa6605cbc.png

第一题就完美结束,我们今天再做一道。

Zero

点击下图位置就可以进入到下一题了。

3ce1f39b4c97fe90bc533dda50dabc21.png

题目说明

设计一个没有输入和一个输出的电路,输出一个常数0(或逻辑低电平)

模块端口声明如下:

module top_module(
    output zero
);

题目解析

这个没什么说的,一句话就可以了“assign one = 0;”。难度不大,对于SV来说,我们要修改一下输出端口的变量类型为logic,这部分内容可以查看《数字硬件建模SystemVerilog(八)-端口声明》,然后将下面的代码输入到区域3中即可。

module top_module (
    output var logic zero 
);
    
    assign zero = '0 ;
endmodule
8cfef1ea30b42c63f931704f0de1bc76.png

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

d87dd0306487e58f53b636b92e8d8360.png

第二题就结束了。

总结

今天简单介绍了一下HDLBits这个网站,简单又不失严谨,真的很适合入门学习Verilog/SV。题目由浅入深,大家可以试着自己学习解答,然后在找网上的代码对比学习(无标准答案)。

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

2969f108b549fc42dd95ec539fe74f9b.jpeg

SystemVerilog-条件(三元)运算符

原网站

版权声明
本文为[碎碎思]所创,转载请带上原文链接,感谢
https://suisuisi.blog.csdn.net/article/details/126258757