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

vue.js网站建设宿迁seo

vue.js网站建设,宿迁seo,一级域名免费申请,个人能为公司网站备案吗一、基础入门 1、整体理解 简单来说#xff0c;FPGA 就是“可反复编程的逻辑器件”。 ASIC 和 FPGA 就如同印刷品和白纸 ARM 虽然有很多外设#xff0c;DSP 虽然具备强大的信号运算能力#xff0c;但是#xff0c;ARM 能做的#xff0c;DSP 能做的#xff0c;FPGA 一定…一、基础入门 1、整体理解 简单来说FPGA 就是“可反复编程的逻辑器件”。 ASIC 和 FPGA 就如同印刷品和白纸 ARM 虽然有很多外设DSP 虽然具备强大的信号运算能力但是ARM 能做的DSP 能做的FPGA 一定也都能做而 FPGA 可以做的ARM 不一定行DSP 也不一定行。 FPGA 固然强大它高高在上的成本、功耗和开发复杂性还是会让很多潜在的目标客户望而却步。 2、学习方向 “熟练”不仅要初步了解 FPGA 是什么、能做什么等基本的理论更重要的是要学会 HDL语言 Verilog 或 VHDL 能够使用 EDA 工具完成 FPGA 的代码设计、 仿真验证、 时序设计这一步相对较难一些往往需要结合实际应用所以往往也可以属于下一阶段、综合和映射能够在开发板上下载并跑例程这可以说是完成了入门阶段。 “精通”如何用合适的 HDL 语法风格设计出最优化的电路对 EDA 工具的使用也不是仅仅会了就好而应该让 EDA 工具的不同设置功能服务于具体的设计优化同时也应该掌握不同的板级调试手段 “专业”参与一个新项目开发一款新产品。 二、逻辑设计 1、简单晶体管实现基本逻辑门电路 2、在实际工程实践中 FPGA 必须是可编程的Programmable意味着我们至少必须要设计一个 2 输入、1输出的可编程的电路才能够名副其实。 前面的晶体管结构的逻辑门电路中需要 6 个晶体管实现与门和非门电路。但是用 LUT 来实现同样只是 4 个简单的地址和数据结构就能实现。 以 Xilinx Artix7 系列 FPGA 器件为例它使用的是 6 输入 LUT 结构。这 6 个独立的输入称为 A1~A6可以配置为单输出O6模式和双输出O5 和 O6模式。如图 2.29 所示6 输入 1 输出的 LUT 内部对应着 1 个 64 个地址的存储单元。 如图 2.30 所示5 输入 2 输出的 LUT 内部对应着 2 个 32 个地址的存储单元输出 O5 和 O6 都有其对应的独立的 32 个地址单元。它的应用场景是一组最多 5 输入同时对应 2 个输出的情况。 3、可配置逻辑块 一颗 FPGA 内部通常都会有丰富的可配置逻辑块Configurable Logic Block简称 CLB根据不同的器件规模CLB 的数量从数千到数十万不等。如图 2.31 所示呈矩阵排布的 CLB 就构成了最基本的 FPGA 逻辑资源的架构。 从微观角度看如图 2.32 所示CLB 内部主要由 2 个更小的单位 Slice 所组成每个 Slice都有独立的高速进位链以及独立的布线通道连接到矩阵开关通过矩阵开关可以实现 Slice与 FPGA 大布线池之间的灵活编程 所有的 slice 的这些功能块都可以用于支持逻辑、运算或 ROM 功能此时我们称之为 SLICEL而某些 slice 则可以支持最大 256 位数据存储的分布式 RAM 或最大 32 个 8 位宽的移位寄存器此时我们称之为 SLICEM。这种逻辑功能和存储器功能之间的转变其实很好理解由于 slice 内部的 4 个 LUT 本身就是一种存储器实现的结构所以它也就理所当然的可以被轻易的设计成 ROM、RAM 或移位寄存器功能了。 线Wires用于连接各个不同的模块单元FPGA 内部通常有非常丰富的预连线资源这些连线也都是根据实际应用设计“可编程”的 输入/输出端口Input/Output padsFPGA 器件与外部芯片互联的引脚。 4、Xilinx 的 Vivado 软件上的编译步骤 首先编写“HDL代码”来描述自己需要实现的电路功能 然后在 EDA 工具中对其进行“RTL 综合”和“综合” “RTL 综合”将 HDL 代码转换为逻辑电路就如前面提到过的与、或、非等一大堆门电路的各种组合 “综合”这一步将经过“RTL 综合”后的门电路映射为 FPGA 器件的物理结构 “实现”这一步将对 FPGA 器件进行最终的布局布线 最后这些结果将会被转换为可以最终运行在 FPGA 器件上的二级制烧录文件。 三、Verilog语法 1、基础 1、模块声明类语法module…endmodule 2、端口声明input, output, inoutinout 的用法比较特殊需要注意 3、参数定义parameter 4、信号类型wire,reg 等 如图 3.1 所示在这个简单的电路中分别定义两个寄存器reg锁存当前的输入 din。 每个时钟 clk 上升沿到来时reg 都会锁存到最新的输入数据而 wire 就是这两个 reg 之间直接的连线。作为 input 或 inout 的信号端口只能是 wire 型而 output 则可以是 wire 也可以是 reg。 需要特别说明的是虽然在代码中我们可以定义信号为 wire 或 reg 类型但是实际的电路实现是否和我们预先的一致还要看综合工具的表现。例如 reg 定义的信号通常会被综合为一个寄存器register但这有一个前提就是这个 reg 信号必须是在某个由特定信号边沿敏感触发的 always 语句中被赋值。 // 定义一个 wire 信号 wire wire 变量名; // 给一个定义的 wire 信号直接连接赋值 // 该定义等同于分别定义一个 wire 信号和使用 assign 语句进行赋值 wire wire 变量名 常量或变量赋值; // 定义一个多 bit 的 wire 信号 wire [最高位:最低位] wire 变量名; // 定义一个 reg 信号 reg reg 变量名; // 定义一个赋初值的 reg 信号 reg reg 变量名 初始值; // 定义一个多 bit 的 reg 信号 reg [最高位:最低位] reg 变量名; // 定义一个赋初值的多 bit 的 reg 信号 reg [最高位:最低位] reg 变量名 初始值; // 定义一个二维的多 bit 的 reg 信号 reg [最高位:最低位] reg 变量名 [最高位:最低位];5、多语句定义begin…end 6、比较判断if…else, case…default…endcase 7、循环语句for 8、任务定义task…endtask Task 更像是 C 语言中的子函数task 中可以有 input、output 和 inout 端口作为出入 口参数它可以用于实现一个时序控制。task 没有返回值因此不可以用在表达式中。 task task 命名; // 可选申明部分如本地变量申明 begin // 具体逻辑 end endtask9、连续赋值assign,问号表达式 10、always 模块敏感表可以为电平、沿信号 posedge/negedge通常和连用。 11、运算操作符各种逻辑操作符、移位操作符、算术操作符大多是可综合的。 // 加 - // 减 ! // 逻辑非 ~ // 取反// 与11 ~ // 与非 | // 或 ~| // 或非 ^ // 异或 ^~ // 同或 ~^ // 同或 * // 乘是否可综合看综合工具 / // 除是否可综合看综合工具 % // 取模// 逻辑左移// 逻辑右移// 小于// 小等于// 大于// 大等于// 逻辑相等 ! // 逻辑不等于// 逻辑与 || // 逻辑或12、赋值符号 和 13、Verilog 关键词 always endmodule medium reg tranif0 and end primitive module release tranif1 assign endspecify nand repeat tri attribute endtable negedge rnmos tri0 begin endtask nmos rpmos tri1 buf event nor rtran triand bufif0 for not rtranif0 trior bufif1 force notif0 rtranif1 trireg case forever notif1 scalared unsigned casex fork or signed vectored casez function output small wait cmos highz0 parameter specify wand deassign highz1 pmos specparam weak0 default if posedge strength weak1 defparam ifnone primitive strong0 while disable initial pull0 strong1 wire edge inout pull1 supply0 wor else input pulldown supply1 xnor end integer pullup table xor endattribute join remos task endcase large real time endfunction macromodule realtime tran VHDL 关键词 abs downto library postponed subtype access else linkage procedure then after elsif literal process to alias end loop pure transport all entity map range type and exit mod record unaffected architecture file nand register units array for new reject until assert function next rem use attribute generate nor report variable begin generic not return wait block group null rol when body guarded of ror while buffer if on select with bus impure open severity xnor case in or shared xor component inertial others signal configuration inout out sla constant is package sra disconnect label port srl 对于低电平有效的信号或端口通常加后缀“_n”表示。 2、例寄存器电路的Verilog设计方式 ① 简单的寄存器输入输出的模型如图 3.2 所示。每个时钟信号 clk 的有效沿通常是上 升沿输入端数据 din 将被锁存到输出端 dout。 // Verilog 例程 module dff(clk, din, dout); input clk; input din; output dout; reg dout; always (posedge clk) begin dout din; end endmodule② 带异步复位的寄存器输入输出的模型如图 3.3 所示。每个时钟信号 clk 的有效沿通常是上升沿输入端数据 din 将被锁存到输出端 dout而异步复位信号 clr 的下降沿低电平有效复位将强制给输出数据 dout 赋值为 0不论此时的输入数据 din 取值此输出状态将一直保持到 clr 拉高后的下一个 clk 有效触发沿。 // Verilog 例程 module dff(clk, rst_n, din, dout); input clk; input rst_n; input din; output dout; reg dout; always (posedge clk or negedge rst_n) begin if(!rst_n) dout 1b0; else dout din; end endmodule③ 带异步置位的寄存器输入输出的模型如图 3.4 所示。每个时钟信号 clk 的有效沿通常是上升沿输入端数据 din 将被锁存到输出端 dout而异步置位信号 set 的上升沿高电平有效置位将强制给输出数据 dout 赋值为 1不论此时的输入数据 din 取值此输出状态将一直保持到 set 拉低后的下一个 clk 有效触发沿。 // Verilog 例程 module dff(clk, set, din, dout); input clk; input din; input set; output dout; reg dout; always (posedge clk or posedge set) begin if(set) dout 1b1; else dout din; end endmodule④ 既带异步复位又带异步置位的寄存器则如图 3.5 所示。既带异步复位又带异步置位的寄存器其实是个很矛盾的模型我们可以简单的分析一下如果 set 和 clr 都处于无效状态set0,clr1那么寄存器正常工作如果 set 有效set1且 clr 无效clr1那么 dout1 没有异议同理如果 set 无效set0且 clr 有效clr0那么 dout0 也没有异议但是如果 set 和 clr 同时有效set1,clr0输出 dout 咋办到底是 1 还是 0 其实这个问题也不难设置一个优先级不就好了。当然了图 3.5 的理想寄存器模型通常只是作为电路的一部分来实现。如果我们期望这种既带异步复位又带异步置位的寄存器在复位和置位同时出现时异步复位的优先级高一些那么代码书写方式可以如下 // Verilog 例程 module dff(clk, rst_n, set, din, dout); input clk; input din;18 input rst_n; input set; output dout; reg dout; always (posedge clk or negedge rst_n posedge set) begin if(!rst_n) dout 1’b0; else if(set) dout 1b1; else dout din; end endmodule⑤ 如图 3.7 所示这是一种很常见的带同步使能功能的寄存器。每个时钟 clk 的有效沿通常是上升沿判断使能信号 ena 是否有效我们取高电平为有效在 ena 信号有效的情况下 din 的值才会输出到 dout 信号上。 // Verilog 例程 module dff(clk, ena, din, dout); input clk; input din; input ena; output dout; reg dout; always (posedge clk) begin if(ena) dout din; end endmodule3、时序逻辑电路 在一个时序逻辑中时钟信号掌控着所有输入和输出信号的进出。在每个时钟有效沿通常是上升沿寄存器的输入数据将会被采样并传送到输出端此后输出信号可能会在经历长途跋涉般的“旅途”中经过各种组合逻辑电路并会随着信号的传播延时而处于各种“摇摆晃荡”之中直到所有相关的信号都到达下一级寄存器的输入端。这个输入端的信号将会一直保持直到下一个时钟有效沿的来临。每一级寄存器都在不断的重复着这样的数据流采集和传输。 4、提升系统性能的代码风格 ① 减少关键路径的逻辑等级 ②逻辑复制减少重载信号的散出与资源共享 ③ 消除组合逻辑的毛刺
http://wiki.neutronadmin.com/news/340184/

相关文章:

  • 网站开发小程序定制seo网站优化培训班
  • 有做兼职赚钱的网站吗英文网站seo推广
  • 深圳外贸网站建设制作方法设计公司做网站价格
  • 淮安市网站各大门户网站有哪些
  • 注册网站安全吗企业网站建设专业的
  • 网站开发记什么费用专业网络优化
  • 微魔方建站电力建设集团网站
  • 商业网站 模板石家庄网站系统建设
  • wordpress 大网站猎头公司一般怎么收费的
  • 河北企业建网站小程序开发框架
  • 郑州网站开发外包建工网校官网论坛入口
  • 淘客网站要备案基于wordpress的商城系统
  • 嘉兴模板建站平台wordpress有趣插件
  • 太仓市住房和建设局网站wordpress .net 比较
  • 雪白丰腴做美妇网站建设商城网站
  • 潍坊哪里可以做网站哪里可以下载免费的ppt模板?
  • 网上智慧团建网站山西城乡建设学校报名网站
  • 洪湖网站建设手机网站织梦模板
  • 如何做网站收徒弟网站宜昌网站设计公司
  • 流行用什么做网站wordpress销售页面
  • 网站开发 工具系统软件开发培训机构
  • 制作企业网站页面实训报告网络系统软件应用与维护
  • 网站tdk建设手机怎么开发软件app
  • 美妆网站模板开淘宝店和做网站有什么区别
  • 如何使用天翼云主机建设网站网站建设v5star
  • 申请个人主页网站地址企业的网站内容
  • 学校网站开发说明书文档可以做热图的在线网站
  • 建立网站模板二环建设部网站
  • 集团网站源码一份完整的个人简历模板
  • v9双语版网站怎么做山西设计网站建设