基于FPGA的ALU计算器verilog实现
创始人
2024-03-01 20:05:12

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》

目录

一、理论基础

二、核心程序

三、测试结果


一、理论基础

       Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。

       Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。
       Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。
       Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。

利用verilog语言设计微处理器的算术逻辑电路,对电路进行合理规划和尽可能的优化。

(1) 能够完成16位有符号数的算术逻辑运算。

(2)设计独立矩阵键盘和功能键,辅助完成功能验证。

(3) 采用适当的形式显示结果。

二、核心程序

module keys(s0,//1s1,//2s2,//3s3,//+s4,//4s5,//5s6,//6s7,//-s8,//7s9,//8s10,//9s11,//*s12,//0s13,//=s14,//SIGNs15,///num,fadd,fsub,fmult,fdiv,fsig,fequ             );input s0;
input s1;
input s2;
input s3;input s4;
input s5;
input s6;
input s7;input s8;
input s9;
input s10;
input s11;input s12;
input s13;
input s14;
input s15;output[3:0]num;
output     fadd;
output     fsub;
output     fmult;
output     fdiv;
output     fsig;
output     fequ;reg[3:0]num  =4'b0000;
reg     fadd =1'b0;
reg     fsub =1'b0;
reg     fmult=1'b0;
reg     fdiv =1'b0;
reg     fsig =1'b0;
reg     fequ =1'b0;wire[15:0] control;assign control={s15,s14,s13,s12,s11,s10,s9,s8,s7,s6,s5,s4,s3,s2,s1,s0};always @(s0 or s1 or s2 or s3  or s4  or s5  or s6  or s7  or s8  or s9  or s10  or s11  or s12 or s13  or s14  or s15)
begincase(control)16'b0000_0000_0000_0001:beginnum  =4'd1;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end16'b0000_0000_0000_0010:beginnum  =4'd2;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end                             16'b0000_0000_0000_0100:beginnum  =4'd3;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end                               16'b0000_0000_0000_1000:beginnum  =4'd0;fadd =1'b1;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end                             16'b0000_0000_0001_0000:beginnum  =4'd4;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end16'b0000_0000_0010_0000:beginnum  =4'd5;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end                             16'b0000_0000_0100_0000:beginnum  =4'd6;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end                               16'b0000_0000_1000_0000:beginnum  =4'd0;fadd =1'b0;fsub =1'b1;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end16'b0000_0001_0000_0000:beginnum  =4'd7;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end16'b0000_0010_0000_0000:beginnum  =4'd8;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end                             16'b0000_0100_0000_0000:beginnum  =4'd9;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end                               16'b0000_1000_0000_0000:beginnum  =4'd0;fadd =1'b0;fsub =1'b0;fmult=1'b1;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end 16'b0001_0000_0000_0000:beginnum  =4'd0;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end16'b0010_0000_0000_0000:beginnum  =4'd0;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b1; end                             16'b0100_0000_0000_0000:beginnum  =4'd0;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b1;fequ =1'b0; end                               16'b1000_0000_0000_0000:beginnum  =4'd0;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b1;fsig =1'b0;fequ =1'b0; end                             default:beginnum  =4'd0;fadd =1'b0;fsub =1'b0;fmult=1'b0;fdiv =1'b0;fsig =1'b0;fequ =1'b0; end    endcase                               
endendmodule

三、测试结果

加法器的仿真:

其效果如下所示:

减法器的仿真:

乘法器的仿真:

除法器的仿真:

以上是四个运算器的设计,下面要将其整合,得到ALU控制器。

我们需要设计一个输入选择器用来识别我们输入的指令。

这个就是ALU控制器的核心模块,下面要对外部接口进行设计。

键盘我们在本系统设计的布局如下所示:

1

2

3

+

4

5

6

-

7

8

9

*

0

=

Sign

/

这个是典型的矩阵键盘。

0:1

1:2

2:3

3:+

4:4

5:5

6:6

7:-

8:7

9:8

10:9

11:*

12:0

13:=

14:sign

15:/

键盘的主要识别采用状态机来实现。

状态1:输入第一个数字

状态2:输入操作符号

状态3:输入第二个数字

状态4:等于

A02-39

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...