Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
các anh chị cho em hỏi làm sao để tạo được 1 tập 32 thanh ghi 32bits (register files) trong verilog ?và cả bộ cách tạo bộ nhớ (data memory) nữa.ai biết xin chỉ giúp em với.
sơ đồ đây ạh
[IMG][/IMG]
các anh chị cho em hỏi làm sao để tạo được 1 tập 32 thanh ghi 32bits (register files) trong verilog ?và cả bộ cách tạo bộ nhớ (data memory) nữa.ai biết xin chỉ giúp em với.
sơ đồ đây ạh
[IMG][/IMG]
Về tạo register file, có thể dùng 1 trong 2 cách sau
- Bạn có thể chỉ dùng code VHDL/Verilog
- Nếu viết để chạy trên FPGA, bạn có thể dùng Dual-port RAM (Ram có 2 cổng)
Cách 1 dùng HDL để viết:
Sau khi khai báo các cổng input/output, để khai báo một dãy các thanh ghi:
- Verilog:
reg [31:00] register_file [0:REG_FILE_SIZE-1];
- VHDL :
type REG_FILE is array (0 to REG_FILE_SIZE-1) of std_logic_vector(31 downto 0);
signal register_file : REG_FILE;
Cách 2 dùng dual-port RAM (cách này không nên dùng trừ phi rất thiếu Flipflop. Nếu như REG_FILE_SIZE = 32 thì sơ sơ mất hết 1000 (32x32bit) Flipflop rồi. Dùng dual-port RAM thì sẽ gặp khó khăn về timing cũng như khi port từ FPGA này sang FPGA khác.
- Về tạo memory: Xilinx và Altera đều có code mẫu (Xilinx: click icon hình bóng đèn, Altera: chuột phải, insert template)
Cho em hỏi làm thế nào để tạo xung clock đồng bộ trong mô phỏng đc ah? trước giờ trên trường em chỉ sử dụng Quartus II thôi chứ chưa tìm hiểu các phần mềm khác.thầy nói không cần xét xung clock nhg nếu vậy lỡ lệnh trước chưa thực hiện xong thì PC đã đc cập nhật, lệnh kế tiếp lại nhảy vào thì làm sao ah?
hi,thanks a đã reply.em muốn hỏi là khi mô phỏng thì mình đưa xung clock vào như thế nào?Em nghĩ nếu ko có clock để đồng bộ thì lệnh sau sẽ chèn lên lệnh trước (do PC cập nhật nhanh).
Mạch này chắc chắn phải có clock.
Trường hợp 1: không sử dụng pipeline (tạm dịch là đường ống), sau khi khi PC load giá trị PC0 thì sẽ mất một khoảng thời gian để thực hiện lệnh, khoảng thời gian này gọi là trễ. Trong khoảng thời gian này PC ko được thay đổi giá trị. Trong hệ thống đồng bộ, trễ của các mạch tổ hợp giữa 2 flip-flop phải nhỏ hơn chu kì clock.
Trường hợp 2: sử dụng pipeline, để chạy hiệu quả hơn, giữa các stage (Sau Instruction memory, Register File, ALU), người ta dùng register. Với các register này, trễ sẽ nhỏ hơn và mạch chạy nhanh hơn. Trong thiết kế này, tương tự như dây chuyền sản xuất, mỗi lệnh sẽ được thực hiện trong nhiều stage, mỗi stage sẽ thực hiện 1 phần của 1 lênh trong 1 chu kì. http://en.wikipedia.org/wiki/Classic_RISC_pipeline
Khi mô phỏng, tạo clock:
always@(*)
#5 clk <= ~ clk;
Trừ trường hợp công suất (rất) thấp, hầu như tất cả các loại nguồn xung thông thường đều có tụ nhỏ 1 - 10nF nối giữa sơ cấp và thứ cấp, để thoát nhiễu và để chống hiện tượng tương tự tĩnh điện. Vụ này đã thảo luận vài...
Dạ chú sắm con át chống giật và thay nguồn tổ ong khác cho an toàn ạ. Đa phần nguồn xung đều xả nhiễu của bên thứ cấp về điện lưới qua 1 con tụ nên cảm giác tê sẽ khó xác định rõ ràng là do rò điện hay là nó vốn vậy...
Xin chào mọi người. E có sử dụng 1 cục nguồn tổ ong 12v-30A chạy đèn led xe trà sữa. Mà thợ thi công bị rò điện nên điện rò ra khung xe. E dùng đồng hồ đo điện ở khung xe và cả output thì thấy có dòng điện xoay chiều hơn 100v. Nên chạm...
Comment