HDLBits学习笔记Basic

Getting Started

Output one

问题:建立一个没有输入只有一个输出的电路。输出应该总是驱动1(或逻辑高)。
在这里插入图片描述
需要在[fixme]中输入相应的值
对应的格式:e.g. 位宽+‘+进制+数字:6’b11

在这里插入图片描述

Verilog语法

Wire

与物理线不同,Verilog中的线(和其他信号)是定向的。这意味着信息只在一个方向流动,从(通常是一个)源到汇点(源也经常被称为将值驱动到线路上的驱动器)。在Verilog的“连续赋值”(assign left_side = right_side;)中,右侧信号的值被驱动到左侧的线路上。这个赋值是“连续的”,因为即使右边的值发生了变化,赋值也一直在进行。连续分配不是一次性事件。
模块上的端口也有方向(通常是输入或输出)。输入端口是由模块外部的东西驱动的,而输出端口是由模块外部的东西驱动的。当从模块内部查看时,输入端口是驱动程序或源,而输出端口是接收器。
下面的图表说明了电路的每个部分是如何对应Verilog代码的每个位的。模块和端口声明创建了电路的黑色部分。您的任务是通过添加一个assign语句来连接到out来创建连接(绿色部分)。
在这里插入图片描述
英文;分号不要忘记写
在这里插入图片描述
当您有多个赋值语句时,它们在代码中出现的顺序并不重要。与编程语言不同,赋值语句(“连续赋值”)描述的是事物之间的连接,而不是将一个值从一个事物复制到另一个事物的动作。
在这里插入图片描述
assign {w,x,y,z} = {a,b,b,c};
在这里插入图片描述
三种赋值语句:
assign:assign out=a&b
用实例元件,如例子中所示
用always语句

或非门

Out = !(a|b);
nor u1(out,a,b);
在这里插入图片描述
and与门的符号(上图)

在这里插入图片描述
nor或非门的符号(上图)

同或门XNOR

即a和b相同为真,不同为假
在这里插入图片描述
assign out = !(a^b);
assign out = (a^~b);
assign out = (!a^b);

Declaring wires

wire not_in; // Declare a wire named “not_in”
and or nor 只能用在实例元件中,作为开头

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值