国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

南京大學(xué)數(shù)字電路與計算機(jī)組成實驗的Verilator仿真(二)

這篇具有很好參考價值的文章主要介紹了南京大學(xué)數(shù)字電路與計算機(jī)組成實驗的Verilator仿真(二)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

實驗二

1. 2-4譯碼器

top.v

module decode24(x,en,y);
  input  [1:0] x;
  input  en;
  output reg [3:0]y;

  always @(x or en)
    if (en)
    begin
      case (x)
            2'd0 : y = 4'b0001;
            2'd1 : y = 4'b0010;
            2'd2 : y = 4'b0100;
            2'd3 : y = 4'b1000;
      endcase
    end
    else  y = 4'b0000;

endmodule

sim_main.cpp

int main() {
  sim_init();

  top->en = 0b0;  top->x = 0b00;  step_and_dump_wave();
                  top->x = 0b01;  step_and_dump_wave();
                  top->x = 0b10;  step_and_dump_wave();
                  top->x = 0b11;  step_and_dump_wave();
  top->en = 0b1;  top->x = 0b00;  step_and_dump_wave();
                  top->x = 0b01;  step_and_dump_wave();
                  top->x = 0b10;  step_and_dump_wave();
                  top->x = 0b11;  step_and_dump_wave();
  sim_exit();
}

仿真結(jié)果
nvboard,數(shù)字系統(tǒng)設(shè)計,fpga開發(fā),硬件工程

2. 4-2編碼器

top.v

module encode42(x,en,y);
  input  [3:0] x;
  input  en;
  output reg [1:0]y;

  always @(x or en) begin
    if (en) begin
      case (x)
          4'b0001 : y = 2'b00;
          4'b0010 : y = 2'b01;
          4'b0100 : y = 2'b10;
          4'b1000 : y = 2'b11;
          default: y = 2'b00;
      endcase
    end
    else  y = 2'b00;
  end
endmodule

sim_main.cpp

int main() {
  sim_init();

  top->en=0b0; top->x =0b0000; step_and_dump_wave();
               top->x =0b0001; step_and_dump_wave();
               top->x =0b0010; step_and_dump_wave();
               top->x =0b0100; step_and_dump_wave();
               top->x =0b1000; step_and_dump_wave();
  top->en=0b1; top->x =0b0000; step_and_dump_wave();
               top->x =0b0001; step_and_dump_wave();
               top->x =0b0010; step_and_dump_wave();
               top->x =0b0100; step_and_dump_wave();
               top->x =0b1000; step_and_dump_wave();
  sim_exit();
}

仿真結(jié)果
nvboard,數(shù)字系統(tǒng)設(shè)計,fpga開發(fā),硬件工程

3. 優(yōu)先編碼器

3. 優(yōu)先編碼器

top.v

module encode42(x,en,y);
  input  [3:0] x;
  input  en;
  output reg [1:0]y;
  integer i;
  always @(x or en) begin
    if (en) begin
      y = 0;
      for( i = 0; i <= 3; i = i+1)
          if(x[i] == 1)  y = i[1:0];
    end
    else  y = 0;
  end
endmodule

sim_main.cpp

int main(){
	sim_init();
	int i;
	top->en = 0;
	top->x = 0b0000;
	for(i=0;i<=15;i++){
	step_and_dump_wave();
	top->x = top->x+1;
	}
	step_and_dump_wave();
	top->en = 1;
	top->x = 0;
	for(i=0;i<=15;i++){
	step_and_dump_wave();
	top->x = top->x+1;
	}
	sim_exit();
}

nvboard,數(shù)字系統(tǒng)設(shè)計,fpga開發(fā),硬件工程

4. 8-3優(yōu)先編碼器

nvboard,數(shù)字系統(tǒng)設(shè)計,fpga開發(fā),硬件工程
top.v

module top (x,y,en,lb,seg0);
	input [7:0] x;
	input en;
	output reg lb;
	output reg [6:0] seg0;
	output reg [2:0] y;

	always@(*)
	begin
		if(en)
		begin
		lb = 1;
		casez(x) //此處用casex會warning,因為casex不可綜合
			8'b0000_0000: begin y = 3'b000;lb = 0; end
			8'b0000_0001: y = 3'b000;
			8'b0000_001?: y = 3'b001;
			8'b0000_01??: y = 3'b010;
			8'b0000_1???: y = 3'b011;
			8'b0001_????: y = 3'b100;
			8'b001?_????: y = 3'b101;
			8'b01??_????: y = 3'b110;
			8'b1???_????: y = 3'b111;
			default: y = 3'b000;
		endcase
		end
		else y = 0;
	end
bcd7seg sg0({1'b0,y},seg0);
endmodule
			

bcd7seg.v

module bcd7seg(
	input [3:0] b,
	output reg [6:0] h
	);
	always@(*)
	begin
		case(b)
			4'b0000: h=7'b0000_001;
			4'b0001: h=7'b1001_111;
			4'b0010: h=7'b0010_010;
			4'b0011: h=7'b0000_110;
			4'b0100: h=7'b0110_011;
			4'b0101: h=7'b0100_100;
			4'b0110: h=7'b0100_000;
			4'b0111: h=7'b0001_111;
			4'b1000: h=7'b0000_000;
			4'b1001: h=7'b0000_100;
			4'b1010: h=7'b0001_000;
			4'b1011: h=7'b1100_000;
			4'b1100: h=7'b0110_001;
			4'b1101: h=7'b1000_010;
			4'b1110: h=7'b0110_000;
			4'b1111: h=7'b0111_000;
		endcase
	end
endmodule

sim_main.cpp

#include <verilated.h>
#include "Vtop.h"
#include <nvboard.h>

static TOP_NAME dut;
void nvboard_bind_all_pins(Vtop* top);
void single_cycle(){
	dut.eval();
	}
int main(){
	nvboard_bind_all_pins(&dut);
	nvboard_init();
	while(1){
		single_cycle();
		nvboard_update();
		}
	}

nvboard約束文件 top.nxdc

top = top
y(LD2,LD1,LD0)
x(SW7,SW6,SW5,SW4,SW3,SW2,SW1,SW0)
en(SW8)
seg0(SEG0A,SEG0B,SEG0C,SEG0D,SEG0E,SEG0F,SEG0G)
lb(LD4)

Makefile文件

TOPNAME = top
NXDC_FILES = constr/top.nxdc  #約束文件路徑
INC_PATH ?=  #?=的意義是,INC_PATH如果被未被定義,則為?=后的值,如果被定義過,則保持原來的值

VERILATOR = verilator
VERILATOR_CFLAGS += -MMD --build --cc -O3 \
                    --x-assgin fast --x-initial fast --noassert --trace
BUILD_DIR = ./build
OBJ_DIR = $(BUILD_DIR)/obj_dir
 #OBJ_DIR = ./build/obj_dir
BIN = $(BUILD_DIR)/$(TOPNAME)
 #BIN = ./build/top

default: $(BIN) #終極目標(biāo)為default,依賴./build/top

$(shell mkdir -p $(BUILD_DIR)) #建立./build目錄

SRC_AUTO_BIND = $(abspath $(BUILD_DIR)/auto_bind.cpp) #abspath:返回文件的絕對路徑
#SRC_AUTO_BIND = ~/vtest/ex2/part4/build/auto_bind.cpp 此為約束文件
$(SRC_AUTO_BIND): $(NXDC_FILES) # 目標(biāo)文件(約束文件SRC_AUTO_BIND)的建立依賴于constr/top.nxdc
	python3 $(NVBOARD_HOME)/scripts/auto_pin_bind.py $^ $@
	# python3 $(NVBOARD_HOME)/scripts/auto_pin_bind.py constr/top.nxdc auto_bin.cpp 
	#此命令用來生成auto_bin.cpp文件

VSRCS = $(shell find $(abspath ./vsrc) -name "*.v")
#在~/vtest/ex2/part4/vsrc目錄中尋找所有的.v文件
#VSRCS = top.v bcd7seg.v
CSRCS = $(shell find $(abspath ./csrc) -name "*.c" -or -name "*.cc" -or -name "*.cpp")
#CSRCS = sim_main.cpp
CSRCS += $(SRC_AUTO_BIND)
#CSRCS = sim_main.cpp auto_bind.cpp

include $(NVBOARD_HOME)/scripts/nvboard.mk
#在該Makefile中引用其他Makefile

INCFLAGS = $(addprefix -I, $(INC_PATH))
#INCFLAGS = -I
CFLAGS += $(INCFLAGS) -DTOP_NAME="\"V$(TOPNAME)\""
#CFLAGS = -I -DTOP_NAME="\"Vtop\""
LDFLAGS += -lSDL2 -lSDL2_image

$(BIN): $(VSRCS) $(CSRCS) $(NVBOARD_ARCHIVE)
#./build/top文件的建立依賴于 top.v bcd7seg.v sim_main.cpp auto_bind.cpp 以及verilator仿真可執(zhí)行文件
	@rm -rf $(OBJ_DIR)
	$(VERILATOR) $(VERILATOR_CFLAGS)\
	--top-module $(TOPNAME) $^\
	$(addprefix -CFLAGS , $(CFLAGS)) $(addprefix -LDFLAGS , $(LDFLAGS)) \
	--Mdir $(OBJ_DIR) --exe -o $(abspath $(BIN))
	# verilator -MMD --build --cc -O3 --x-assgin fast --x-initial fast --noassert --trace \
	#--top-module top top.v bcd7seg.v sim_main.cpp auto_bind.cpp \
	#-CFLAGS -I -DTOP_NAME="\"VTOP\"" -LDFLAGS -lSDL2 -lSDL2_image \
	#--Mdir ./build/obj_dir --exe -o ./build/top
	#--top-module top 指定頂層文件名 --Mdir 將生成的文件都放入obj_dir目錄中 --exe -o ./build/top 產(chǎn)生可執(zhí)行文件并指定名字為./build/top
all: default

run:$(BIN)
	@$^
	#make run 執(zhí)行可執(zhí)行文件 ./build/top

clean:
	rm -rf $(BUILD_DIR)
.PHONY: default all clean run

結(jié)果展示

nvboard,數(shù)字系統(tǒng)設(shè)計,fpga開發(fā),硬件工程
nvboard,數(shù)字系統(tǒng)設(shè)計,fpga開發(fā),硬件工程
nvboard,數(shù)字系統(tǒng)設(shè)計,fpga開發(fā),硬件工程文章來源地址http://www.zghlxwxcb.cn/news/detail-557055.html

到了這里,關(guān)于南京大學(xué)數(shù)字電路與計算機(jī)組成實驗的Verilator仿真(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 24屆近5年南京大學(xué)自動化考研院校分析

    24屆近5年南京大學(xué)自動化考研院校分析

    今天給大家?guī)淼氖?南京大學(xué) 控制考研分析 滿滿干貨~還不快快點贊收藏? 南京大學(xué)是一所歷史悠久、聲譽卓著的高等學(xué)府。其前身是創(chuàng)建于1902年的三江師范學(xué)堂,此后歷經(jīng)兩江師范學(xué)堂、南京高等師范學(xué)校、國立東南大學(xué)、國立第四中山大學(xué)、國立中央大學(xué)、國立南京大

    2024年02月13日
    瀏覽(21)
  • 南京航空航天大學(xué)民航管理系統(tǒng)課程設(shè)計

    趁著最近備戰(zhàn)c++實習(xí),通過以前幫朋友寫的課設(shè)復(fù)習(xí)一下c++,后面附有各個模塊的功能實現(xiàn)。 建議通過多文件封裝各個類的功能。 1.總體描述 : 本程序?qū)崿F(xiàn)對民航飛行與地圖管理系統(tǒng)的簡單操作。 2.程序菜單功能: 地圖記錄是一個數(shù)據(jù)庫列表,每一個記錄包含一個城市的信

    2024年02月08日
    瀏覽(21)
  • 南京郵電大學(xué)數(shù)據(jù)庫第一次課后作業(yè)

    1.單選題 (5分) ( B )是存儲在計算機(jī)內(nèi)有結(jié)構(gòu)的數(shù)據(jù)的集合。 (A)數(shù)據(jù)庫系統(tǒng) (B)數(shù)據(jù)庫 (C)數(shù)據(jù)庫管理系統(tǒng) (D)數(shù)據(jù)結(jié)構(gòu) 2.單選題 (5分) 數(shù)據(jù)庫的特點之一是數(shù)據(jù)的共享,嚴(yán)格的講,這里的數(shù)據(jù)共享是指( D )。 (A)同—個應(yīng)用中的多個程序共享一個數(shù)據(jù)集合 (B)多個用戶

    2024年02月01日
    瀏覽(20)
  • 南京郵電大學(xué)數(shù)據(jù)庫實驗一(SQL語言)

    (1) 通過上機(jī)實踐,熟悉Oracle的SQL * Plus環(huán)境及使用方法 (2) 掌握SQL語言,能熟練運用SQL語言進(jìn)行數(shù)據(jù)定義和數(shù)據(jù)操縱 (3) 加深對關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)和約束的理解 硬件:微型計算機(jī) 軟件:Windows 操作系統(tǒng)、ORACLE 10G 實驗原理基于第二、三、五章的相關(guān)內(nèi)容。 實驗內(nèi)容如下:

    2024年04月27日
    瀏覽(22)
  • 2023南京郵電大學(xué)通達(dá)學(xué)院《數(shù)學(xué)實驗》MATLAB實驗答案

    2023南京郵電大學(xué)通達(dá)學(xué)院《數(shù)學(xué)實驗》MATLAB實驗答案

    四月維夏,六月徂暑。 勤將勵勉,勿望再晨。 ——贈nmy 南京郵電大學(xué)通達(dá)學(xué)院《數(shù)學(xué)實驗》MATLAB實驗答案 答案更新時間:2023.04.28,修改了4.2的存疑部分。已更新完成,如無錯誤不在更新 為了方便核算,我在代碼中單獨將 m 定義為自變量運算或者直接以m=117代入,作業(yè)中可以

    2023年04月20日
    瀏覽(69)
  • NIPS2022|南京大學(xué)提出基于點擊后行為的廣義延遲反饋模型

    NIPS2022|南京大學(xué)提出基于點擊后行為的廣義延遲反饋模型

    Generalized Delayed Feedback Model with Post-Click Information in Recommender Systems Jia-Qi Yang De-Chuan Zhan Nanjing University https://proceedings.neurips.cc/paper_files/paper/2022/file/a7f90da65dd41d699d00e95700e6fa1e-Paper-Conference.pdf 轉(zhuǎn)化率預(yù)估(比如預(yù)測某個用戶購買某個商品的概率)在機(jī)器學(xué)習(xí)推薦系統(tǒng)中是一個基本問

    2024年02月05日
    瀏覽(100)
  • 24屆近5年南京工業(yè)大學(xué)自動化考研院校分析

    24屆近5年南京工業(yè)大學(xué)自動化考研院校分析

    今天給大家?guī)淼氖?南京工業(yè)大學(xué) 控制考研分析 滿滿干貨~還不快快點贊收藏? 南京工業(yè)大學(xué)(Nanjing Tech University),簡稱“南工”,位于江蘇省南京市,由國家國防科技工業(yè)局、住房和城鄉(xiāng)建設(shè)部與江蘇省人民政府共建,入選國家“2011計劃”、“111計劃”、“卓越工程師

    2024年02月13日
    瀏覽(31)
  • 24屆近3年南京信息工程大學(xué)自動化考研院校分析

    24屆近3年南京信息工程大學(xué)自動化考研院校分析

    今天給大家?guī)淼氖?南京信息工程 大學(xué) 控制考研分析 滿滿干貨~還不快快點贊收藏? 南京信息工程大學(xué)位于南京江北新區(qū),是一所以大氣科學(xué)為特色的全國重點大學(xué),由江蘇省人民政府、中華人民共和國教育部、中國氣象局、國家海洋局共建,是國家首批世界一流學(xué)科建設(shè)

    2024年02月13日
    瀏覽(25)
  • 24屆近5年南京理工大學(xué)自動化考研院校分析

    24屆近5年南京理工大學(xué)自動化考研院校分析

    今天學(xué)長給大家?guī)淼氖悄暇├砉ご髮W(xué)控制考研分析 滿滿干貨~還不快快點贊收藏 ? 南京理工大學(xué)是隸屬于工業(yè)和信息化部的全國重點大學(xué),學(xué)校由創(chuàng)建于1953年的新中國軍工科技最高學(xué)府——中國人民解放軍軍事工程學(xué)院(簡稱“哈軍工”)分建而成,經(jīng)歷了中國人民解放

    2024年02月13日
    瀏覽(23)
  • 24屆近5年南京航空航天大學(xué)自動化考研院校分析

    24屆近5年南京航空航天大學(xué)自動化考研院校分析

    今天給大家?guī)淼氖?南京航空航天大學(xué) 控制考研分析 滿滿干貨~還不快快點贊收藏? 南京航空航天大學(xué)創(chuàng)建于1952年10月,是新中國自己創(chuàng)辦的第一批航空高等院校之一。1978年被國務(wù)院確定為全國重點大學(xué);1981年經(jīng)國務(wù)院批準(zhǔn)成為全國首批具有博士學(xué)位授予權(quán)的高校;1996年

    2024年02月14日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包