当前位置: 首页 > news >正文

网站建设技术公司今日头条网站推广

网站建设技术公司,今日头条网站推广,遵义网站建设公司招聘,淄博做网站多少钱实验内容: 1.adder(加法器)模块的编写。 2.建立完整的工程,工程中包括自己编写的 adder 模块,adder_display 模块(已 在群文件中提供),testbench.v(仿真文件&#xff…

实验内容:

1.adder(加法器)模块的编写。
2.建立完整的工程,工程中包括自己编写的 adder 模块,adder_display 模块(已
在群文件中提供),testbench.v(仿真文件)文件(已在群文件中提供),
lcd_module.dcp(显示屏操作模块)(已在群文件提供)。
※其中,adder_display.v 文件和 testbench.v 文件中的 adder 模块实例化已被挖
去,请自行填充。
3.完成仿真,并将仿真波形图像截图。
4.生成可以下载到 FPGA 上的.bit 文件。
5.完成整个工程的结构框图(包括 adder_display 模块和 adder 模块,不包括
testbench 部分和 lcd_module 部分)(选做 加分项)

实验过程:

1)新建工程

本过程按照实验手册一路next,按实验手册进行选择:

这里写图片描述

这里写图片描述

这里写图片描述

2)添加源文件

创建adder.v文件,编写代码;

有 2 个 32 位数的输入和 1 个进位输入,产生 1 个 32 位的加法 和结果和 1 个向高位的进位。本实验提供的参考设计是直接写“+”号实现加法功能 的,这样的写法综合工具会调用内部的模块库的加法器来实现;
源码如下:

这里写图片描述

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2018/05/02 22:42:20
// Design Name: 
// Module Name: adder
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////module adder(input   [31:0]  operand1,input   [31:0]  operand2,input           cin,output  [31:0]  result,output          cout);assign  {cout,result}   = operand1 + operand2 + cin;
endmodule

3)添加展示外围模块

将实验辅助文件adder_display.v,lcd_module与testbentch.v添加到工程中;并对adder_display.v与testbentch.v的未添加模块添加,及对adder.v文件进行实例化。
这里写图片描述
adder_display.v添加部分:
这里写图片描述
源码:

//*************************************************************************
//   > 文件名: adder_display.v
//   > 描述  :加法器显示模块,调用FPGA板上的IO接口和触摸屏
//   > 作者  : LOONGSON
//   > 日期  : 2016-04-14
//*************************************************************************
module adder_display(//时钟与复位信号input clk,input resetn,    //后缀"n"代表低电平有效//拨码开关,用于选择输入数和产生cininput input_sel, //0:输入为加数1(add_operand1);1:输入为加数2(add_operand2)input sw_cin,//led灯,用于显示coutoutput led_cout,//触摸屏相关接口,不需要更改output lcd_rst,output lcd_cs,output lcd_rs,output lcd_wr,output lcd_rd,inout[15:0] lcd_data_io,output lcd_bl_ctr,inout ct_int,inout ct_sda,output ct_scl,output ct_rstn);//-----{调用加法模块}beginreg  [31:0] adder_operand1;reg  [31:0] adder_operand2;wire        adder_cin;wire [31:0] adder_result  ;wire        adder_cout;adder adder_module(//需要补充的部分.operand1(adder_operand1),.operand2(adder_operand2),.cin (adder_cin ),.result (adder_result ),.cout (adder_cout ) );assign adder_cin = sw_cin;assign led_cout  = adder_cout;
//-----{调用加法模块}end//---------------------{调用触摸屏模块}begin--------------------//
//-----{实例化触摸屏}begin
//此小节不需要更改reg         display_valid;reg  [39:0] display_name;reg  [31:0] display_value;wire [5 :0] display_number;wire        input_valid;wire [31:0] input_value;lcd_module lcd_module(.clk            (clk           ),   //10Mhz.resetn         (resetn        ),//调用触摸屏的接口.display_valid  (display_valid ),.display_name   (display_name  ),.display_value  (display_value ),.display_number (display_number),.input_valid    (input_valid   ),.input_value    (input_value   ),//lcd触摸屏相关接口,不需要更改.lcd_rst        (lcd_rst       ),.lcd_cs         (lcd_cs        ),.lcd_rs         (lcd_rs        ),.lcd_wr         (lcd_wr        ),.lcd_rd         (lcd_rd        ),.lcd_data_io    (lcd_data_io   ),.lcd_bl_ctr     (lcd_bl_ctr    ),.ct_int         (ct_int        ),.ct_sda         (ct_sda        ),.ct_scl         (ct_scl        ),.ct_rstn        (ct_rstn       )); 
//-----{实例化触摸屏}end//-----{从触摸屏获取输入}begin
//根据实际需要输入的数修改此小节,
//建议对每一个数的输入,编写单独一个always块//当input_sel为0时,表示输入数为加数1,即operand1always @(posedge clk)beginif (!resetn)beginadder_operand1 <= 32'd0;endelse if (input_valid && !input_sel)beginadder_operand1 <= input_value;endend//当input_sel为1时,表示输入数为加数2,即operand2always @(posedge clk)beginif (!resetn)beginadder_operand2 <= 32'd0;endelse if (input_valid && input_sel)beginadder_operand2 <= input_value;endend
//-----{从触摸屏获取输入}end//-----{输出到触摸屏显示}begin
//根据需要显示的数修改此小节,
//触摸屏上共有44块显示区域,可显示44组32位数据
//44块显示区域从1开始编号,编号为1~44,always @(posedge clk)begincase(display_number)6'd1 :begindisplay_valid <= 1'b1;display_name  <= "ADD_1";display_value <= adder_operand1;end6'd2 :begindisplay_valid <= 1'b1;display_name  <= "ADD_2";display_value <= adder_operand2;end6'd3 :begindisplay_valid <= 1'b1;display_name  <= "RESUL";display_value <= adder_result;enddefault :begindisplay_valid <= 1'b0;display_name  <= 40'd0;display_value <= 32'd0;endendcaseend
//-----{输出到触摸屏显示}end
//----------------------{调用触摸屏模块}end---------------------//
endmodule

testbentch.v添加部分:

这里写图片描述

源码:

`timescale 1ns / 1ps   //仿真单位时间为1ns,精度为1ps
module testbench;// Inputsreg [31:0] operand1;reg [31:0] operand2;reg cin;// Outputswire [31:0] result;wire cout;// Instantiate the Unit Under Test (UUT)adder uut (//需要补充的部分.operand1(operand1),.operand2(operand2),.cin(cin),.result(result),.cout(cout));initial begin// Initialize Inputsoperand1 = 0;operand2 = 0;cin = 0;// Wait 100 ns for global reset to finish#100;// Add stimulus hereendalways #10 operand1 = $random;  //$random为系统任务,产生一个随机的32位数always #10 operand2 = $random;  //#10 表示等待10个单位时间(10ns),即每过10ns,赋值一个随机的32位数always #10 cin = {$random} % 2; //加了拼接符,{$random}产生一个非负数,除2取余得到0或1
endmodule

4)仿真图像

这里写图片描述

这里写图片描述

5)加入约束文件,烧成bit文件,上板验证

将adder.xdc文件添加到工程中;生成可烧写的bit文件
点击“Generate Bitsteam”上板验证:烧写bit文件,在FPGA板上操作

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

http://www.lbrq.cn/news/2356471.html

相关文章:

  • 郑州腾石建站东莞疫情最新情况
  • 做网站需要哪些资料做电商需要学哪些基础
  • 梅州正规的免费建站网站如何seo推广
  • 泰州网站制作人工智能培训课程
  • 连云港北京网站建设网站seo关键词优化排名
  • html项目模板下载宁波优化网站排名软件
  • 汽车网站模版360站长工具seo
  • 郑州网站制作公免费域名申请网站
  • 手机做logo用什么网站今日新闻最新
  • 商城网站建设排名企业推广视频
  • 专业网站建设的价格360收录提交入口
  • 安陆市城乡建设局网站100条经典广告语
  • 小程序开发平台花多少钱宁波seo网站排名优化公司
  • 广州做网站最好的公司深圳百度推广联系方式
  • 香港服务器做收费网站要付税吗16种营销模型
  • 中国建设银行官网站贺岁产品北京网站制作公司
  • php网站开发结构青岛网络推广
  • 怎么在一个网站做多个页面快链友情链接平台
  • 网站制作时间代码济南百度
  • 网站主机空间引流app推广软件
  • 东莞网站建设制作服务日本疫情最新数据
  • 网站是软件吗百度账号登录入口
  • 网站的主要栏目及功能网站seo优化服务
  • 网站开发的售后 维保新乡网站推广
  • 百度云服务器做asp网站南宁seo主管
  • 代理 指定网站 host宁波网络优化seo
  • 一级a做爰片付费网站高端企业网站定制公司
  • 做英文网站软件培训机构排名
  • 邯山手机网站建设网站的优化策略方案
  • 简单学校网站模板长沙网站优化公司
  • 一个项目的完整一生 --- 一 窗口大小设置
  • Linux 驱动中 Timer / Tasklet / Workqueue 的作用与对比
  • 【代码】基于CUDA优化的RANSAC实时激光雷达点云地面分割
  • 个人笔记(linux/sort与uniq命令)
  • 网络安全初级(XSS-labs 1-8)
  • 【删库跑路】一次删除pip的所有第三方库