实验三 数字加法器的设计【Verilog】

  • 前言
  • 实验三 数字加法器的设计
    • 1.用VerilogHDL语言设计实现4位串行数字加法器和4位并行加法器,在ModelSim上仿真实现。
      • 4位串行进位的全加器
      • tb
      • 仿真结果
      • 4位并行进位的全加器
      • tb
      • 仿真结果
    • 2.生成FPGA设计文件,下载到Sword实验系统上验证电路功能。
  • Code资料
  • 最后

前言

以下内容源自Verilog实验
仅供学习交流使用

实验三 数字加法器的设计

1.用VerilogHDL语言设计实现4位串行数字加法器和4位并行加法器,在ModelSim上仿真实现。

4位串行进位的全加器

module Fbs_add(input[3:0] Ra,input[3:0] Rb,input Cin,output reg[3:0] sum,output reg cout);reg [4:0]C;integer i;always@(Ra,Rb,Cin)beginC[0]=Cin;for(i=0;i<4;i=i+1)beginsum[i]=Ra[i]^Rb[i]^C[i];C[i+1]=(Ra[i]&Rb[i])|((Ra[i]^Rb[i])&C[i]);endcout=C[4];end
endmodule

tb

module Fbf_add_tb;reg[3:0] Ra,Rb;reg Cin;wire[3:0] sum;wire cout;Fbs_add U1(.Ra(Ra),.Rb(Rb),.Cin(Cin),.sum(sum),.cout(cout));initial beginRa=4'b0000;Rb=4'b0000;Cin=0;# 10 Ra=4'b0001;Rb=4'b0001;Cin=0;# 10 Ra=4'b0011;Rb=4'b0011;Cin=0;# 10 Ra=4'b0111;Rb=4'b0111;Cin=0;# 10 Ra=4'b1111;Rb=4'b1111;Cin=0;# 10 Ra=4'b0001;Rb=4'b0001;Cin=1;# 10 Ra=4'b0011;Rb=4'b0011;Cin=1;# 10 Ra=4'b0111;Rb=4'b0111;Cin=1;# 10 Ra=4'b1111;Rb=4'b1111;Cin=1;end//always #5 c_in=c_in+1;//always #10 b=b+1;//always #160 a=a+1;endmodule

仿真结果

4位并行进位的全加器

module Fbf_add(sum_out,c_out,a,b,c_in);input[3:0] a,b;input c_in;output[3:0] sum_out;output c_out;wire[4:0] c;wire[3:0] g,p;assign c[0]=c_in;assign p=a^b;assign g=a&b;assign c[1]=g[0]|(p[0]&c[0]);assign c[2]=g[1]|(p[1]&(g[0]|(p[0]&c[0])));assign c[3]=g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))));assign c[4]=g[3]|(p[3]&(g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))))));assign sum_out=p^c[3:0];assign c_out=c[4];
endmodule

tb

module Fbf_add_tb;reg[3:0] a,b;reg c_in;wire[3:0] sum_out;wire c_out;Fbf_add U1(.sum_out(sum_out),.c_out(c_out),.a(a),.b(b),.c_in(c_in));initial begina=4'b0000;b=4'b0000;c_in=0;# 10 a=4'b0001;b=4'b0001;c_in=0;# 10 a=4'b0011;b=4'b0011;c_in=0;# 10 a=4'b0111;b=4'b0111;c_in=0;# 10 a=4'b1111;b=4'b1111;c_in=0;# 10 a=4'b0001;b=4'b0001;c_in=1;# 10 a=4'b0011;b=4'b0011;c_in=1;# 10 a=4'b0111;b=4'b0111;c_in=1;# 10 a=4'b1111;b=4'b1111;c_in=1;end//always #5 c_in=c_in+1;//always #10 b=b+1;//always #160 a=a+1;endmodule

仿真结果

2.生成FPGA设计文件,下载到Sword实验系统上验证电路功能。

设计完成I/O引脚分配,选择sw0-sw3给出第一个加数,sw4-sw7给出第二个加数,sw[15]为Ci的输入,和在led0-led3显示,进位位用led4显示。

① 4位串行进位的全加器:

module    adder(input  wire clk_100mhz,input  wire[15:0]SW,output wire led_clk,output wire led_clrn,output wire led_sout,output wire LED_PEN     );wire[31:0]Div;wire[15:0]LED_DATA;wire CK;clk_div U8(clk_100mhz,1'b0,SW[2],Div,CK);LED_P2S #(.DATA_BITS(16),.DATA_COUNT_BITS(4)) PLED (clk_100mhz,1'b0,Div[20],LED_DATA,led_clk,led_clrn,led_sout,LED_PEN);      wire[4:0] out;Fbs_add u9(SW[3:0],SW[7:4],SW[15],out[3:0],out[4]);
assign LED_DATA = ~{out[0],out[1],out[2],out[3],out[4],
1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0};
endmodule

② 4位并行进位的全加器

module adder(input  wire clk_100mhz,input  wire[15:0]SW,output wire led_clk,output wire led_clrn,output wire led_sout,output wire LED_PEN);
wire[31:0]Div;
wire[15:0]LED_DATA;
wire CK;clk_div U8(clk_100mhz,1'b0,SW[2],Div,CK);LED_P2S  #(.DATA_BITS(16),.DATA_COUNT_BITS(4)) PLED (clk_100mhz,1'b0,Div[20],LED_DATA,led_clk,led_clrn,led_sout,LED_PEN);                    wire[4:0]out;Fbf_add u9(out[3:0],out[4],SW[3:0],SW[7:4],SW[15]);
assign LED_DATA = ~{out[0],out[1],out[2],out[3],out[4],
1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0};endmodule

(4)生成FPGA文档,并下载到实验板上物理运行,检查设计结果。

Code资料

最后

这篇博客能写好的原因是:站在巨人的肩膀上

这篇博客要写好的目的是:做别人的肩膀

开源:为爱发电

学习:为我而行

实验三 数字加法器的设计【Verilog】相关推荐

  1. 西工大java实验报告给,西工大数字集成电路实验 实验课6 加法器的设计

    西工大数字集成电路实验 练习六 加法器的设计 一.使用与非门(NAND).或非门(NOR).非门(INV)等布尔逻辑器件实现下面的设计. 1.仿照下图的全加器,实现一个N位的减法器.要求仿照图1画出N ...

  2. 计算机控制pid控制实验,计算机控制实验三数字PID调节器算法的研究

    计算机控制技术实验报告 学院:********** 班级:********** 姓名:****** 学号:**********实验三 数字PID调节器算法的研究 实验项目名称:数字PID调节器算法的研 ...

  3. 软件质量保证与测试实验(实验三.逻辑覆盖测试用例设计)

    软件质量保证与测试.实验三.逻辑覆盖测试用例设计 0 目录 1 逻辑覆盖测试用例设计 1.1 逻辑覆盖测试用例设计 1.1.1 实验目的 1.1.2 实验预习 1.1.3 实验内容及要求 1.1.4 ...

  4. 自适应控制——仿真实验三 用超稳定性理论设计模型参考自适应系统

    自适应控制--仿真实验三 用超稳定性理论设计模型参考自适应系统 一.问题描述 二.问题建模 三.问题求解 参考书目 一.问题描述 设控制对象的传递函数为 W p ( s ) = k 1 T 1 2 s ...

  5. EDA实验二 数字秒表的设计

    一.实验目的 1.学习Quartus Ⅱ/ISE Design Suite软件的基本使用方法. 2.熟悉GW48系列或其他EDA实验开发系统的基本使用方法. 3.学习VHDL基本逻辑电路的综合设计应用 ...

  6. 数字电子钟设计制作——数字逻辑课程设计 Verilog HDL CPLD

    目的: 1.进一步掌握数字电子技术的理论知识,培养工程设计能力和综合分析问题.解决问题的能力: 2.基本掌握常用电子电路的一般设计方法,提高电子电路的设计和实验能力: 3.掌握复杂可编程逻辑器件CPL ...

  7. 实验三 面向对象分析与设计

    文章目录 一.实验目的 二.实验内容 实例1:在线选课系统 实例2:试卷自动生成系统 实例3:人事信息管理系统 三.实验步骤 四.实验内容 1.问题陈述 2.用例图(Use Case View)的建模 ...

  8. 实验三 lr分析器的设计与实现_实验室规划设计趋势之一灵活性|无风管通风柜的灵活性是如何实现的?...

    点击上方蓝字关注 "法国依拉勃" "成功的空间是灵活的", 可以响应当前需求并能够适应未来需求的空间. 科学是不断发展和快速变化的领域, 实验室是需要大量财务投 ...

  9. 实验三 lr分析器的设计与实现_三电平ZVS半桥的控制模型与仿真 基于PSPICE

    前言: 因为最近有研究一些三电平的东西,所以找出了15年写的TL移相桥的文章,也算是旧文新发.必须要说的,5年前水平有限哈(但是蛮认真的),如果有错误请见谅. 正文:3650字 22图  预计阅读时间 ...

  10. 软件技术实习项目:实验三、迷宫游戏设计

    目录 1.系统简介 1.1设计背景 1.2开发工具及环境 2.系统分析与设计 2.1设计目的 2.2功能需求 2.3系统功能代码设计 2.3.1算法说明 3.系统调试 3.1编写源程序界面 4.设计总 ...

最新文章

  1. pip install 安装报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position XX的解决办法...
  2. 深度解读 MongoDB 最全面的增强版本 4.4 新特性
  3. ldap+ldap-account-manager+svn+apache+php做账号管理
  4. JavaScript - 初识
  5. pip install ipython出错_Python -- 关于pip安装Ipython
  6. unity序列帧动画的粒子特效
  7. 3dmax卸载工具_终极解决方案之 Autodesk系列软件3dmax、maya、cad 安装失败清理删除错误注册表重装...
  8. cmd命令查询电脑序列号_查看电脑序列号_查看电脑序列号命令
  9. 【程序设计入门-C语言】翁凯——初学者视角1
  10. 数据分析师八大能力之八:总结汇报的能力
  11. 难译 | windbg 乐趣之道(下)
  12. 微信去除 防欺诈或盗号请不要输入qq密码 的方法
  13. 你还在靠“喂喂喂”来测语音通话质量吗,看完这篇文章你就能掌握正确姿势。
  14. Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测
  15. 2022软件测试自学全套教程-基于python自动化软件测试-2022新版软件测试中级程序员学习路线
  16. 【设计模式学习】工厂方法模式
  17. 红旗7linux安装教程,红旗Linux7.0硬盘安装简明教程
  18. 布隆过滤器(BloomFilter)
  19. 怎样修改游戏服务器里的数据库,修改游戏服务器中的数据库
  20. oracle 紧急情况检查应急预案 doc,专项检查应急预案.doc

热门文章

  1. django--安装
  2. call cs iub wireshark analysis
  3. iOS菜鸟笔记4:一个简单的TableView
  4. 护照、身份证识别阅读器
  5. 7-1 求奇数和 (15 分)本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。输出格式:
  6. 中国余数定理c语言pta,密码学基础——辗转相除法,费马小定理,欧拉定理,裴蜀定理,中国剩余定理...
  7. 调查计算机游戏的目的有哪些,幼儿成长手册我参与的调查_计算机游戏对幼儿成长影响的调查分析...
  8. 投影仪为何要测评?原因就是,不当大冤种
  9. DNA非编码区突变,DNA外显子突变,DNA内含子突变的区别,什么是DNA突变,什么是基因突变
  10. illegal multibyte sequence