福师大EDA数字系统设计作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.1、下列标识符哪些是合法的,哪些是错误的?

Count,8sum,a*b,_data,wait,initial,$latch

合法的:Count,,wait,initial

错误的:8sum,a*b,_data,,$latch

5.2、下列数字的表示是否正确?

6’d18,’Bx0,5’box110,’da30,10’d2,’hzF

正确的:’Bx0,’da30,’hzF

错误的:6’d18,5’box110,10’d2,

6.3用行为语句设计一个8位计数器,每次在时钟的上升沿,计数器加1,当计数器溢出时,自动从零开始重新计数。计数器有同步复位端。

Moudule(out,data,load,reset,clk);

output[7:0] out;

input[7:0] data;

input load, clk, reset;

reg[7:0]out;

always @(posedge clk)

begin

if(!reset)out=8"h00;

else if(load)out=data;

else

out=out+1;

end

endmodule

6.4设计一个4位移位寄存器

module e(out_data, in_data, clk, clr);

output[3: 0] out_data;

input [3: 0]in_data;

input clk,clr;

reg[3: 0] out_data

always @(posedge clk or posedge clr)

begin

if(clr) out_data <=0;

end

endmodule

7.4试编写同步模5计数器程序,有进位输出和异步复位端。

module test_cnts(clk, reset, car, out);

input clk,reset;

output car,out;

reg[2:0]cnt;

reg car;

wire[2:0]out;

assign out=cnt;

always@(posedge clk or negedge reset) begin

if(!reset)begin

cntく=3’b000;

car<=0;

end

else begin

if(cnt==3’b100)begin

car<=3’b001;

cnt<=3'b000:

end

else begin

cntく=cnt+3’b001;

car<=3’b000;

end

end

end

end module

7.5编写4位串并转换程序

reg[7:0] data;

reg[2:0] cnt;

always@(posedge clk or posedgerst)

if(rst)

reg <= 0;

else

reg <= {reg[7:0],din};

always@(posedge clk or posedge rst) if(rst)

cnt <= 0;

else

if(din_valid)

if(cnt == 7)

cnt <= 0;

else

cnt <= cnt +1;

else

cnt <= cnt;

always@(posedge clk or posedgerst) if(rst)

dout <= 0;

dout_en <= 0;

else

if(cnt == 7)

dout <= data;

dout_en <= 1;

else

dout <= 0;

dout_en <= 0;

相关文档
最新文档