# 數位系統實驗報告一 :::info 學號: B093040044 系級: 資工二 姓名: 蔡明軒 ::: ## 實驗一 ### 內容 - 目標 - 使用vivado的Block Design功能拉出輸出輸入都是1bit的2對一OR閘 - 要求 - 完成synthesis並且模擬結果正確 - 測試內容必須包含A=0、B=0,A=0、B=1,A=1、B=0,A=1、B=1 ### 過程 1. 新增一個utility vector logic 2. 創建S,Op1,Op2共三個port 3. 將port連線至design物件,生成Block Design )  4. 創建HDL Wrapper 5. 新增Testbench source 6. synthesis & simulation - Testbench code ```verilog= `timescale 1ns / 1ps module tb(); reg a,b; wire s; design_1_wrapper UO(.Op1(a),.Op2(b),.S(s)); initial begin a<=1'b0; b<=1'b0; #10 a<=1'b0; b<=1'b1; #10 a<=1'b1; b<=1'b0; #10 a<=1'b1; b<=1'b1; #10 $finish; end endmodule ``` ### 結果  ## 實驗二 ### 內容 - 目標 - 使用Verilog將上課的範例full_adder從Behavior Level修改成DataFlow Level - 要求 - 完成synthesis並且模擬結果正確 ### 過程 1. 下載網大的檔案 2. 將f_add_tb.v加入simulation source,f_add.v加入design source 3. 將Behavior Level 修改成 DataFlow Level 4. synthesis & simulation - source code ```verilog= `timescale 1ns / 1ps module f_add( input wire [2:0] a, input wire [2:0] b, input wire cin, output wire [2:0] sum, output wire cout ); assign {cout, sum} = a + b + cin; endmodule ``` ### 結果  ## 實驗心得 這次的實驗主要是要讓我們熟悉一下vivado的環境。 - 實驗一 第一個實驗是要使用Block Design直接拉OR Gate,一開始synthesis成功的時候讓我高興一下,以為自己完成了,但在模擬的時候卻出現報錯訊息,原來是自己的Testbench的變數命名有誤,除錯後再重新synthesis後,確認結果是正確的,便完成了人生中第一次的數位電路電路模擬。 - 實驗二 第二個實驗主要的問題是我不清楚怎麼把外界的source檔案放入專案中,研究一陣子後,我發現介面左上角有一個'+'的按鈕,點進去後看到有三個選項,其中一個可以放電路的source,另一個可以放模擬的source,將網大提供的檔案導入後,照著要求把Behavior level改成Dataflow level並synthesis後,按下模擬鍵確認結果無誤後即順利完成第二個實驗。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up