DC綜合實驗一 計算器

2021-04-27 12:33:32 字數 2855 閱讀 5749

實驗一

計算器

摘要:本

dc綜合實驗設計了乙個簡單的二進位制計數器,由

fsm(finite state machine)

控制完成正向計數或者負向計數,並給出了設計原始碼和綜合步驟及結果。

綜合工具:

dc2005 1.

資料準備(1

)設定dc

的工作環境,即啟動檔案:在工作目錄下

/home/ic401digital/kinglin/design/lab1

中建立「

.synopsys_dc.setup

」檔案,如下:

set search_path

set target_libray

set link_library

set symbol_library (2

)編寫設計**,如下:

module counter (up_down, clk, counter_out);

input up_down, ckl;

output [1:0] counter_out;

reg [1:0] counter_out;

always @ (posedge clk)

begin

if (up_down)

counter_out <= counter_out + 1;

else

counter_out <= counter_out – 1;

endendmodule(3

)約束指令碼,如下:

analyze –format verilog-library deffault

elaborate counter –library deffault

current_design counter

link

set_operating_conditions slow_7_4.50

create_clock –period 50 –name clk [get_ports clk]

set_dont_touch_network [get_clocks clk]

set_input_delay 1 –clock clk [all_inputs]

set_drive 0 [all_inputs]

set_output_delay 1 –clock clk [all_outputs]

set_load 0.5

set_max_area 0

report_timg > /home/ic401digital/kinglin/design/lab1/rpt/timing.rpt

report_power > /home/ic401digital/kinglin/design/lab1/rpt/power.rpt

report_area > /home/ic401digital/kinglin/design/lab1/rpt/area.rpt

write –format db –hieararchy –output /home/ic401digital/kinglin/design/lab1/syn/counter.db

write –format verilog –hieararchy –output /home/ic401digital/kinglin/design/lab1/syn/counter.sv

write_sdf /home/ic401digital/kinglin/design/lab1/syn/counter.sdf

write_sdc /home/ic401digital/kinglin/design/lab1/syn/counter.sdc

2.通過終端進入工作目錄

/home/ic401digital/kinglin/design/lab1

,鍵入:

design_vision

;啟動dc. 3.

執行上述指令碼即可完成計數器的綜合。

4.綜合的結果(1

)門級網表檔案:加上庫檔案,可進行門級**。

module counter( up_down, clk, counter_out );

output [1:0] counter_out;

input up_down, clk;

wiren3, n4, n5, n6, n7, n2;

fd1a2 / counter_out _reg[0]( .d(n6), .clk(clock_in), .q(counter_out [0]) );

fd1a2 / counter_out _reg[1]( .d(n7), .clk(clock_in), .q(counter_out [1]) );

ao4a2 u4 ( .a(n5), .b(n2), .c(up_down), .d(n3), .y(n7) );

inv1a1 u6 ( .a(counter_out [0]), .y(n4) );

ao4b0 u7 ( .c(n4), .d(n2), .b(up_down), .a(counter_out [0]), .y(n6) );

inv1a1 u8 ( .a(up_down), .y(n2) );

xor2a2 u9 ( .a(counter_out [1]), .b(counter_out [0]), .y(n3) );

xor2a2 u10 ( .a(n4), .b(counter_out [1]), .y(n5) );

endmodule(2

)標準單元延遲檔案

sdf:

可用於時序驅動下的布局佈線。(3

)sdc

檔案:包含了

dc的時序、面積等約束資訊。

軟體實習實驗一計算器的開發(第一天)

物聯網一班 李林青 182210713120 源 在github 1 能通過設計的按鈕控制項輸入並實現簡單算術運算,要求表示式在編輯框中顯示,能將運算結果,輸出在編輯框內顯示 2 能夠實現混合運算的求解,算術表示式中包括加 減 乘 除 括號等運算子 並且能夠識別括號,優先順序正確。3 並儲存歷史的表...

棧實現綜合計算器

package com.dai.stack public class calculator else else else else index 1 是否掃瞄到最後 index if index expression.length while true num1 numstack.pop num2 n...

棧實現綜合計算器

思路分析 實現 package stack public class calculator else else else else 讓index 1,並判斷是否掃瞄到expression最後 index if index expression.length while true num1 numst...