【计算机组成与设计学习笔记】(二)

一、Verilog HDL

Verilog HDL(Hardware Description Language)是一种设计硬件电路的语言,由IEEE完成了对其标准化的工作。 Verilog HDL总体来讲带有C语言的风格,是工业界常用的硬件描述语言。——《计算机原理与设计》,李亚民(全文引用的概念都出自此书,不多赘述)

个人感觉,Verilog HDL跟每一种编程语言一样,有自己独特的地方。Verilog HDL作为一种HDL,它语法风格很像C类语言,但是它更如同名字一样,偏重于去描述,而不是像C注重算法实现的过程或者是面向对象的抽象。这或许是因为它除了逻辑设计以外,还有时序设计,所以往往要比一般设计更加复杂,对设计者要求更加谨慎和细心。

二、CMOS

CMOS的全称是Complementary Metal Oxide Semiconductor,意味互补型金属氧化物半导体,由PMOS和NMOS两种晶体管“互补”构成

CMOS晶体管结合了PMOS和NMOS两种晶体管的优点,使得电路更易导通1和0两种状态,物理特性和规格标准这里不作讨论。
在CMOS级别上,我们可以搭建起常见的门级逻辑,如非门、与或门、异或门等。而在我们设计时,我们会经常忽略CMOS这一层级的考虑,因为越低的层级更加繁琐,而且当工程量大了以后,我们也很难顾虑了。用的晶体管的个数,可以在大致程度上衡量这个器件的功耗、面积,从而决定这个器件最后的好坏。
在Verilog HDL里,给出了这一级别设计的一些类型:

supply1 vdd;    //高电平
supply0 gnd;    //低电平
pmos    p1(drain, source, gate);        
nmos    n1(drain, source, gate);

而在这个层级上定义了一些CMOS门,代码已经传上CSDNCode里,需要或有兴趣实现的可以参考这里

三、四种风格的Verilog HDL描述

1.晶体管开关级:也就是上述的CMOS级别描述;
2.逻辑门级:在CMOS上搭建的逻辑门,从而实现更高的设计;
3.数据流级:从这一级别开始,设计变得简易。数据流级强调和关注数据的流向、改变,使得信号数据有了连接关系,牵一发而动全身的姿态。
4.功能描述级:更接近自然语言的级别。

四、常用的组合电路

1.多路选择器
2.译码器
这里就不多赘述两者的概念和实现。这两个组合电路可以很简单地实现逻辑门(非、与、或等),从而组成组合电路。

五、时序电路

1.D锁存器
2.D触发器
3.状态机
同样,三者也不多赘述。
状态机是一个很重要的时序逻辑,可以很方便地解决我们一些实际问题,而我们的生活中处处都是一个个状态机,包括我们的投币机、电子防盗门系统等。如果有机会,将进一步学习。

六、实例:3输入CMOS与非门

在这里,以一个3输入CMOS的与非门作为实例。
实现代码:

<verilog HDL>
module cmosnand3 (ina,inb,inc,out);
    input ina,inb,inc;
    output out;
    supply1 vdd;
    supply0 gnd;
    wire wn1,wn2;
    pmos    p1(out,vdd,ina);
    pmos    p2(out,vdd,inb);
    pmos    p3(out,vdd,inc);
    nmos    n1(out,wn1,ina);
    nmos    n2(wn1,wn2,inb);
    nmos    n3(wn2,gnd,inc);

endmodule
</verilog HDL>

测试代码:

<verilog HDL>
`include "cmosnand3.v"

module cmosnand3_test;
    reg ina,inb,inc;
    wire out;
    cmosnand3 c1(ina,inb,inc,out);
    integer i;
    initial begin
        #0 ina = 0; inb = 0; inc = 0;
        $display("\tina\tinb\tinc\tout");
        for(i =  0; i < 9; i = i + 1)begin
            #1 {ina,inb,inc} = i;
        end
        #1 $finish;
    end
    initial begin
        $monitor("\t%b\t%b\t%b\t%b",ina,inb,inc,out);
        $dumpfile("cmosnand3.vcd");
        $dumpvars;
    end
endmodule

</verilog HDL>

测试结果截图:
result

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
计算机组成设计:硬件/软件接口(原书第5版)》是计算机组成设计的经典畅销教材,第5版经过全面更新,关注后PC时代发生在计算机体系结构领域的革命性变革——从单核处理器到多核微处理器,从串行到并行。本书特别关注移动计算和云计算,通过平板电脑、云体系结构以及ARM(移动计算设备)和x86(云计算)体系结构来探索和揭示这场技术变革。   与前几版一样,本书采用MIPS处理器讲解计算机硬件技术、汇编语言、计算机算术、流水线、存储器层次结构以及I/O等基本功能。   《计算机组成设计:硬件/软件接口(原书第5版)》特点   更新例题、练习题和参考资料,重点关注移动计算和云计算这两个新领域。   涵盖从串行计算到并行计算的革命性变革,第6章专介绍并行处理器,每章中都涉及并行硬件和软件的相关主题。   全书采用Intel Core i7、ARM Cortex-A8和NVIDIA Fermi GPU作为实例。   增加“运行更快”这一新实例,说明正确理解硬件技术的重要性,它能使软件性能提高200倍。   讨论并强调计算机体系结构的“8个伟大思想”——通过并行提高性能、通过流水线提高性能、通过预测提高性能、面向摩尔定律的设计、存储器层次、使用抽象简化设计、加速大概率事件和通过冗余提高可靠性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值