




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FPGA设计中逻辑复制的使用在FPGA设计中经常使用到逻辑复制,逻辑复制也用在很多场合。1.
信号驱动级数非常大,扇出很大,需要增加驱动力逻辑复制最常使用的场合时调整信号的扇出。如果某个信号需要驱动后级很多单元,此时该信号的扇出非常大,那么为了增加这个信号的驱动能力,一种办法就是插入多级Buffer,但是这样虽然能增加驱动能力,但是也增加了这个信号的路径延时。为了避免这种情况这时可以复制生成这个信号的逻辑,用多路同频同相的信号驱动后续电路,使平均到每路的扇出变低,这样不需要插入Buffer就能满足驱动能力增加的要求,从而节约该信号的路径延时。如从图1.1到图1.2转变所示。
图1.1
逻辑复制前
图1.2
逻辑复制后由于现在综合器都已经非常智能,此种场合的逻辑复制工作大多由综合器完成,不需要人手动调整。各大FPGA厂商的综合器以及第三方综合器都有这种功能。2.
FPGA中需要做很多重复工作在某些FPGA设计中,需要很多重复设计的时候,这时候逻辑复制也就有用了。例如:在某个特殊应用场合需要设计方向可以任意改变的240位宽的三态IO管脚。我们先看看常用的一个位宽的三态管脚怎么设计。
moduleinout_interface(dat_in,io_out,io_dir,dat_out);inputdat_in;inputio_dir;outputdat_out;inoutio_out;assignio_out=io_dir?dat_in:1'bz;assigndat_out=io_out;endmodule
如上述程序所示为单个双向IO口的典型设计代码,中间由IO输入方向控制数据和高阻之间的切换,难题出现了,怎么设计240位宽的双向IO口呢?难道如下列程序所示:
moduleinout_interface(dat_in,io_out,io_dir,dat_out);input[239:0]dat_in;input[239:0]io_dir;output[239:0]dat_out;inout[239:0]io_out;assignio_out=io_dir?dat_in:240'bz;assigndat_out=io_out;endmodule
显然这样是不行的,因为当io_dir为240位的时候只有当全为0的时候此式才为假,其余时候都为真,显然达不到想要的每个IO都是双向口的设计。修改代码如下:
moduleinout_interface(dat_in,io_out,io_dir,dat_out);input[239:0]dat_in;input[239:0]io_dir;output[239:0]dat_out;inout[239:0]io_out;assignio_out[0]=io_dir[0]?dat_in[0]:1'bz;assigndat_out[0]=io_out[0];assignio_out[1]=io_dir[1]?dat_in[1]:1'bz;assigndat_out[1]=io_out[1];assignio_out[2]=io_dir[2]?dat_in[2]:1'bz;assigndat_out[2]=io_out[2];..//此处略去1万行.assignio_out[239]=io_dir[239]?dat_in[239]:1'bz;assigndat_out[239]=io_out[239];endmodule显然这种办法能实现240位宽的独立方向控制IO,但是估计写代码要累死人,有没得更好的办法呢?当然有,在verilog2001中有个逻辑复制语法——generate,可以对verilog模块进行无限复制。有了这个模块我们即可轻松通过逻辑复制来达到我们的要求了。
//单个双向IO实现模块modulepin_inout(indat,indir,outdat,outdatin);inputindat;inputindir;inoutoutdat;outputoutdatin;assignoutdat=indir?indat:1'bz;assignoutdatin=outdat;endmodulemoduleinout_interface(dat_in,io_out,io_dir,dat_out);input[239:0]dat_in;input[239:0]io_dir;output[239:0]dat_out;inout[239:0]io_out;//逻辑复制240次genvari;generatefor(i=0;i<240;i=i+1)begin:pin_looppin_inoutpin_inout_inst(.indat(dat_in[i]),.indir(io_dir[i]),.outdat(io_out[i]),.outdatin(dat_out[i]));endendgenerat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村房子归属合同样本
- 停车协议终止合同标准文本
- 企业授权服务合同标准文本
- 2025民宿租赁经营合同
- 代加工合作合同标准文本
- 公司股东投资合同样本
- 出售餐饮椅子合同样本
- 农业项目用工合同标准文本
- 公司合作养鸡合同标准文本
- 三方合同样本
- 2025年天津市南开区中考一模语文试题(含答案)
- 2025年安徽省铜陵市枞阳县浮山中学高三下学期3月适应性考试历史试题含解析
- 每日2小时综合体育实施方案
- 劳动合同法员工培训课件
- 2024年盐源县县属国有企业招聘工作人员考试真题
- 国家开放大学《课程与教学论》形考任务1-4参考答案
- 九宫数独200题(附答案全)
- 陕2022TJ 067 厨卫装配式钢丝网混凝土排气道系统建筑构造图集
- DBJ04∕T 253-2021 建筑工程施工安全管理标准
- 二元一次方程组(课堂PPT)
- 《淮阴师范学院二级学院经费核拨管理办法(试行)》
评论
0/150
提交评论