E1 硬件描述语言
你已经学习了数字电路的基础知识, 并已经在Logisim中设计了简单的处理器. 但你应该也多少能体会到, Logisim并不适合设计更复杂的电路. 事实上, 现代处理器都是通过硬件描述语言(HDL)来设计的. 接下来, 你将来学习如何通过HDL来设计数字电路.
需要说明的是, 虽然Logisim并不适合设计复杂的电路, 但Logisim的使用经验应该已经帮助你建立了"电路思维": 数字电路设计只做两件事, “实例化”和"连线". 你接下来使用HDL来设计数字电路时, 头脑中也需要将HDL代码和Logisim的使用经验建立关联: 你只不过是换了一种方式来设计电路, 但本质上还是在进行"实例化"和"连线"的工作, 因此你应该能根据你编写的代码想象到电路的逻辑结构. 如果你发现自己无法想象, 那你很大概率会设计出质量较低的电路(频率低, 面积大, 功耗高), 甚至是功能不符合预期的电路.
推荐一些数字电路学习资料
- 数字电路与计算机体系结构: 如果你在学习过程中需要了解一些数字电路的理论知识, 可以参考书中的1~5章
- Verilog入门视频
- Verilog语法简介
- Verilog高级数字系统设计技术与案例分析
- 中科大的Verilog OJ平台(需要注册并登录)
通过线上网站学习Verilog语言
我们给大家推荐Verilog在线学习网站HDLBits, 它提供了丰富的习题, 并通过在线仿真判断你的代码是否正确.
如果你对自己的Verilog水平很有自信, 可以尝试完成以下习题:
- Sequential Logic
- Finite State Machines
- Lemmings 1
- Lemmings 2
- Lemmings 3
- Lemmings 4
- PS/2 packet parser
- PS/2 packet parser and datapath
- Serial receiver
- Serial receiver and datapath
- Serial receiver with parity checking
- Finite State Machines
如果你发现上述习题非常困难, 我们建议你从基础习题开始做起. 具体地, 你需要完成以下章节对应的习题:
- Getting Started - 建议完成, 以熟悉完成习题的流程
- Verilog Language - 建议不熟悉Verilog的同学完成
- Combinational Logic
- Basic Gates
- More logic gates
- Truth tables
- Simple circuit A
- Simple circuit B
- Thermostat
- 3-bit population count
- Even longer vectors
- Multiplexers
- 2-to-1 multiplexer
- 9-to-1 multiplexer
- 256-to-1 4-bits multiplexer
- Arithmetic Circuits
- Signed addition overflow
- 100-bits binary adder
- Basic Gates
- Sequential Logic
- Latches and Flip-Flops
- D flip-flip
- DFF with reset value
- DFF with asynchronous reset
- DFF with byte enable
- Mux and DFF
- Create circuit from truth table
- Detect an edge
- Detect both edges
- Edge capture register
- Dual-edge triggered flip-flop
- Counters
- Decade counter again
- Slow decade counter
- Counter 1000
- 12-hour clock
- Shift Registers
- Left/right rotator
- Left/right arithmetic shift by 1 or 8
- 5-bits LFSR
- Shift register
- 3-input LUT
- More Circuits - 全部完成
- Finite State Machines - 全部完成
- Latches and Flip-Flops
Verilog和电路图之间的关联
尝试在Logisim中生成对应电路的Verilog代码, 然后阅读这些代码, 理解Verilog代码如何对应到相应的Logisim电路.
