freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

veriloghdl高級程序設計舉例(編輯修改稿)

2025-02-03 23:04 本頁面
 

【文章內容簡介】 a_in,clock,reset,samples_0,samples_1,samples_2, samples_3,samples_4,samples_5,samples_6, samples_7,samples_8)。 input [3:0] Data_in。 input clock,reset。 output [3:0] samples_0,samples_1,samples_2,samples_3,samples_4, samples_5,samples_6,samples_7,samples_8。 reg [3:0] samples_0,samples_1,samples_2,samples_3,samples_4, samples_5,samples_6,samples_7,samples_8。 always@(posedge clock or negedge reset) begin if(reset) begin samples_0=439。b0。 samples_1=439。b0。 samples_2=439。b0。 samples_3=439。b0。 samples_4=439。b0。 samples_5=439。b0。 samples_6=439。b0。 samples_7=439。b0。 samples_8=439。b0。 end 2/4/2022 22 Microelectronics School Xidian University else begin samples_0=Data_in。 samples_1=samples_0。 samples_2=samples_1。 samples_3=samples_2。 samples_4=samples_3。 samples_5=samples_4。 samples_6=samples_5。 samples_7=samples_6。 samples_8=samples_7。 end end endmodule module caculator(samples_0,samples_1,samples_2,samples_3,samples_4,samples_5,samples_6, samples_7,samples_8,Data_out)。 input [3:0] samples_0,samples_1,samples_2,samples_3,samples_4,samples_5,samples_6, samples_7,samples_8。 output [9:0] Data_out。 wire [9:0] Data_out。 wire [3:0] out_tmp_1,out_tmp_2,out_tmp_3,out_tmp_4,out_tmp_5。 wire [7:0] out1,out2,out3,out4,out5。 2/4/2022 23 Microelectronics School Xidian University parameter b0=439。b0010。 parameter b1=439。b0011。 parameter b2=439。b0110。 parameter b3=439。b1010。 parameter b4=439。b1100。 mul_addtree U1(.mul_a(b0),.mul_b(out_tmp_1),.mul_out(out1))。 mul_addtree U2(.mul_a(b1),.mul_b(out_tmp_2),.mul_out(out2))。 mul_addtree U3(.mul_a(b2),.mul_b(out_tmp_3),.mul_out(out3))。 mul_addtree U4(.mul_a(b3),.mul_b(out_tmp_4),.mul_out(out4))。 mul_addtree U5(.mul_a(b4),.mul_b(samples_4),.mul_out(out5))。 assign out_tmp_1=samples_0+samples_8。 assign out_tmp_2=samples_1+samples_7。 assign out_tmp_3=samples_2+samples_6。 assign out_tmp_4=samples_3+samples_5。 assign Data_out=out1+out2+out3+out4+out5。 endmodule 2/4/2022 24 Microelectronics School Xidian University module FIR_tb。 reg clock,reset。 reg [3:0] Data_in。 wire [9:0] Data_out。 FIR U1 (.Data_out(Data_out),.Data_in(Data_in),.clock(clock),.reset(reset))。 initial begin Data_in=0。 clock=0。 reset=1。 10 reset=0。 end always begin 5 clock=~clock。 5 Data_in=Data_in+1。 end endmodule ( 1) RAM的 Verilog HDL描述 RAM是隨機存儲器,存儲單元的內容可按需隨意取出或存入。這種存儲器在斷電后將丟失掉所有數據,一般用來存儲一些短時間內使用的程序和數據。其內部結構如下圖所示: 2/4/2022 25 Microelectronics School Xidian University 存 儲 單 元地址譯碼器字 線A 0A 1A 2A n 2A n 1A n輸 出 控 制 矩 陣位 線W EC SD nD 1D 0… … … …......… …例:用 Verilog HDL設計深度為 8,位寬為 8的單端口 RAM。 單口 RAM,只有一套地址總線,讀操作和寫操作是分開的 。 2/4/2022 26 Microelectronics School Xidian University module ram_single( clk, addm, cs_n, we_n, din, dout)。 input clk。 //clock signal input [2:0] addm。 //address signal input cs_n。 //chip select signal input we_n。 //write enable signal input [7:0] din。 // input data output[7:0] dout。 // output data reg [7:0] dout。 reg [7:0] raml [7:0]。 //8*8 bites register always@(posedge clk) begin if(cs_n) dout=839。bzzzz_zzzz。 else if(we_n) //read data dout=raml[addm]。 else //write data raml[addm]=din。 end endmodule 2/4/2022 27 Microelectronics School Xidian University module ram_single_tb。 reg clk, we_n, cs_n。 reg [2:0]addm。 reg [7:0]din。 wire [7:0]dout。 ram_single U1(.clk(clk),.addm(addm),.cs_n(cs_n),.we_n(we_n), .din(din),.dout(dout))。 initial begin clk=0。 addm=0。 cs_n=1。 we_n=0。 din=0。 5 cs_n=0。 315 we_n=1。 end always 10 clk=~clk。 initial begin repeat(7) begin 40 addm=addm+1。 din=din+1。 end 40 repeat(7) 40 addm=addm1。 end endmodule 例:用 Verilog HDL設計深度為 8,位寬為 8的雙端口 RAM。 雙口 RAM具有兩套地址總線,一套用于讀數據,另一套用于寫數據。 二者可以分別獨立操作。 2/4/2022 28 Microelectronics School Xidian University module ram_dual(q, addr_in, addr_out, d, we, rd, clk1, clk2)。 output [7:0] q。 //output data input [7:0] d。 //input data input [2:0] addr_in。 //write data address signal input [2:0] addr_out。 //output data address signal input we。 //write data control signal input rd。 //read data control signal input clk1。 //write data clock input clk2。 //read data clock reg [7:0] q。 reg [7:0] mem[7:0]。 //8*8 bites register always@(posedge clk1) begin if(we) mem[addr_in]=d。 end always@(posedge clk2) begin if(rd) q=mem[addr_out]。 end endmodule 2/4/2022 29 Microelectronics School Xidian University module ram_dual_tb。 reg clk1, clk2, we, rd。 reg [2:0]addr_in。 reg [2:0]addr_out。 reg [7:0]d。 wire [7:0]q。 ram_dual U1(.q(q),.addr_in(addr_in),.addr_out(addr_out),.d(d),.we(we), .rd(rd),.clk1(clk1),.clk2(clk2))。 initial begin clk1=0。 clk2=0。 we=1。 rd=0。 addr_in=0。 addr_out=0。 d=0。 320 we=0。 rd=1。 end always begin 10 clk1=~clk1。 clk2=~clk2。 end initial begin repeat(7) begin 40 addr_in=addr_in+1。 d=d+1。 end 40
點擊復制文檔內容
電大資料相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1