- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2节 HDL代码输入
更新于2008-05-28 16:59:03
HDL 代码
4.2.1 新建工程
首先打开ISE ,每次启动时ISE都会默认恢复到最近使用过的工程界面。当第一次使用时,由于此时还没
有过去的工程记录,所以工程管理区显示空白。选择File |New Project选项,在弹出的新建工程对话框
中的工程名称中输入“one2two” 。在工程路径中单击Browse按键,当工程放到指定目录,如图4-7所
示。
图4-7 利用ISE新建工程的示意图
然后点击“Next”进入下一页,选择所使用的芯片类型以及综合、仿真工具。计算机上所安装的所有用于
仿真和综合的第三方EDA工具都可以在下拉菜单中找到,如图4-8所示。在图中,我们选用了Virtex4-
10芯片,并且指定综合工具为Synplify (Verilog ),仿真工具选为ModelSin-SE mixed。
图4-8 新建工程器件属性配置表
再点击“Next”进入下一页,可以选择新建源代码文件,也可以直接跳过,进入下一页。第4页用于添加
已有的代码,如果没有源代码,点击“Next” ,进入最后一页,单击确认后,就可以建立一个完整的工
程。
4.2.2 代码输入
在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择“New Source”命令,会弹出如图4-9所示
的New Source对话框。
图4-9 新建源代码对话框
左侧的列表用于选择代码的类型,各项的意义如下所示:
BMM File :
ChipScope Definition and Connection File :在线逻辑分析仪ChipScope文件类型,具有独特的优
势和强大的功能,将在M张进行讨论。
IP (Coregen Architecture Wizard ):由ISE的IP Core生成工具快速生成可靠的源代码,这是目
前最流行、最快速的一种设计方法,将在4.5节详细讨论。
MEM File :
Implementation Constraints File :约束文件类型。
State Disgram :状态图类型。
Test Bench Wavaform :测试波形类型。
User Document :用户文档类型。
Verilog Module :Verilog模块类型。
Verilog Test Fixture :Verilog测试模块类型。
VHDL Module :VHDL模块类型。
VHDL Library :VHDL库类型。
VHDL Packet :VHDL包类型。
VHDL Test Bench :VHDL测试模块类型。
在代码类型中选择Verilog Module选项,在File Name文本框中输入one2two ,单击Next进入端口定义对
话框,如图4-10所示。
4-10 Verilog模块端口定义对话框
图
其中Module Name就是输入的“one2two” ,下面的列表框用于对端口的定义。“Port Name” 表示端口名
称,“Direction” 表示端口方向(可以选择为input、output或inout),MSB表示信号的最高位,LSB表示
信号的最低位,对于单位信号的MSB和LSB不用填写。
定义了模块端口后,单击“Next”进入下一步,点击“Finish”按键完成创建。这样,ISE会自动创建一
个Verilog模块的例子,并且在源代码编辑区内打开。简单的注释、模块和端口定义已经自动生成,所剩
余的工作就是在模块中实现代码。填入的代码如下:
module one2two(x_in, flag, y1_out, y2_out);
input [7:0] x_in;
input flag;
output [7:0] y1_out;
output [7:0] y2_out;
// 以下为手工添加的代码
assign y1_out = flag ? x_in : 8b0
文档评论(0)