- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
數 位 邏 輯 軟 體 設 計 實 驗 FPGA (Filed Programmable Gate Array) CPLD (Complex Programmable Logic Device) 差異 : CPLD適合用來實現各種 運算和組合邏輯 時間特性預估容易 有固定內部連線電路的邏輯功能來編程 編程採用E2PROM或Flash技術,使用時外部不需要另外的記憶儲存元件 Verilog FPGA適用於實現循序邏輯 分段式佈線結構使得其時間延遲的預測變的困難 具有更大的靈活性透過改變內部電路佈線來編程 可編程邏輯閘數大 許多編程採用SRAM技術,所以使用時外部需要搭配記憶儲存元件存放編程訊息使用方法較複雜 VHDL 使用軟體 : Mdelsim ISE ( Xilinx Project Navigator) Verilog HDL簡介 Outline Introduction 四種描述層次 基本單位的描述 module port 常用的Logic Gates 其他的語法協定 Introduction Verilog HDL是一種硬體描述語言,用來描述電路功能或是架構。 只要有C語言的相關經驗即可容易上手。 一般的邏輯合成工具普遍都有支援Verilog HDL。 大部分的製造商皆有提供Verilog HDL的函數庫,因此用Verilog HDL設計晶片在廠商方面有較多的選擇。 四種描述層次 Behavioral level:只考慮模組中的功能和函數,不必考慮硬體方面的詳細電路,如同是在寫C語言一樣。 Dataflow level:說明資料如何在暫存器中儲存和傳送,和資料處理的方式。 Gate level:模組是由Logic gates所構成的,使用Logic gates來設計電路。 Switch level:最低層次,設計者需知道電晶體的元件特性。 Gate level: Behavioral module Beh_AND ( in1 , in2 , Out) input in1 , in2 ; output Out ; reg Out ; always @ ( in1 or in2 ) begin Out = in1 in2 end endmodule Data Flow module DF_AND ( in1 , in2 , Out) input in1, in2 ; output Out ; wrie Out ; assign Out = in1 in2 ; endmodule 四種準位數值 0 1 X : 不確定 Z : 高阻抗 常用敘述 assign assign 驅動某個值到 wire , wand , wor ,tri 用於資料處理模型 Data Flow Model wire a,b,c; // 宣告三個接縣型態的變數 assign a= b c; //a = b 和c 作 and 運算 常用敘述 always 可隨時監督外界輸出入port ,訊號有變化時即告訴模組內部配合相對應的工作 always @(a or b) begin f=abc; end always 例子: always @( posedge clock) begin end // posedge 正緣觸發 // nogedge 負緣觸發 wire 敘述 接線是連接硬體元件之連接線 接線必須被驅動才能改變它內函值 內定為一個位元值 z reg 暫存器 功能與變數很像 ,可以給定一個數值,主要功能在保持住電路中某個值,不必像(wire)要被驅動才能改變它的內函值 內定為一個位元值 x 選用wire 或 reg 時機 wire 必須配合 assign 來使用 ,且不能出現在always區塊描述裡 Wire a,b,c; assign a c; reg 必須放在always區塊描述裡 input [3:0] a, b; output [3:0] c; reg [3:0] c; always @(a or b) Begin c=a+b; end 二元逐位運算子 ~ NOT AND | OR ^ XOR ~^ XNOR 範例 Assign a= ~ b ; // not // 若 b= 4’b0010 // 則 a= 4’b1101 Assign a= b c;
文档评论(0)