博主历经半年,总算是将HDLBITS的题目做了个七七八八,现在上传,供大家研讨。
今日首先上传第一章有关内容。
Getting_Started
Build a circuit with no inputs and one output. That output should always drive 1 (or logic high).
module top_module( output one );
// Insert your code here
assign one =1'b1;
endmodule
本题目是考察了对于模块输出的赋值,题目要求对于模块的输出one进行高电平的赋值,我们将1‘b1赋值给one,则完成题目。
本题有一些基础语法知识值得我们复习,首先是assign的使用。
用基础电路知识来分析,assign就相当于连线,将一个变量值不间断地赋值给另一个变量,也就是verilog语法中的连续赋值。关于assign的语法要求,等号左边的值,须为线网(wire)这类标量。右值则无要求,可为wire类的标量或者寄存器(reg)类型。
题目中该模块( top_module)声明了输出端口为one,在verilog的语法中,端口隐式的声明为wire类型变量,故one为线网(wire)类型的变量。
以上则推出该表达式为何能按照题意成功运行。
Output_zero
Build a circuit with no inputs and one output that outputs a constant 0.
module top_module(
output zero
);// Module body starts after semicolon
assign zero=1'b0;
endmodule
本题与上题类似,皆考察了assign的使用,本题要求对输出端口zero赋值为0,我们将1‘b0赋值给one,则完成题目。