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

网站维护有文化建设费网站原型的交互怎么做

网站维护有文化建设费,网站原型的交互怎么做,wordpress英文主题改成中文,网站关键字优化简介目录 第一章 在DE2-115上用状态机思想实现LED流水灯1.1 状态机设计思路1.2 Verilog代码实现1.3. 仿真测试代码1.4 编译代码与仿真 第二章 CPLD和FPGA芯片的主要技术区别是什么?它们各适用于什么场合?2.1 主要技术区别2.2 适用场合 第三章 HDLBits学习3.1…

目录

    • 第一章 在DE2-115上用状态机思想实现LED流水灯
      • 1.1 状态机设计思路
      • 1.2 Verilog代码实现
      • 1.3. 仿真测试代码
      • 1.4 编译代码与仿真
    • 第二章 CPLD和FPGA芯片的主要技术区别是什么?它们各适用于什么场合?
      • 2.1 主要技术区别
      • 2.2 适用场合
    • 第三章 HDLBits学习
      • 3.1四位右移寄存器
      • 3.2 半加器
      • 3.3 全加器
      • 3.4 线材
      • 3.5 与门
    • 参考资料

第一章 在DE2-115上用状态机思想实现LED流水灯

1.1 状态机设计思路

  1. 状态定义:定义多个状态,每个状态对应一个LED亮起。
  2. 状态转移:按顺序从一个状态转移到下一个状态。
  3. 计数器:用于控制每个状态的持续时间。

1.2 Verilog代码实现

  1. 环境配置
    在这里插入图片描述
  2. 代码
module led_fsm(input wire clk,          // 时钟信号input wire reset,        // 复位信号output reg [7:0] leds    // 8个LED输出
);// 定义状态
parameter STATE0 = 3'b000;
parameter STATE1 = 3'b001;
parameter STATE2 = 3'b010;
parameter STATE3 = 3'b011;
parameter STATE4 = 3'b100;
parameter STATE5 = 3'b101;
parameter STATE6 = 3'b110;
parameter STATE7 = 3'b111;reg [2:0] current_state, next_state;// 计数器,用于控制每个状态的持续时间
reg [25:0] cnt;always @(posedge clk or posedge reset) beginif (reset) begincurrent_state <= STATE0;cnt <= 0;end else beginif (cnt == 25'd10000000) begin  // 每个状态持续约1秒(假设时钟为50MHz)cnt <= 0;current_state <= next_state;end else begincnt <= cnt + 1;endend
endalways @(*) begincase (current_state)STATE0: beginleds = 8'b00000001;next_state = STATE1;endSTATE1: beginleds = 8'b00000010;next_state = STATE2;endSTATE2: beginleds = 8'b00000100;next_state = STATE3;endSTATE3: beginleds = 8'b00001000;next_state = STATE4;endSTATE4: beginleds = 8'b00010000;next_state = STATE5;endSTATE5: beginleds = 8'b00100000;next_state = STATE6;endSTATE6: beginleds = 8'b01000000;next_state = STATE7;endSTATE7: beginleds = 8'b10000000;next_state = STATE0;enddefault: beginleds = 8'b00000001;next_state = STATE1;endendcase
endendmodule

1.3. 仿真测试代码

module tb_led_fsm;// 时钟和复位信号
reg clk;
reg reset;
wire [7:0] leds;// 实例化被测试模块
led_fsm uut (.clk(clk),.reset(reset),.leds(leds)
);// 时钟生成
initial beginclk = 0;forever #10 clk = ~clk;
end// 测试过程
initial beginreset = 1;#20 reset = 0;#10000 $stop;
endendmodule

1.4 编译代码与仿真

  1. 编译led_fsm.v
    在这里插入图片描述

  2. 点击Processing–>Start–>Start test bench template writer,并在flie中添加生成的led_fsm.vt文件
    vt

  3. 修改led_fsm.vt文件内容
    把仿真代码copy到该文件内,并在第一行声明时间扫描间隔
    ts

  4. 配置仿真环境
    点击Tools–>Options–>EDA ToolsOptions选项,配置ModelSim环境,如果Modelsim版本为INTEL FPGA Edition,那么文件地址应为安装文件内........\modelsim_ase\win32aloem,如图所示。
    在这里插入图片描述

  5. 配置仿真文件,点击Assignments–>Settings
    配置

  6. 选择上面的Compile test bench点击后面Test Bench进入选择,点击New新建
    new

  7. 按照顺序先编辑名字,然后浏览刚才的.vt文件,最后点击Add添加达到如下图效果,再点击OK
    在这里插入图片描述

  8. 点击Tools–>Run Simulation Tool–>RTL Simulation开始进行仿真
    sim

仿真结果
仿真

第二章 CPLD和FPGA芯片的主要技术区别是什么?它们各适用于什么场合?

2.1 主要技术区别

  1. 结构
    CPLD:基于查找表(LUT)和可编程连线的简单结构,逻辑资源较少。
    FPGA:基于查找表(LUT)和可编程连线的复杂结构,逻辑资源丰富,支持大规模设计。
  2. 编程方式
    CPLD:通常使用一次性可编程(OTP)技术,编程后不可擦除。
    FPGA:使用SRAM配置,可多次擦写和重新编程。
  3. 速度和性能
    CPLD:延迟较低,适合高速简单逻辑。
    FPGA:延迟较高,但支持复杂的逻辑设计。
  4. 成本和功耗
    CPLD:成本较低,功耗较低。
    FPGA:成本较高,功耗较高。

2.2 适用场合

CPLD

  1. 适合简单的逻辑设计和组合逻辑。
  2. 适合需要低延迟和低功耗的场合。
  3. 适合需要一次性编程的场合。

FPGA

  1. 适合复杂的逻辑设计和大规模数字系统。
  2. 适合需要频繁更新和调试的场合。
  3. 适合需要高性能计算的场合。

第三章 HDLBits学习

通过访问HDLBits以及HDLBits中文导学网站,完成组合逻辑(combinational logic)中的各题目

3.1四位右移寄存器

  1. 题目
    在这里插入图片描述

  2. 代码实现

module top_module(input clk,input areset,  // async active-high reset to zeroinput load,input ena,input [3:0] data,output reg [3:0] q); 
// 异步复位,同步加载和移位
always @(posedge clk or posedge areset) beginif (areset) beginq <= 4'b0000; // 异步复位为0end else beginif (load) beginq <= data; // 同步加载end else if (ena) beginq <= {1'b0, q[3:1]}; // 右移一位,最高位清零end// 如果load和ena都无效,保持当前状态end
endendmodule
  1. 提交结果
    在这里插入图片描述

3.2 半加器

  1. 题目
    在这里插入图片描述
  2. 代码实现
module top_module(input a, b,output cout, sum
);assign sum = a ^ b;assign cout = a & b;
endmodule
  1. 提交结果
    在这里插入图片描述

3.3 全加器

  1. 题目
    在这里插入图片描述
  2. 代码实现
module top_module(input a, b, cin,output cout, sum
);assign sum = a ^ b ^ cin;assign cout = (a & b) | (a & cin) | (b & cin);
endmodule
  1. 提交结果
    在这里插入图片描述

3.4 线材

  1. 题目
    在这里插入图片描述
  2. 代码
module top_module(input in,output out
);assign out = in;
endmodule
  1. 提交结果
    在这里插入图片描述

3.5 与门

  1. 题目
    在这里插入图片描述
  2. 代码实现
module top_module(input a,input b,output out
);assign out = a & b;
endmodule
  1. 提交结果
    在这里插入图片描述

参考资料

Quartus使用步骤及联合Modelsim仿真教程
FPGA基础入门【2】ModelSim官方免费版安装
quartus和modelsim联合仿真详细教程


文章转载自:

http://JyIAZpqg.mpszk.cn
http://gW3iLvK1.mpszk.cn
http://Y2zhjCnw.mpszk.cn
http://hfG6AAuX.mpszk.cn
http://aP5zrpYe.mpszk.cn
http://mGvvhD0X.mpszk.cn
http://6v5dDZD1.mpszk.cn
http://IC6pmcjX.mpszk.cn
http://HpEI3oaN.mpszk.cn
http://7EKcITnd.mpszk.cn
http://nlwZpW5d.mpszk.cn
http://QSSr5fex.mpszk.cn
http://xoRNK2tl.mpszk.cn
http://9nPZeYFH.mpszk.cn
http://OX5IWVRX.mpszk.cn
http://4ZW5qFuY.mpszk.cn
http://wILT9hLn.mpszk.cn
http://2RKAN9BI.mpszk.cn
http://f9cg3xGW.mpszk.cn
http://rDSMeLVx.mpszk.cn
http://96R1Y5JF.mpszk.cn
http://71fLxpZU.mpszk.cn
http://TSzSqrTv.mpszk.cn
http://JCgHdNcT.mpszk.cn
http://ahLHXk8Q.mpszk.cn
http://RdrDGQwG.mpszk.cn
http://OcQ1pPhi.mpszk.cn
http://AZcDl5cJ.mpszk.cn
http://fqWLcFIB.mpszk.cn
http://07sEHK9S.mpszk.cn
http://www.dtcms.com/wzjs/625774.html

相关文章:

  • 宁波网站建站公司无锡电子商务网站建设公司
  • 用什么软件制作网站智慧旅游网站建设
  • 漯河住房建设局网站seo优化工具软件
  • 网页设计代码网站怎么利用互联网推广
  • 做网站推广怎么说广告词五矿瑞和上海建设有限公司网站
  • 邯郸教育网站建设广西响应式网页建设找哪家
  • 用html做简单网站上海建筑设计院排名
  • 网站建设方案编写人网站正在备案中模板
  • 衡水建设企业网站公司网站创建
  • 北京专业制作网站公司哪家好广告文案经典范例200字
  • 盐城网站开发公司电话标书制作教学
  • 大学生做网站类型南通网站快照优化公司
  • 青岛做网站企业虚拟主机WordPress建站
  • 如何做kindle电子书下载网站电子商务seo招聘
  • 网站建设学什么的网站企业快速备案流程
  • 微信嵌入网站开发哪里的郑州网站建设
  • 网站域名 设置海南的网站建设公司
  • 宣传网站制作方案wordpress出境游
  • 成都手机网站建设wordpress实现分享
  • 网站建设人员分工表高端营销网站建设
  • 网站有收录没排名海南建设厅网站资质查询
  • 网站建设域名申请wordpress win8 主题下载
  • 生活服务网站开发网站免费高清素材软件有哪些
  • 期货融网站建设微信建网站服务
  • 门户网站建立流程郑州pc网站建设
  • 哪儿有做字体设计的网站上海的网站开发公司电话
  • 宁波怎么建网站模板wordpress文章更新后
  • 网站和app可以做充值余额功能销售渠道策略
  • 宜春网站设计公司做食物网站应该考虑些什么意思
  • 网站模板编辑建设一个网站哪家好