HDLBits_Verilog刷题笔记Verilog Language Basics(一)

前言

这个刷题笔记是给自己复习巩固用的,包括自己在刷题的时候遇到的问题,思考,以及看了一些大佬的笔记和答案进行整理和扩充。

  • git开源solutions
    https://github.com/viduraakalanka/HDL-Bits-Solutions
  • b站up脱发秘籍搬运工,呜呜这个up不管我学什么都有教程,永远也逃不开脱发的世界~
    https://space.bilibili.com/31880831/article
  • 还有边查边记录更新的一些内容(知识开源万岁!)

HDLBits — Verilog简单介绍

网址:https://hdlbits.01xz.net/
HDLBits 是小型电路设计练习的网站,用于使用 Verilog 硬件描述语言 (HDL) 练习数字硬件设计。较早的问题遵循教程风格,而后面的问题将越来越多地挑战您的电路设计技能。

每个问题都需要你用 Verilog 设计一个小电路。HDLBits 为您提供有关您提交的电路模块的即时反馈。通过使用一组测试向量进行仿真并将其与我们的参考解决方案进行比较来检查您的电路是否正确。

如何使用 HDLBits

  1. 选择问题:浏览问题集或转到第一个问题
  2. 用 Verilog 编写解决方案
  3. 必要时提交、模拟和调试

我应该做哪些练习?
练习按主题和每个主题的大致难度来组织。首先从“入门”部分开始,熟悉如何使用 HDLBits。然后从每个主题的较简单的问题开始,而不是严格按照从上到下的顺序。“Verilog Language”部分更侧重于使用Verilog语法和语言特性,而“Circuits”部分更侧重于使用Verilog创建电路,所以这两类问题应该同时做(练习新的语言特性,同时电路)你创造的变得更加复杂)。

主要有下几大模块
hdlbits.png
入门
使用 HDLBits

徽标v.png
Verilog语言
重点介绍 Verilog 语言语法和特性的问题。

标志梳.png
组合逻辑
逻辑门、模块、向量、组合 always 块、k-maps、…

徽标序列.png
时序逻辑
触发器、计数器、移位寄存器、有限状态机

徽标 sim.png
阅读模拟
查找错误,从波形创建电路。

徽标 tb.png
编写测试平台testbench
编写不可综合的 Verilog 测试平台

运行模拟
可以使用 Icarus Verilog Web 界面运行Verilog 仿真。这对于创建可共享的 Verilog 短位模拟很有用。

HDLBits是一个Verilog在线学习网站,直接在网站上编辑代码(Write your solution here框里),并进行综合仿真(点Submit,支持Quartus和Modelsim),查看波形图等(提交后会在下方显示)。

题目由浅入深,从最基础的Verilog语法到一些常用的组合逻辑和时序逻辑电路,再到FSM等更大型的电路以及Testbenches的编写。只需一点数电的基础便可直接上手。

0. Getting Started

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会在后面介绍。

1. Output zero

拓展:目前再复杂的计算机,其底层机器语言都是由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”代表低电平。

重点

  1. 1对应高电平信号,0对应低电平信号。

你可能感兴趣的:(fpga开发,硬件架构)