- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3节 Verilog建模与调试技巧
Verilog 建模 调试
3.3.1 双向端口的使用和仿真?双向端口顾名思义既可以作为输入端口接收数据,也可以作为输出端口发出数据,对数据的操作是双向的。比如某个设计需要一个16位的数据输入口和一个16位的数据输出口,并且数据输入和输出不会同时发生。如果分别设计数据输入口和输出口,就需要32根数据线;而用双向端口来设计,只需要16根数据线,这样就节省了16根数据线引脚。本节给出FPGA中双向端口的设计原理和方法,以及仿真和初始化双向端口的方法。 1. 双向端口的实现原理 双向端口是通过控制三态门来实现的,其典型结构如图3-23所示。当z=0时,上面输出的管子开通,此时数据可以从上面的管子中输出,这时双向端口就作为输出口;当z=1时,上面的管子被置为高阻态,数据不能从上面的管子输出,此时数据只可以从下面的管子由外向内输入,这时的双向端口是输入口。
图3-25 双向端口的硬件结构
2. 双向端口的Verilog实现 根据Verilog HDL语法,I/ O端口可以分成三类:输入端口input;输出端口output以及双向端口inout。output端口信号可定义成寄存器型变量,并在always块内可以被赋值使用,而inout型双向端口信号不能被定义成reg型变量,因此只能采用assign赋值语句,不能在always块内使用,这一点与VHDL中双向端口的使用方法不同。双向端口的语法为:??? inout a; wire z, b; ??? //当控制信号z为1时,开通三态门,a为输入端口;当z为0时,三态门为高阻, ??? //a为输出端口 例如,assign a = (z) ? b : 8bz; 例3-16 使用Verilog实现一个位宽为16比特的数据选择器,其结构如图3-24所示,当控制信号 时,将输入数据从双向端口输出;当控制信号 时,将双向端口数据从输出端口输出。
图3-2616比特数据选择器的示意图
module bidirec_data(clk,z,din,dinout,dout); ?????? input clk; //时钟????????input z; //控制信号 ?????? input [15:0] din; //输入时钟????????inout [15:0] dinout; //双向端口 ?????? output [15:0] dout; //输出时钟 ?????? reg [15:0] dout; ?????? reg [15:0] din_t;??????? assign dinout=(!z) ? din_t : 16bz; //完成双向赋值 ??????? always@(posedge clk) begin ??????? if (!z) ??????? din_t = din; ??????? else ???????????? dout = dinout; ??????? end endmodule 3. 双向端口的仿真 当双向端口作为输出口时,我们不需要对它进行初始化,而只需要开通三态门。当双向端口作为输入口时,需要对它进行初始化赋值,并关闭三态门。对双向端口的初始化赋值,需要使用wire型的数据。此外可以通过force命令来对双向端口输入赋值。?例3-17 用Verilog完成例3-16的测试,并给出相应的测试结果。 module test_bidata; ??????? // The input signals ??????? reg clk; ??????? reg z; ??????? reg [15:0]din; ??????? // The output signals ??????? wire [15:0] dout; ??????? wire [15:0] dinout; ??????? integer i; ??????? bidirec_data uut(??????????? .din(din),????????? ??.?z z),????????????.? clk(clk),??????????? .?dout(dout),????????????. dinout(dinout)); ??????? always #10 clk= ~clk; ???????? initial begin ??????????????? z=1; ??????????????? clk=0; ?????????????
您可能关注的文档
- 竖向配预应力钢筋混凝土桥墩抗震性能研究综述.pdf
- 竖直板翅通道降膜吸收的运行特性!.pdf
- 站在红河南岸.ppt
- 竞争情报课件31.ppt
- 竣工报告建设单位监理单位工程名称工程造价设计单位勘察.doc
- 竣工验收水利工程建设项目验收的依据.ppt
- 童军绳结中英文及别称对照表.pdf
- 童装网站网络营销盈利模式分析任务一.ppt
- 端口接地电阻测试仪.pdf
- 端约束相邻固定点间线束长度建模研究.pdf
- 工会代表大会运行规则及十大制度解读.docx
- 法院合同法案例分析与学习笔记.docx
- 医疗急救口头医嘱管理流程制度.docx
- 幼儿园科学实验教学设计案例.docx
- 2025秋九年级英语全册Unit2Ithinkthatmooncakesaredelicious课时3SectionAGrammarFocus_4c习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit5WhataretheshirtsmadeofSectionA合作探究二课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit2Ithinkthatmooncakesaredelicious课时4SectionB1a_1d习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit1Howcanwebecomegoodlearners课时3SectionAGrammarFocus_4c习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit5Whataretheshirtsmadeof课时4SectionB1a_1e课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit3Couldyoupleasetellmewheretherestroomsare课时3SectionAGrammarFocus_4c课件新版人教新目标版.pptx
原创力文档


文档评论(0)