赞
踩
这个刷题笔记是给自己复习巩固用的,包括自己在刷题的时候遇到的问题,思考,以及看了一些大佬的笔记和答案进行整理和扩充。
网址:https://hdlbits.01xz.net/
HDLBits 是小型电路设计练习的网站,用于使用 Verilog 硬件描述语言 (HDL) 练习数字硬件设计。较早的问题遵循教程风格,而后面的问题将越来越多地挑战您的电路设计技能。
每个问题都需要你用 Verilog 设计一个小电路。HDLBits 为您提供有关您提交的电路模块的即时反馈。通过使用一组测试向量进行仿真并将其与我们的参考解决方案进行比较来检查您的电路是否正确。
如何使用 HDLBits
我应该做哪些练习?
练习按主题和每个主题的大致难度来组织。首先从“入门”部分开始,熟悉如何使用 HDLBits。然后从每个主题的较简单的问题开始,而不是严格按照从上到下的顺序。“Verilog Language”部分更侧重于使用Verilog语法和语言特性,而“Circuits”部分更侧重于使用Verilog创建电路,所以这两类问题应该同时做(练习新的语言特性,同时电路)你创造的变得更加复杂)。
主要有下几大模块
入门
使用 HDLBits
Verilog语言
重点介绍 Verilog 语言语法和特性的问题。
组合逻辑
逻辑门、模块、向量、组合 always 块、k-maps、…
时序逻辑
触发器、计数器、移位寄存器、有限状态机
阅读模拟
查找错误,从波形创建电路。
编写测试平台testbench
编写不可综合的 Verilog 测试平台
运行模拟
可以使用 Icarus Verilog Web 界面运行Verilog 仿真。这对于创建可共享的 Verilog 短位模拟很有用。
HDLBits是一个Verilog在线学习网站,直接在网站上编辑代码(Write your solution here框里),并进行综合仿真(点Submit,支持Quartus和Modelsim),查看波形图等(提交后会在下方显示)。
题目由浅入深,从最基础的Verilog语法到一些常用的组合逻辑和时序逻辑电路,再到FSM等更大型的电路以及Testbenches的编写。只需一点数电的基础便可直接上手。
Practice: Build a circuit with no inputs and one output. That output should always drive 1 (or logic high).
翻译:建立一个输出1的电路。
my answer(仅供参考,前面的简单题只给我自己的答案,后面的复杂题目会附上git上的答案和一些比较精彩的答案)
module top_module( output one );
assign one = 1;
endmodule
Tips:“1”在数字电路中代表高电平,module和assign会在后面介绍。
拓展:目前再复杂的计算机,其底层机器语言都是由0和1组成的,原因就在于计算机的处理器等基本都是超大规模的数字IC,而构成这些数字IC的CMOS等门电路的输入输出仅有高、低电平两种状态。具体可去了解一下MOSFET等器件的开关特性等,这里不做过多阐述。
Practice: Build a circuit with no inputs and one output that outputs a constant 0.
翻译:输出0。
my answer
module top_module(
output zero
);// Module body starts after semicolon
assign zero = 0;
endmodule
Tips:“0”代表低电平。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。