Verilog 考试题目整理
verilog考卷

1. 下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别?( A )(A) 开关级 (B)门电路级 (C) 体系结构级 (D) 寄存器传输级2.在verilog中,下列语句哪个不是分支语句?( D )(A) if-else (B) case (C) casez (D) repeat3.下列哪些Verilog的基本门级元件是多输出( D )(A) nand (B) nor (C) and (D) not4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为( B )(A) supply (B) strong (C) pull (D) weak5.元件实例语句“notif1 #(1:3:4,2:3:4,1:2:4) U1(out,in,ctrl);”中截至延迟的典型值为( B )(A) 1(B) 2 (C) 3 (D) 46.已知“a =1b’1; b=3b'001;”那么{a,b}=( C )(A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b'1017.根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC )(A) 模块级 (B)门级 (C) 开关级 (D) 寄存器级8.在verilog语言中,a=4b'1011,那么 &a=(D )(A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'09.在verilog语言中整型数据与( C )位寄存器数据在实际意义上是相同的。
(A) 8 (B) 16 (C) 32 (D)64 1.Verilog HDL语言进行电路设计方法有哪几种(8分)1、自上而下的设计方法(Top-Down)2、自下而上的设计方法(Bottom-Up)3、综合设计的方法2.specparam语句和parameter语句在参数说明方面不同之处是什么(8分)。
(完整word版)verilog考试题

西安电子科技大学考试时间分钟1.考试形式:闭(开)卷;2。
本试卷共四大题,满分100分。
班级学号姓名任课教师一、选择题(每题2分,共18分)1。
下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别?( A ) (A)开关级(B)门电路级(C)体系结构级(D)寄存器传输级2。
在verilog中,下列语句哪个不是分支语句?( D )(A)if—else (B)case (C)casez (D)repeat3.下列哪些Verilog的基本门级元件是多输出( D )(A) nand (B)nor (C)and (D)not4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为( B )(A) supply (B) strong (C) pull (D) weak5。
元件实例语句“notif1 #(1:3:4,2:3:4,1:2:4)U1(out,in,ctrl);"中截至延迟的典型值为( B )(A)1 (B) 2 (C)3 (D) 46.已知“a =1b'1;b=3b'001;"那么{a,b}=( C )(A)4b’0011 (B) 3b'001 (C) 4b'1001 (D)3b'1017。
根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC )(A)模块级(B)门级(C)开关级(D) 寄存器级8.在verilog语言中,a=4b'1011,那么&a=(D )(A) 4b'1011 (B) 4b'1111 (C) 1b’1 (D)1b'09.在verilog语言中整型数据与( C )位寄存器数据在实际意义上是相同的。
(A) 8 (B) 16 (C)32 (D)64二、简答题(2题,共16分)1.Verilog HDL语言进行电路设计方法有哪几种(8分)1、自上而下的设计方法(Top-Down)2、自下而上的设计方法(Bottom-Up)3、综合设计的方法2.specparam语句和parameter语句在参数说明方面不同之处是什么(8分)。
Verilog复习题

Verilog复习题一、填空题1. 用EDA技术进行电子系统设计的目标是最终完成________的设计与实现。
2. 可编程器件分为 ________和_________。
3. 随着EDA技术的不断完善与成熟,__________的设计方法更多的被应用于Verilog HDL 设计当中。
4. 目前国际上较大的PLD器件制造公司有________和_________公司。
5. 完整的条件语句将产生_______电路,不完整的条件语句将产生________电路。
6. 阻塞性赋值符号为_________ ,非阻塞性赋值符号为___________ 。
7.有限状态机分为________和_________两种类型。
8、EDA缩写的含义为_______9.状态机常用状态编码有________、_________、___________和____________。
10.V erilog HDL中任务可以调用_______和________。
11.系统函数和任务函数的首字符标志为________,预编译指令首字符标志为________。
12.可编程逻辑器件的优化过程主要是对__________和_______的处理过程。
13、大型数字逻辑电路设计采用的IP核有________、________和_________。
二、选择题1、已知“a =1b’1; b=3b'001;”那么{a,b}=()(A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b'1012、在verilog中,下列语句哪个不是分支语句?()(A) if-else (B) case (C) casez (D) repeat3、Verilog HDL语言进行电路设计常采用的方法是( )①自上而下的设计方法(Top-Down)②自下而上的设计方法(Bottom-Up)③综合设计的方法4、在verilog语言中,a=4b'1011,那么 ^a=()(A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'05、在verilog语言中整型数据与()位寄存器数据在实际意义上是相同的。
verilog复习卷

end
else
dout=din;//若符号位不为1,即为0,正数,补码为其本身
end
endmodule六、编程( Nhomakorabea4分)编程实现一个并行加载串行输出的程序,输入是一个8位的二进制数。
module test12 (clk, en, d_in, s_out);
input clk;
input en;
input[9:0] d_in;
一、填空题(共10分,每空2分)
1.已知x=4’b1001,y=4’b0110,则x的4位补码为,而y的4位的补码为。
2.在case语句中至少要有一条语句。
3.两个进程之间是语句。而在Always中的语句则是语句。
二、简答题(共20分,每小题5分)
1.进程语句的启动条件是怎样?
2.为什么在Verilog语言中,其综合只支持次数确定的循环,而不支持次数不确定的循环?
3.为什么在Verilog语言中,其综合只支持次数确定的循环,而不支持次数不确定的循环?
答:这是因为,在Verilog语言中,它是为电路设计而设计的一门语言,它如高级语言不同,若循环的次数不确定,则会带来不确定的延迟,而这在电路中是不允许存在的,故综合只支持次数确定的循环,即对于一个具体的芯片,其延迟是一个定值。
4'b0111: data<= 8'b11100000;
4'b1000: data<= 8'b11111110;
4'b1001: data<= 8'b11110110;
VERILOG 试题样题

VERILOG 试题样题1.程序注释题 (填空题)例题1module mux21(ina,inb,sel,out); 1)input ina,inb; 2)input sel;output out; 3)reg out; 4)assign out= sel? ina , inb; 5) endmodule6)程序的功能是:例题2module count4(out,reset,clk); 1)input reset,clk; 2)output reg[3:0] out; 3)always @(posedge clk) 4)beginif(reset) out<=0; 5)else out<=out+1; 6)endendmodule7)程序的功能是:2.程序修改题例题3 下面程序是Verilog语言设计的D 触发器,请修改程序将其变为同步清零reset(低电平有效),同步置位set(低电平有效)的D触发器,将完整的程序写在答题纸上,修改后的模块名字为dff_syn。
module dff(q,d,clk);input d,clk; output reg q;always @(posedge clk)beginq<=d;endendmodule3.编程题 (根据电路图设计)例题4 设计一个4位二进制加法器,模块名字为add4_bin例题5 设计一个程序,实现以下数字电路的功能答案1.程序注释题 (填空题)例题1module mux21(ina,inb,sel,out); 1) 定义模块名input ina,inb; 2) 定义ina, inb为输入端口input sel;output out; 3) 定义out为输出端口reg out; 4) 定义out 为 reg型assign out= sel? ina , inb; 5)根据sel的值,选择输出ina 或inb endmodule6)程序的功能是: 2选一的多路选择器例题2module count4(out,reset,clk); 1) 定义模块名input reset,clk; 2) 定义reset, clk为输入端口output reg[3:0] out; 3) 定义out为4位宽的reg类型输出端口always @(posedge clk) 4) clk 上升沿有效beginif(reset) out<=0; 5) 同步复位else out<=out+1; 6) 输出的数加1endendmodule7)程序的功能是: 带同步复位的4位二进制加法计数器2.程序修改题例题3module dff_syn(q,d,clk,set,reset);input d,clk,set,reset; output reg q;always @(posedge clk)beginif(~reset)q<=1'b0;//同步清0,低电平有效else if(~set)q<=1'b1;//同步置1,低电平有效elseq<=d;endendmodule3.编程题 (根据电路图设计)例题4 设计一个4位二进制加法器,模块名字为add4_bin module add4_bin(cout,sum,ina,inb,cin);input cin; input[3:0] ina,inb;output[3:0] sum; output cout;assign {cout,sum}=ina+inb+cin;endmodule例题5 设计一个程序,实现以下数字电路的功能module half_add1(a, b, sum, cout);input a, b;output sum, cout;and (cout, a, b);xor (sum, a, b);endmodule或者module half_add2(a, b, sum, cout);input a, b;output sum, cout;assign sum = a ^ b;assign cout = a & b; endmodule或者module half_add2(a, b, sum, cout);input a, b;output sum, cout;assign {cout, sum} = a + b; endmodule。
Verilog习题

Verilog习题一.简答题1.电子电路CAD的基本含义是什么?2.利用Protel99进行原理图设计的基本步骤有那些?3.归纳总结,Protel99中,画线、画图工具有什么区别?4.两个节点通过哪些方法可以实现电气连接?5.网单文件中包含哪些内容?6.在Protel99的PCB中,有那些主要板层,作用分别是什么?7.PCB元件布局时应遵守那些原则?8.采用CPLD/FPGA设计复杂数字逻辑的一般流程是什么?9.论述构成数字系统的基本组成部分有哪些,作用如何?a)数字系统是指能进行数字信号的处理、存储、传输,完成某一特定功能的数字电路和软件系统的总和。
如计算机。
b)数字系统硬件主要由各种不同功能的组合逻辑(编码/译码等)和时序逻辑电路(计数器/寄存器/状态计)组合而成。
c)系统硬件单元有:(1)CPU:主控单元(2)RAM:内部数据存储、交换(3)输入输出设备,通信接口:输入指令、输出结果d)软件有:(1)操作系统:完整软件系统(2)嵌入式系统:简化的操作系统(3)监控程序:实现简单功能的循环程序10.论述数字逻辑EDA设计的一般流程是什么?系统任务——> 模块划分——> 图形或HDL行为语言描述——> 逻辑前仿真——> 综合——> 综合后仿真——> 布局布线——> 后仿真——> 下装ASIC11.举例说明流水线工作原理a)所谓流水线就是指把大规模、层次多,延时大的组合逻辑电路分为几个级,在每一级接入寄存器,暂存中间数据,从而增加数据处理能力得方法。
b)K级流水线就是在功能逻辑输入输出间恰好有K组寄存器,上一级输出是下一个输入c)流水线增加了数据吞吐量,带来了首位数据时间延迟,增加了KT.15.综述:Pspice可以进行那些分析,其作用如何?16.综述:pspice的信号源有那些类型,语法如何描述?17.FPGA内部逻辑单元的基本组成是什么?18.说出三个以上世界知名EDA公司的名称和主要产品。
verilog语言期末试题及答案

verilog语言期末试题及答案一、填空题1. Verilog语言是一种_硬件描述语言_。
2. Verilog语言适用于_数字电路设计_和_验证_。
3. Verilog的编译和仿真工具主要有_Synopsys Design Compiler_和_ModelSim_。
4. Verilog中的组合逻辑使用_always_关键字实现。
5. 时钟的上升沿触发使用_posedge_关键字实现。
6. Verilog的层次化模块定义使用_和号_(&)和_连接符_实现。
7. Verilog语言的数据类型包括_bit_、_reg_、_wire_和_logic_。
8. Verilog中用来控制模拟时间的关键字是_#_。
9. 顺序逻辑使用的关键字是_always_ff_。
10. Verilog的条件语句包括_if_、_else_和_case_。
二、选择题1. Verilog中的关键字always @(posedge clk)表示:A. 在时钟上升沿触发B. 在时钟下降沿触发C. 在时钟上升沿或下降沿触发D. 无关键字触发答案:A2. Verilog中用来定义模块的关键字是:A. alwaysB. moduleC. caseD. reg答案:B3. 下列哪个关键字用于在连续赋值中实现多路选择:A. ifB. elseC. caseD. always_ff答案:C4. Verilog中用来延时模拟时间的关键字是:A. #B. @C. $D. %答案:A5. Verilog中的数据类型wire和reg的区别在于:A. wire用于内部信号连接,reg用于存储数据B. wire只能传输数字信号,reg可以传输任意信号C. wire用于组合逻辑,reg用于时序逻辑D. wire在连续赋值中使用,reg在时序赋值中使用答案:A三、编程题请使用Verilog语言描述一个4位全加器模块,并画出其电路原理图。
```verilogmodule full_adder(input a, b, cin, output sum, cout);assign sum = a ^ b ^ cin;assign cout = (a & b) | (a & cin) | (b & cin);endmodule```四、简答题1. 请简述Verilog语言的优点及应用领域。
verilog期末考试试题

verilog期末考试试题一、选择题(每题2分,共20分)1. 在Verilog中,以下哪个关键字用于定义一个模块?A. moduleB. endmoduleC. inputD. output2. 以下哪个操作符用于Verilog中的按位与操作?A. &B. &&C. |D. ||3. Verilog中,一个时钟信号通常与哪个信号属性关联?A. regB. wireC. clkD. none of the above4. 在Verilog中,非阻塞赋值使用哪个操作符?A. =B. <=C. <=D. <=>5. 以下哪个是Verilog中定义参数的正确语法?A. parameter int a;B. parameter a = 10;C. parameter int a = 10;D. parameter a = 10 int;6. 以下哪个是Verilog中定义信号的初始值的正确方式?A. reg [7:0] data = 8'b1;B. reg [7:0] data = 8'b00000001;C. reg [7:0] data = 8'b10101010;D. reg [7:0] data = 8'b1;7. 在Verilog中,一个信号的宽度可以是任意的吗?A. 是的,可以是任意宽度B. 不是的,必须在1到32位之间C. 不是的,必须在1到64位之间D. 不是的,必须在1到1024位之间8. 以下哪个是Verilog中生成时钟信号的常用方法?A. 使用always块和非阻塞赋值B. 使用initial块和阻塞赋值C. 使用initial块和非阻塞赋值D. 使用always块和阻塞赋值9. 在Verilog中,case语句的每个分支后面应该使用哪个关键字?A. endB. endcaseC. caseD. default10. 以下哪个是Verilog中定义一个4位二进制计数器的正确方式?A. reg [3:0] counter;B. reg [4:1] counter;C. reg [0:3] counter;D. reg [4:0] counter;二、简答题(每题5分,共20分)1. 解释Verilog中的阻塞赋值和非阻塞赋值的区别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Verilog 考试题目整理1、EDA设计环节过程(1)编译:EDA首先将源HDL模型转变为基本的门级网表(2)映射:EDA为基本门模型分配具体的cell(3)验证:对抽象电路模型进行测试(4)Testbench:为了进行验证,需要单独编写一段HDL代码,建立一个用于测试目的模型。
(5)仿真:EDA软件提供了一种运行Testbench的方法:即按照电路模型机制,生成需要的激励信号并观察和分析模型中的信号。
这种运行抽象模拟的方法称为仿真。
(6)综合前验证:时,Testbench加载的测试模型使是用户PTL模型,而此时验证的内容主要是测试模拟的逻辑性能,因此综合前验证又被称为功能仿真或RTL 仿真,有时也被简单地称为前仿。
(7)综合后验证:时,Testbench加载的测试模型已经是装配后的由基本门描述的模型,即网表,此时验证的内容主要是设计模型的时序性能,因此综合后验证又被称为时序仿真或门及仿真,有时也被简单的称为后防。
2、自顶向下设计与自底向上设计优缺点(1)、传统的电子设计多采用自底向上底设计方法:首先确定最底层的元件和电路模块的功能和结构,再进行组合得到较大得模块。
如此进行,向上递推直至完成整个电路。
此方法中任何一级发生问题,通常都要返工;由于元件供应、改型等得变化往往造成重新设计(2)、现代的EDA设计采用自顶向下的设计方法:从系统功能、结构至各门级连接,从抽象层次逐步具体化。
此方法从最开始逐级仿真、综合便于及早发现问题,即使设计中出现问题也不会从头返工。
缺点是需要先进的工具3、IP核分类4、可编程器件有哪几种(1)PLAProgrammable logic arrays(PLA) 是一种可编程逻辑装置,它的与阵列(AND array)和或阵列(OR array)均为可编程,输出电路为不可组态.又叫做FPLA(field-programmable logic array)(2)PALPAL(Programmable Array Logic)可编程阵列逻辑,是70年代末由MMI公司率先推出的一种低密度,一次性可编程逻辑器件,第一个具有典型实际意义的可编程逻辑器件(PLD-Programmable Logic Device)。
它采用双极型工艺制作,熔丝编程方式。
PAL在EDA中是指一种现场可编程的门阵列逻辑器件,内部电路是在PLA基础上进行改进的。
(3)GALGAL是Lattice在PAL的基础上设计出来的器件,即通用阵列逻辑器件。
GAL首次在PLD上采用了EEPROM工艺,使得其具有电可擦除重复编程的特点,彻底解决了熔丝型可编程器件的一次可编程问题。
GAL在“与—或”阵列结构上沿用了PAL的与阵列可编程、或阵列固定的结构,但对PAL的I/O结构进行了较大的改进,在GAL的输出部分增加了输出逻辑宏单元OLMC。
由于GAL是在PAL的基础上设计的,与多种PAL器件保持了兼容性,可直接替换多种PAL器件,方便应用厂商升级现有产品,因此目前仍被广泛地使用。
GAL,通用阵列逻辑,英文全称:generic array logic。
GAL器件是从PAL发现过来的,其采用了EECMOS工艺使得该器件的编程非常方便,另外由于其输出采用了逻辑宏单元结构(OLMC—Output Logic Macro Cell),使得电路的逻辑设计更加灵活。
(4)FPGA:FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
5、可编程逻辑器件发展历程70年代:出现只读存储器PROM (Programmable Read only Memory),可编程逻辑阵列器件PLA (Programmable Logic Array)70年代末:AMD推出了可编程阵列逻辑PAL (Programmable Array Logic)80年代:Lattice公司推出了通用阵列逻辑GAL ( Generic Array Logic)80年代中:Xilinx公司推出了现场可编程门阵列FPGA (Field Programmable GateArray )。
Altera公司推出了可擦除的可编程逻辑器件EPLD (Erase Programmable LogicDevice),集成度高,设计灵活,可多次反复编程90年代初:Lattice公司又推出了在系统可编程概念ISP及其在系统可编程大规模集成器件ispLSI)现以Xilinx、Altera、Lattice为主要厂商,生产的FPGA单片可达上千万门、速度可实现550MHz,采用65nm甚至更高的光刻技术。
6、verilog语言命名规则(1)系统级信号的命名。
系统级信号指复位信号,置位信号,时钟信号等需要输送到各个模块的全局信号;系统信号以字符串Sys开头。
(2)低电平有效的信号后一律加下划线和字母n。
如:SysRst_n;FifoFull_n;(3)经过锁存器锁存后的信号,后加下划线和字母r,与锁存前的信号区别。
如CpuRamRd信号,经锁存后应命名为CpuRamRd_r。
低电平有效的信号经过锁存器锁存后,其命名应在_n后加r。
如CpuRamRd_n信号,经锁存后应命名为CpuRamRd_nr多级锁存的信号,可多加r以标明。
如CpuRamRd信号,经两级触发器锁存后,应命名为CpuRamRd_rr。
(4)模块的命名。
在系统设计阶段应该为每个模块进行命名。
命名的方法是,将模块英文名称的各个单词首字母组合起来,形成3到5个字符的缩写。
若模块的英文名只有一个单词,可取该单词的前3个字母。
各模块的命名以3个字母为宜。
例如:Arithmatic Logical Unit模块,命名为ALU。
Data Memory Interface模块,命名为DMI。
Decoder模块,命名为DEC。
(5)模块之间的接口信号的命名。
所有变量命名分为两个部分,第一部分表明数据方向,其中数据发出方在前,数据接收方在后,第二部分为数据名称。
两部分之间用下划线隔离开。
第一部分全部大写,第二部分所有具有明确意义的英文名全部拼写或缩写的第一个字母大写,其余部分小写。
(6)模块内部信号:模块内部的信号由几个单词连接而成,缩写要求能基本表明本单词的含义;单词除常用的缩写方法外(如:Clock-》Clk,Write-》Wr,Read-》Rd等),一律取该单词的前几个字母(如:Frequency-》Freq,Variable-》Var 等);每个缩写单词的第一个字母大写;若遇两个大写字母相邻,中间添加一个下划线(如DivN_Cntr);7、verilog 模块设计module 有几种端口设计Input 输入端口Output 输出端口Inout 输入输出/双向端口所有的端口隐含地声明为wire类型不能将input和inout类型的端口声明为reg数据类型,这是因为reg类型的变量是用于保存数值的,而输入端口只反映与其相连的外部信号的变化,并不能保存这些信号的值。
8、verilog语言中数据类型reg/wire区别wire型数据常用来表示以assign关键字指定的组合逻辑信号。
模块的输入输出端口类型都默认为wire型。
默认初始值是z。
reg型表示的寄存器类型。
always模块内被赋值的信号,必须定义为reg型,代表触发器。
默认初始值是x。
1、wire型的变量综合出来一般是一根导线;2、reg变量在always块中有两种情况:(1)、always后的敏感表中是(a or b or c)形式的,也就是不带时钟边沿的,综合出来还是组合逻辑(2)、always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop)9、阻塞赋值与非阻塞赋值区别简单理解就是,阻塞赋值是按需执行,非阻塞赋值是并行执行。
书P19510、verilog时钟表示的特点规律always语句always语句包括的所有行为语句构成了一个always语句块。
该always语句块从仿真0时刻开始执行其中的行为语句;最后一条执行完成后,再开始执行其中的第一条语句,如此往复循环,直到整个仿真结束。
因此,always语句块常用于对数字电路中一组反复执行的活动进行建模。
比如大家熟知的时间信号发生,每半个时钟周期时钟信号翻转一次。
11、任务和函数的区别(1)函数只能与主模块共用一个仿真时间单位、而任务可以定义自己的仿真时间单位。
(2)函数不能启动任务,而任务能启动其他任务和函数(3)函数至少要有一个输入变量,而任务可以没有或有多个任何类型的变量(4)函数返回一个值,而任务不返回值12、生产FPGA的两大厂商Xilinx(赛灵思)、Altera(阿尔特拉)13、常见的硬件描述语言VHDL /System C/ Verilog/Cynlib C++/superlog14、条件语句一定要完整?条件语句完整---形成组合逻辑电路不完整条件语句—形成时序逻辑电路15、assign—wire wire--regwire型用于assign的赋值,always@块下的信号用reg型。
这里的reg并不是真正的触发器,只有敏感列表内的为上升沿或下降沿触发时才综合为触发器。
时钟代码:output [31:0] counter_out;reg [31:0] counter_out;always @ (posedge CLOCK_50) // on positive clock edge begincounter_out <= #1 counter_out + 1;// increment counter endendmodule // end of module counter跑马灯代码:第二种:数码管代码:modulemy_third1(a,b,c,d,a_1,a_2,a_3,a_4,a_5,a_6,a_7,e); inputa,b,c,d;outputa_1,a_2,a_3,a_4,a_5,a_6,a_7,e;reg a_1,a_2,a_3,a_4,a_5,a_6,a_7;integer e;always @(*)beginif(a==0&&b==0&&c==0&&d==0)begin a_1=0;a_2=0;a_3=0;a_4=0;a_5=0;a_6=0;a_7=1;e=0;endelseif(a==0&&b==0&&c==0&&d==1)begin a_1=1;a_2=0;a_3=0;a_4=1;a_5=1;a_6=1;a_7=1;e=1;endelseif(a==0&&b==0&&c==1&&d==0)begin a_1=0;a_2=0;a_3=1;a_4=0;a_5=0;a_6=1;a_7=0;e=2;endelseif(a==0&&b==0&&c==1&&d==1)begin a_1=0;a_2=0;a_3=0;a_4=0;a_5=1;a_6=1;a_7=0;e=3;endelsea_1=1;a_2=0;a_3=0;a_4=1;a_5=1;a_6=0;a_7=0;e=4;endelseif(a==0&&b==1&&c==0&&d==1)begin a_1=0;a_2=1;a_3=0;a_4=0;a_5=1;a_6=0;a_7=0;e=5;endelseif(a==0&&b==1&c==1&&d==0)begin a_1=0;a_2=1;a_3=0;a_4=0;a_5=0;a_6=0;a_7=0;e=6;endelseif(a==0&&b==1&&c==1&&d==1)begin a_1=0;a_2=0;a_3=0;a_4=1;a_5=1;a_6=1;a_7=1;e=7;endelsea_1=0;a_2=0;a_3=0;a_4=0;a_5=0;a_6=0;a_7=0;e=8;endelseif(a==1&&b==0&&c==0&&d==1)begina_1=0;a_2=0;a_3=0;a_4=0;a_5=1;a_6=0;a_7=0;e=9;endendendmodule半加器的实现:原理:半加器是由两个一位输入实现的,与全加器的区别是不带进位加,相对比较简单,其逻辑关系为:进位输出:Ci+1=Ai*Bi和输出:Si = Ai^Bi其中*为与逻辑,^为异或逻辑。