Verilog编写的计算器。

这篇博客介绍了作者使用Verilog语言编写计算器的过程,通过检测输入信号来确定计算操作,并详细阐述了程序设计思路,包括如何处理输入数字、计算符及运算过程。尽管程序简单,但涵盖了数字输入、计算符识别和计算结果输出的基本逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ContractedBlock.gif ExpandedBlockStart.gif 计算器
 
      
1 module calculator(
2 num,
3 num_decp,
4 num_dec,
5 num_sig,
6 cal,
7 enter,
8 result_int,
9 result_dec,
10 result_sig,
11 result_decp,
12 clk,
13 rst
14 );
15
16   input clk;
17 input rst;
18 input [ 9 : 0 ] num;
19 input num_decp;
20 input num_sig;
21 input [ 9 : 0 ] num_dec;
22 input [ 3 : 0 ] cal;
23 input enter;
24 output [ 19 : 0 ] result_int;
25 output [ 9 : 0 ] result_dec;
26 output result_sig;
27 output result_decp;
28
29 reg [ 9 : 0 ] num1;
30 reg num1_decp;
31 reg num1_sig;
32 reg [ 9 : 0 ] num1_dec;
33 reg [ 9 : 0 ] num2;
34 reg num2_decp;
35 reg num2_sig;
36 reg [ 9 : 0 ] num2_dec;
37 reg [ 9 : 0 ] num1cal;
38 reg num1cal_decp;
39 reg num1cal_sig;
40 reg [ 9 : 0 ] num1cal_dec;
41 reg [ 9 : 0 ] num2cal;
42 reg num2cal_decp;
43 reg num2cal_sig;
44 reg [ 9 : 0 ] num2cal_dec;
45 reg [ 3 : 0 ] cal_tmp;
46 reg [ 19 : 0 ] result_int;
47 reg [ 9 : 0 ] result_dec;
48 reg result_sig;
49 reg result_decp;
50 reg [ 3 : 0 ] cal_st;
51
52 always @( posedge clk or negedge rst)
53 begin
54 if ( ~ rst)
55 begin
56 cal_tmp <= 4 ' b0000;
57 num1 <= 0 ;
58 num2 <= 0 ;
59 num1_decp <= 0 ;
60 num2_decp <= 0 ;
61 num1_dec <= 0 ;
62 num2_dec <= 0 ;
63 num1_sig <= 0 ;
64 num2_sig <= 0 ;
65 num1cal <= 0 ;
66 num2cal <= 0 ;
67 num1cal_decp <= 0 ;
68 num2cal_decp <= 0 ;
69 num1cal_dec <= 0 ;
70 num2cal_dec <= 0 ;
71 num1cal_sig <= 0 ;
72 num2cal_sig <= 0 ;
73 result_int <= 0 ;
74 result_dec <= 0 ;
75 result_decp <= 0 ;
76 result_sig <= 0 ;
77 cal_st <= 0 ;
78
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值